Commit Graph

5289 Commits

Author SHA1 Message Date
CaIon
143b4535b2 refactor(relay): enhance remix logic for billing context extraction
- Updated the remix handling in ResolveOriginTask to prioritize extracting OtherRatios from the BillingContext of the original task if available.
- Retained the previous logic for extracting seconds and size from task data as a fallback.
- Improved clarity and maintainability of the remix logic by separating the new and old approaches.
2026-02-22 16:01:19 +08:00
CaIon
7d5fc3ff51 refactor(relay): rename RelayTask to RelayTaskFetch and update routing
- Renamed RelayTask function to RelayTaskFetch for clarity.
- Updated routing in relay-router.go and video-router.go to use RelayTaskFetch for fetch operations.
- Enhanced error handling in RelayTaskFetch function.
- Adjusted task data conversion in TaskAdaptor to include task ID.
2026-02-22 16:01:19 +08:00
CaIon
64d18a5fdf refactor(logs): add refund logging for asynchronous tasks and update translations 2026-02-22 16:01:19 +08:00
CaIon
8374a83084 feat(task): add adaptor billing interface and async settlement framework
Add three billing lifecycle methods to the TaskAdaptor interface:
- EstimateBilling: compute OtherRatios from user request before pricing
- AdjustBillingOnSubmit: adjust ratios from upstream submit response
- AdjustBillingOnComplete: determine final quota at task terminal state

Introduce BaseBilling as embeddable no-op default for adaptors without
custom billing. Move Sora/Ali OtherRatios logic from shared validation
into per-adaptor EstimateBilling implementations.

Add TaskBillingContext to persist pricing params (model_price, group_ratio,
other_ratios) in task private data for async polling settlement.

Extract RecalculateTaskQuota as a general-purpose delta settlement
function and unify polling billing via settleTaskBillingOnComplete
(adaptor-first, then token-based fallback).
2026-02-22 16:00:27 +08:00
CaIon
ba25ba88fe refactor(task): extract billing and polling logic from controller to service layer
Restructure the task relay system for better separation of concerns:
- Extract task billing into service/task_billing.go with unified settlement flow
- Move task polling loop from controller to service/task_polling.go (supports Suno + video platforms)
- Split RelayTask into fetch/submit paths with dedicated retry logic (taskSubmitWithRetry)
- Add TaskDto, TaskResponse generics, and FetchReq to dto/task.go
- Add taskcommon/helpers.go for shared task adaptor utilities
- Remove controller/task_video.go (logic consolidated into service layer)
- Update all task adaptors (ali, doubao, gemini, hailuo, jimeng, kling, sora, suno, vertex, vidu)
- Simplify frontend task logs to use new TaskDto response format
2026-02-22 16:00:27 +08:00
Seefs
29c2c895ff imporve oauth provider UI/UX (#2983)
* feat: imporve UI/UX

* fix: stabilize provider enabled toggle and polish custom OAuth settings UX

* fix: add access policy/message templates and persist advanced fields reliably

* fix: move template fill actions below fields and keep advanced form flow cleaner
2026-02-22 15:41:29 +08:00
Seefs
37e4fccb36 Merge pull request #2968 from 0-don/fix/claude-input-text-content-block
fix: normalize input_text content blocks in Claude-to-OpenAI conversion
2026-02-21 14:28:59 +08:00
Seefs
233d1f2d79 Merge pull request #2973 from RedwindA/feat/modelsdotdev
feat(ratio-sync): support models.dev ratio sync and fix Gemini cache ratios
2026-02-21 14:28:18 +08:00
Seefs
346c5d84b2 Merge pull request #2976 from wellsgz/codex/aws-claude-sonnet-4-6
feat(aws): add claude-sonnet-4-6 Bedrock mapping and cross-region support
2026-02-21 14:27:18 +08:00
Seefs
bb7ad0ce15 feat: gate Claude inference_geo passthrough behind channel setting and add field docs 2026-02-21 14:25:58 +08:00
wellsgz
86def71df0 feat: add aws claude-sonnet-4-6 model mapping 2026-02-21 13:24:30 +08:00
CaIon
f289678f8b fix: add dynamic route for custom OAuth provider callbacks (#2911)
Custom OAuth providers redirect to /oauth/{slug} after authorization,
but only hardcoded provider routes (github, discord, oidc, linuxdo)
existed in the frontend router, causing a 404 for custom providers.
2026-02-20 22:01:21 +08:00
RedwindA
b2898b392a fix: adjust default Gemini cache ratios 2026-02-20 12:28:30 +08:00
RedwindA
fa4465c41c feat: add models.dev preset support to upstream ratio sync 2026-02-20 12:28:26 +08:00
0-don
27207ccffd fix: normalize input_text content blocks in Claude-to-OpenAI conversion
Clients like OpenClaw send input_text content blocks (a Responses API
type) through /v1/messages. The Claude-to-OpenAI converter silently
drops unknown types, so the message arrives empty at the upstream,
causing "Invalid value: 'input_text'" errors.

Map input_text to text since they share the same structure.
2026-02-19 22:29:40 +01:00
Seefs
8a214d353e fix: include subscription in personal sidebar module controls 2026-02-19 16:27:11 +08:00
Seefs
1dfffcf1ea fix: skip field filtering when request passthrough is enabled 2026-02-19 15:09:13 +08:00
Seefs
4746b2bf9f feat: add missing OpenAI/Claude/Gemini request fields and responses stream options 2026-02-19 14:16:07 +08:00
Seefs
f8a66a6e66 feat: codex oauth proxy 2026-02-17 18:00:10 +08:00
Seefs
50ed552943 feat: minimax native /v1/messages 2026-02-17 17:27:57 +08:00
Seefs
c97f4524f2 fix: unify usage mapping and include toolUsePromptTokenCount in input tokens 2026-02-17 15:45:14 +08:00
Calcium-Ion
d45cd9afee Merge pull request #2926 from seefs001/fix/status_code_mapping
fix: support numeric status code mapping in ResetStatusCode
2026-02-12 15:27:36 +08:00
Seefs
6ebcb8f7c5 fix: normalize search pagination params to avoid [object Object] 2026-02-12 15:21:51 +08:00
Calcium-Ion
9310bde42f Merge pull request #2928 from RedwindA/fix/token-Search
fix(token-search): use TrimPrefix for sk- token normalization
2026-02-12 15:19:34 +08:00
Seefs
8dbc5641ef fix: ignore header passthrough during channel tests 2026-02-12 15:16:24 +08:00
RedwindA
4aa14c7ef7 fix(token-search): use TrimPrefix for sk- token normalization 2026-02-12 15:12:49 +08:00
Seefs
6795242d86 fix: rename bulk test action to skip manually disabled channels 2026-02-12 15:09:30 +08:00
Seefs
41df3162cb fix: support numeric status code mapping in ResetStatusCode 2026-02-12 14:58:17 +08:00
skynono
b7ca7bf3ed 优化: 任务日志查询速度并显示用户详情 (#2905)
* perf: task log show userinfo

* feat: add Tooltip component to TaskLogsColumnDefs
2026-02-12 14:49:38 +08:00
Weilei
52b40acd78 Merge pull request #2916 from worryzyy/feature/add-quota-amount-input
feat(user): add currency amount input with auto quota conversion
2026-02-12 14:48:32 +08:00
Calcium-Ion
e5b9f7b243 feat: add OpenRouter pricing support to upstream ratio sync (#2925) 2026-02-12 14:46:37 +08:00
CaIon
4fdd12ac70 feat: Improve backend multilingual support 2026-02-12 14:29:56 +08:00
RedwindA
9f20f32474 feat: add OpenRouter pricing support to upstream ratio sync 2026-02-12 12:57:27 +08:00
CaIon
29d48e262e feat: refactor request body handling to use BodyStorage for improved efficiency 2026-02-12 01:51:27 +08:00
funkpopo
0aa3dcb56c feat(xai): 为xAI渠道添加/v1/responses支持 (#2897)
* feat(xai): 为xAI渠道添加/v1/responses支持

* Add video generation model to constants

* fix: 修正先前更改中对于grok-3-mini的思考预算和"-search"设计
2026-02-12 00:42:39 +08:00
CaIon
00186a31ce chore: remove deprecated Docker badge from README 2026-02-11 22:21:02 +08:00
CaIon
92aca9771f feat: refactor extra_body handling for improved configuration parsing 2026-02-11 22:15:22 +08:00
CaIon
3a28a415f1 Update README
# Conflicts:
#	README.fr.md
#	README.ja.md
#	README.md
#	README.zh_CN.md
2026-02-11 22:15:16 +08:00
Seefs
48ec1faffe feat: logs cache field (#2920)
* feat: logs cache field

* feat: logs cache field

* feat: logs cache field
2026-02-11 21:50:39 +08:00
Oliver Tzeng
c7804fef69 feat(localization): added zh_TW (#2913)
* feat(localization): added zh_TW

* fixed based on @coderabbitai

* updated false translation for zh_TW

* new workflow

* revert

* fixed a lot of translations

* turned most zh to zh-CN

* fallbacklang

* bruh

* eliminate ALL _

* fix: paths and other miscs thanks @Calcium-Ion

* fixed translation and temp fix for preferencessettings.js

* fixed translation error

* fixed issue about legacy support

* reverted stupid coderabbit's suggestion
2026-02-11 20:37:53 +08:00
Calcium-Ion
8e8869b0c7 Merge pull request #2917 from QuantumNous/dependabot/npm_and_yarn/web/axios-1.13.5
chore(deps): bump axios from 1.12.0 to 1.13.5 in /web
2026-02-11 19:48:41 +08:00
CaIon
8f9d9b2b10 fix: update README files to improve link formatting and readability 2026-02-11 18:14:38 +08:00
CaIon
32c95a21a5 feat: add Aion UI link to README files 2026-02-11 18:05:08 +08:00
dependabot[bot]
fe5deff95d chore(deps): bump axios from 1.12.0 to 1.13.5 in /web
Bumps [axios](https://github.com/axios/axios) from 1.12.0 to 1.13.5.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.12.0...v1.13.5)

---
updated-dependencies:
- dependency-name: axios
  dependency-version: 1.13.5
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-11 09:46:29 +00:00
CaIon
a79ab1ebb2 simplify language selector display to use text-only labels
Replace icon-based language options with plain text labels in both the
header dropdown and preferences settings to keep the UI clean and
avoid potential controversies. Remove unused country-flag-icons dependency.
2026-02-11 17:44:31 +08:00
Calcium-Ion
50dff6a237 Merge pull request #2909 from seefs001/fix/stream-supported-channel 2026-02-11 02:08:00 +08:00
Seefs
7b1e40ed3b fix streamSupportedChannels 2026-02-11 01:39:01 +08:00
feitianbubu
0427ddda03 feat: allow custom username for new users 2026-02-09 15:03:53 +08:00
Calcium-Ion
c86cd86c64 Merge pull request #2898 from seefs001/feature/channel-affinity-tips
optimize: channel affinity tips
2026-02-08 23:53:45 +08:00
Seefs
d25d6ec527 fix: channel affinity tips 2026-02-08 23:47:23 +08:00