- 24 Apr, 2026 7 commits
-
-
CaIon committed
-
fix: include tiered billing models in model listing
yyhhyyyyyy committed -
fix: model pricing use correct display type
Calcium-Ion committed -
fix: correct gpt-5.5 completion ratio
Calcium-Ion committed -
fix(image): only price image model use N ratio
Calcium-Ion committed -
feitianbubu committed
-
yesone committed
-
- 23 Apr, 2026 17 commits
-
-
Xyfacai committed
-
feat: support for tiered billing expressions in the billing system
Calcium-Ion committed -
- log_info_generate.go: add nil guard in InjectTieredBillingInfo - billing_expr_request.go: merge headers instead of replacing - go.mod: remove incorrect // indirect on expr-lang/expr - ToolPriceSettings.jsx: add null check in syncToVisual - tool_billing.go: fix PricePer1K for image_generation (per-call, not per-1K) - utils.jsx: add minute() to time condition regex - useUsageLogsData.jsx: pass displayMode to renderTieredModelPrice - AGENTS.md, CLAUDE.md: fix Rule 6/7 ordering - relay-gemini.go: add TEXT modality case in CandidatesTokensDetails
CaIon committed -
- quota.go: add missing SettleBilling call in PostWssConsumeQuota - text_quota.go: gate InjectTieredBillingInfo on tieredBillingApplied bool instead of tieredResult != nil, so fallback billing still logs metadata - price.go: remove quotaBeforeGroup == 0 from freeModel condition to avoid bypassing settlement for output-only expressions - tiered_settle.go: split cc/cc1h subtraction using UsageSemantic to distinguish OpenAI vs Claude cache creation token formats - pricing.go: only set BillingMode when a non-empty expression exists - useModelPricingEditorState.js: only write billing_mode when finalBillingExpr is non-empty
CaIon committed -
- render.jsx: change const destructuring of completionRatio/audioRatio to use raw names with ?? 0 defaults, preventing "Assignment to constant variable" errors in renderModelPrice, renderAudioModelPrice, and renderClaudeModelPrice - TieredPricingEditor.jsx: add missing MATCH_GTE import, remove misleading alias help text, preserve conditions for single-tier configs
CaIon committed -
Resolve conflicts: - .gitignore: keep nightly additions (.test, skills-lock.json) - relay/helper/price.go: keep both billingexpr and model imports - en.json / zh-CN.json: keep nightly's superset of i18n entries - service/billing_session.go: add missing 3rd arg to DecreaseUserQuota - en.json / zh-CN.json: deduplicate 129+320 duplicate i18n keys
CaIon committed -
fix(billing): preserve text tool surcharges in tiered settlement
Calcium-Ion committed -
Remove the intermediate branch that recomputed quota from EstimatedQuotaBeforeGroup when tieredResult is nil. This discarded the FinalPreConsumedQuota fallback that TryTieredSettle already selected. Now the error path simply adds tool surcharges to the passed-in tieredQuota, preserving the existing fallback semantics. Also removes unrelated mise.toml and adds a test covering the error fallback with a pre-consumed quota that differs from the estimate.
CaIon committed -
Relax token key column length for legacy migration compatibility
Calcium-Ion committed -
XiaoAI1024 committed
-
XiaoAI1024 committed
-
XiaoAI1024 committed
-
XiaoAI1024 committed
-
chore(deps-dev): bump @xmldom/xmldom from 0.8.12 to 0.8.13 in /electron
Calcium-Ion committed -
chore(deps): bump github.com/jackc/pgx/v5 from 5.9.0 to 5.9.2
Calcium-Ion committed -
Bumps [@xmldom/xmldom](https://github.com/xmldom/xmldom) from 0.8.12 to 0.8.13. - [Release notes](https://github.com/xmldom/xmldom/releases) - [Changelog](https://github.com/xmldom/xmldom/blob/master/CHANGELOG.md) - [Commits](https://github.com/xmldom/xmldom/compare/0.8.12...0.8.13) --- updated-dependencies: - dependency-name: "@xmldom/xmldom" dependency-version: 0.8.13 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com>
dependabot[bot] committed -
Bumps [github.com/jackc/pgx/v5](https://github.com/jackc/pgx) from 5.9.0 to 5.9.2. - [Changelog](https://github.com/jackc/pgx/blob/master/CHANGELOG.md) - [Commits](https://github.com/jackc/pgx/compare/v5.9.0...v5.9.2) --- updated-dependencies: - dependency-name: github.com/jackc/pgx/v5 dependency-version: 5.9.2 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com>
dependabot[bot] committed
-
- 22 Apr, 2026 7 commits
-
-
增加令牌最后使用时间
Calcium-Ion committed -
Calcium-Ion committed
-
Seefs committed
-
Seefs committed
-
Seefs committed
-
* chore: refine codex usage modal layout * fix: polish codex usage modal responsiveness
Seefs committed -
gaoren002 committed
-
- 21 Apr, 2026 1 commit
-
-
feitianbubu committed
-
- 19 Apr, 2026 1 commit
-
-
uskyu committed
-
- 18 Apr, 2026 1 commit
-
-
rafactor: payment
Seefs committed
-
- 17 Apr, 2026 6 commits
-
-
fix(gemini): add IncludeServerSideToolInvocations field to ToolConfig
Seefs committed -
Enable Redis requirepass in the compose template and embed the matching credential in REDIS_CONN_STRING, aligning with the existing PostgreSQL default password pattern so out-of-the-box deployments are not left with an unauthenticated Redis instance.
CaIon committed -
Introduce NODE_NAME environment variable to identify node identity in top-up audit logs, improving readability over auto-detected container internal IPs in Docker/K8s deployments. Surface node_name in admin expanded log rows and add it as a commented example to docker-compose.yml.
CaIon committed -
Top-up logs written by pre-upgrade instances have no admin_info, which made the expanded row empty and the row un-expandable. For admins, always emit an entry: either the audit fields from admin_info when present, or a warning prompting the operator to upgrade the instance so audit fields (server IP, callback IP, payment method, system version) are recorded.
CaIon committed -
Admin username/ID was embedded directly into the log Content for quota changes and forced 2FA disable, leaking the operator's identity to the target user via their own usage log page. Move operator info into Other.admin_info so formatUserLogs strips it for non-admin viewers, and render it in the expand panel only for admins as "操作管理员". Closes #4301
CaIon committed -
Apply the same LIKE sanitization used for token search to SearchUserTopUps and SearchAllTopUps (reject %%, cap % count, require >=2 stripped chars, use ESCAPE '!') and bound COUNT with a 10000-row hard limit to avoid unbounded full-table scans. Also restrict user-facing list and search (GetUserTopUps, SearchUserTopUps) to records within the last 30 days via create_time. Admin endpoints (GetAllTopUps, SearchAllTopUps) remain unrestricted.
CaIon committed
-