IanShaw027
97c9b992cb
fix: require wechat unionid for oauth identity
2026-04-20 20:27:15 +08:00
IanShaw027
58b2cc380f
test: harden payment result resume flow
2026-04-20 20:22:00 +08:00
IanShaw027
b51bc7ee24
feat: wire payment return url payloads
2026-04-20 20:19:23 +08:00
IanShaw027
7826e9880c
feat: support linuxdo pending bind 2fa callback
2026-04-20 19:53:22 +08:00
IanShaw027
fb6204ea8b
feat: apply oauth first-bind defaults and pending bind 2fa
2026-04-20 19:53:22 +08:00
IanShaw027
6ea3f42e2f
feat: add oauth callback email binding ui
2026-04-20 19:30:19 +08:00
IanShaw027
6a75bd77e3
feat: add pending oauth email onboarding flow
2026-04-20 19:30:09 +08:00
IanShaw027
d47580a144
test: pin email signup defaults in register tests
2026-04-20 18:42:28 +08:00
IanShaw027
0353c3870f
test: update user service stubs for identity summaries
2026-04-20 18:40:34 +08:00
IanShaw027
4e0e691546
feat: apply auth source signup defaults
2026-04-20 18:39:53 +08:00
IanShaw027
c6d8592484
feat: add profile auth identity binding flow
2026-04-20 18:28:44 +08:00
IanShaw027
13d9780df4
feat: expose user activity timestamps in admin list
2026-04-20 17:48:30 +08:00
IanShaw027
e9de839d87
feat: rebuild auth identity foundation flow
2026-04-20 17:39:57 +08:00
IanShaw027
fbd0a2e3c4
feat: carry suggested third-party profile through pending oauth
2026-04-20 16:27:23 +08:00
IanShaw027
d3d4267731
fix: harden oidc callback security
2026-04-20 16:23:42 +08:00
IanShaw027
584ded2182
docs: harden auth identity payment design
2026-04-20 14:41:12 +08:00
IanShaw027
b6751f7ebc
docs: add auth identity implementation plan
2026-04-20 13:47:00 +08:00
IanShaw027
721d7ab3ab
docs: add audit synthesis to auth identity spec
2026-04-20 13:40:31 +08:00
IanShaw027
e01c1eaceb
docs: add auth identity payment foundation design spec
2026-04-20 13:18:30 +08:00
Wesley Liddick
6c73b6212c
Merge pull request #1734 from touwaeriol/docs/payment-recommend-kyren-topup
...
docs(payment): add Kyren Topup as international EasyPay provider option
2026-04-18 18:33:14 +08:00
erio
0c538a584f
docs: note Kyren Topup $200 account fee waived via referral link
2026-04-18 14:48:47 +08:00
erio
6ae1cc8f3f
docs: use 易支付 in Chinese coexistence note
2026-04-18 14:45:25 +08:00
erio
37123cef8f
docs(payment): add Kyren Topup as international EasyPay provider option
...
Restructure the EasyPay recommendation block to present two options side
by side so users can pick by funding channel and settlement currency:
- Domestic / CNY — ZPay: official Alipay/WeChat API with 1.6% fee and
T+1 automatic settlement (existing recommendation, expanded with fee
and settlement details).
- International / USDT or USD — Kyren Topup (https://kyren.top ): global
payment stack supporting WeChat Pay and Alipay with local-currency
checkout, USD settlement, and USDT/USD withdrawal. Fees: WeChat 2%,
Alipay 2.5%, withdrawal 0.1% ($40 min / $150 max). Fills the gap for
users who cannot use domestic Chinese channels or tolerate Stripe's
6%+ fees.
Both recommendations share a single disclaimer at the end. The Chinese
heading uses "易支付" while the English one keeps "EasyPay".
2026-04-18 14:42:55 +08:00
github-actions[bot]
6cfdf4ec05
chore: sync VERSION to 0.1.114 [skip ci]
2026-04-17 02:51:18 +00:00
Wesley Liddick
358ff6a608
Merge pull request #1683 from FjlI5/dev-main
...
fix:修复上游账号为OpenAI API key时Claude Code调用缓存率低的问题
2026-04-17 10:28:12 +08:00
Wesley Liddick
41fbdba104
Merge pull request #1687 from touwaeriol/refactor/upstream-response-limit-dedup
...
refactor: extract ReadUpstreamResponseBody to deduplicate response read + too-large handling
2026-04-17 10:19:14 +08:00
Wesley Liddick
c22d11cedd
Merge pull request #1702 from StarryKira/fix/outbox-watermark-context-dedup-1691
...
fix: fix outbox watermark context expiry and add in-batch group rebuild dedup
2026-04-17 10:18:56 +08:00
shaw
5d586a9f3a
fix: 上游返回 KYC 身份验证要求时停止账号调度
2026-04-17 10:17:50 +08:00
shaw
a789c8c4c7
feat: 支持opus-4.7
2026-04-17 09:37:25 +08:00
Elysia
697c41a3f6
fix: create fresh context per watermark write retry attempt
...
Each retry in the SetOutboxWatermark loop now gets its own 5s context.
Previously a shared context could already be expired when the second or
third attempt ran, making the retries pointless.
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com >
2026-04-16 20:41:40 +08:00
Elysia
e44baa1094
fix: fix outbox watermark context expiry and add in-batch group rebuild dedup
...
Fixes #1691
- pollOutbox() reused a 10s context for SetOutboxWatermark after event
processing could take much longer, causing "outbox watermark write
failed: context deadline exceeded". The watermark never advanced so
the same 200 events were reprocessed every poll cycle, spiking CPU.
Now uses an independent 5s context with up to 3 retries (200ms apart).
- When multiple Codex accounts sharing the same 21-22 groups are all
rate-limited in quick succession, each account_changed event triggered
redundant bucket rebuild attempts for the same groups. Introduce
batchSeenKey{groupID, platform} and thread a seen map through the
handler chain; rebuildBucketsForPlatform skips (group, platform) pairs
already rebuilt within the same poll batch (~80% fewer rebuild calls in
the 5-accounts-same-groups scenario).
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com >
2026-04-16 19:09:40 +08:00
Wesley Liddick
e6e73b4f52
Merge pull request #1690 from KnowSky404/fix/ws-codex-scheduler-cache-1662
...
fix: preserve openai ws flags in scheduler cache
2026-04-16 17:21:32 +08:00
shaw
7ea8e7e667
chore: update sponsors
2026-04-16 17:19:32 +08:00
shaw
a55ead5ea8
chore: remove empty dir Antigravity-Manager
2026-04-16 16:42:40 +08:00
KnowSky404
836092a666
fix: restore ctx pool ws mode option in account ui
2026-04-16 02:13:04 +00:00
KnowSky404
3944b3d216
fix: preserve openai ws flags in scheduler cache
2026-04-16 02:01:50 +00:00
erio
10699eeb34
refactor: extract ReadUpstreamResponseBody to deduplicate upstream response read + too-large error handling
...
Consolidates 9 call sites of resolveUpstreamResponseReadLimit + readUpstreamResponseBodyLimited + ErrUpstreamResponseBodyTooLarge error handling into a single ReadUpstreamResponseBody function with TooLargeWriter callback for API-format-specific error responses (Anthropic, OpenAI, countTokens).
2026-04-16 01:53:22 +08:00
fjl5
6c89d8d35c
add prompt_cache_key injection for messages→responses
2026-04-15 23:56:56 +08:00
github-actions[bot]
be7551b9f4
chore: sync VERSION to 0.1.113 [skip ci]
2026-04-15 09:34:24 +00:00
Wesley Liddick
70d0569f08
Merge pull request #1668 from tyqy12/main
...
修复 OpenAI 账号限流回流误判:7d 窗口可用时不因 5h 窗口为 0 回写 429
2026-04-15 16:48:48 +08:00
Wesley Liddick
1db32d692b
Merge pull request #1666 from touwaeriol/feat/account-cost-display
...
feat(usage): add account cost display to admin dashboard and usage pages
2026-04-15 16:43:07 +08:00
Wesley Liddick
8fd29082c0
Merge pull request #1663 from touwaeriol/fix/test-dialog-close-during-stream
...
fix(ui): allow closing test dialog during active SSE stream
2026-04-15 16:40:40 +08:00
Wesley Liddick
9bf079b725
Merge pull request #1655 from touwaeriol/feat/payment-fee-multiplier
...
feat(payment): balance recharge multiplier and fee rate
2026-04-15 16:40:14 +08:00
erio
e180dd0710
fix(usage): remove label text from inline account cost, keep orange color
2026-04-15 16:09:58 +08:00
erio
a7dd535d47
fix(usage): show account cost inline under cost column, remove separate column
...
- Cost cell: change gray "A $xxx" to orange "成本 $xxx" with i18n
- Remove standalone account_cost column from column settings (redundant)
2026-04-15 15:59:51 +08:00
erio
db27e8f000
feat(usage): add account cost to breakdown sub-table and admin usage log
...
- UserBreakdownItem: add AccountCost field + SQL aggregation
- UserBreakdownSubTable: add orange account cost column
- Admin usage table: add account_cost column (after cost, default visible)
- Column settings: add account_cost toggle option
2026-04-15 15:40:40 +08:00
Wesley Liddick
7451b6f9ae
修复 OpenAI 账号限流回流误判:7d 窗口可用时不因 5h 窗口为 0 回写 429
2026-04-15 15:29:52 +08:00
erio
e0b12b7512
fix(usage): put cost label before value in usage stats card
2026-04-15 15:02:21 +08:00
erio
22680dc602
test(usage): add unit tests for account_cost and fix gofmt
...
- Fix mock for GetModelStatsWithFilters: add account_cost column
- Add assertion: GetStatsWithFilters always returns TotalAccountCost
- New test: GetModelStatsAccountCostColumn verifies scan of AccountCost
- New test: GetGroupStatsAccountCostColumn verifies scan of AccountCost
- New test: GetStatsWithFiltersAlwaysReturnsAccountCost (no AccountID filter)
- Integration test: add TotalAccountCost/TodayAccountCost assertions
- Fix gofmt alignment in usage_log_types.go
2026-04-15 15:02:21 +08:00
erio
6ade6d30a8
feat(usage): add account cost display to admin dashboard and usage pages
...
- Add account_cost column to dashboard aggregation tables (migration 107)
- DashboardStats: add TotalAccountCost/TodayAccountCost fields
- ModelStat/GroupStat: add AccountCost field with SQL aggregation
- GetStatsWithFilters: always return TotalAccountCost (remove accountID filter)
- Dashboard Token cards: show user(green)/cost(orange)/standard(gray)
- Usage stats card: show account cost and standard below main value
- Model/Group distribution tables: add orange cost column
2026-04-15 15:02:21 +08:00