Cita
4d4684a39b
[codex] add proxy debug tracing ( #299 )
...
* add proxy debug tracing
* fix proxy debug response header typing
* extend proxy debug tracing to side paths
* Refine proxy debug trace review fixes
* Stabilize proxy debug attempt indexing
* Tighten proxy debug trace accuracy
2026-03-28 20:05:48 +08:00
Sean Lee
3bf3cd1622
feat: 新增路由批量禁用/启用功能 ( #295 )
...
* feat: Preserve manual models during discovery and refresh, and add Claude configuration files and project documentation.feat: Preserve manual models during discovery and refresh, and add Claude configuration and project documentation files.
* fix: fix Feishu and Larksuite webhook support to the notification service with updated UI and tests.
* feat: 新增路由批量禁用/启用功能
- 后端新增 POST /api/routes/batch 接口,支持批量 enable/disable
- 前端新增批量操作模式,支持 checkbox 选择路由
- 浮动操作栏显示选中数量,支持全选/取消全选
- 批量操作完成后自动退出选择模式并刷新列表
* fix: complete route batch actions on mobile
---------
Co-authored-by: Xiang Li <xiangli>
Co-authored-by: cita-777 <juricek.chen@gmail.com >
2026-03-28 16:54:09 +08:00
Cita
5ae452ab45
[codex] inherit site proxy settings for oauth ( #296 )
...
* test: define oauth proxy inheritance behavior
* feat: apply site proxy settings to oauth requests
* feat: backfill oauth provider sites at startup
* test: remove oauth site registry temp dir
2026-03-28 16:38:39 +08:00
Cita
8ebfc39745
[codex] add harness engineering guardrails ( #284 )
...
* refactor: add harness engineering guardrails
* fix: address harness review feedback
---------
Co-authored-by: apple <apple@appledeMacBook-Pro.local >
2026-03-26 21:22:36 +08:00
Cita
b3387dfba7
[codex] fix cross-database JSON boundary handling ( #283 )
...
* fix: normalize cross-database json boundaries
* fix: address json boundary review comments
---------
Co-authored-by: apple <apple@appledeMacBook-Pro.local >
2026-03-26 20:21:19 +08:00
Cita
7e1fb8eb1b
[codex] HTTP-first Codex upstream websocket settings ( #280 )
...
* http-first codex upstream websocket settings
* address websocket runtime review comments
---------
Co-authored-by: apple <apple@appledeMacBook-Pro.local >
2026-03-25 21:01:01 +08:00
Cita
5d2596285b
fix: truncate collapsed route group regex badge ( #279 )
...
Co-authored-by: apple <apple@appledeMacBook-Pro.local >
2026-03-25 20:37:53 +08:00
Cita
639c387532
[codex] fix responses lifecycle parity and codex session serialization ( #278 )
...
* fix responses lifecycle parity
* remove websocket test debug logging
* fix responses proxy stream typecheck
* update compact upstream response expectations
* add community and deepwiki badges
* update linuxdo banner link
* fix responses review follow-ups
* preserve whitespace in responses terminal deltas
* fix responses stream reconciliation edges
* fix responses lifecycle parity and codex session serialization
* fix review follow-up edge cases
---------
Co-authored-by: apple <apple@appledeMacBook-Pro.local >
2026-03-25 18:56:36 +08:00
Sean Lee
9ba4369a83
fix: auto-detect Feishu webhook format and validate response body ( #271 )
...
* feat: Preserve manual models during discovery and refresh, and add Claude configuration files and project documentation.feat: Preserve manual models during discovery and refresh, and add Claude configuration and project documentation files.
* fix: fix Feishu and Larksuite webhook support to the notification service with updated UI and tests.
---------
Co-authored-by: Xiang Li <xiangli>
2026-03-25 18:30:32 +08:00
ZhengYiTao
dc40edf8e8
fix: case-insensitive model merging and disabled model matching ( #251 )
...
* fix: MySQL-compatible case-insensitive model merge and disabled model matching
Root cause: MySQL uses utf8mb4_general_ci collation by default, making the
unique index on (account_id, model_name) case-insensitive. When different
tokens discover the same model with different casing (e.g., 'GPT-4o' vs
'gpt-4o'), the case-sensitive JavaScript Set allowed both, but the MySQL
batch INSERT failed with a duplicate key error — causing the entire model
refresh to silently fail and leaving stale routes (including disabled models).
Fixes:
1. mergeDiscoveredModels: change Set<string> to Map<lowercase, original>
for cross-scan dedup, matching normalizeModels' existing behavior.
2. isModelDisabledForSite: compare with toLowerCase() so disabled models
are filtered regardless of case variants across discovery sources.
3. tokens.ts /api/routes/rebuild: add missing await on
rebuildTokenRoutesFromAvailability() so errors propagate correctly
instead of being silently swallowed.
* fix: add missing await on rebuildTokenRoutesFromAvailability in stats.ts
The POST handler for /api/models/check/:accountId called
rebuildTokenRoutesFromAvailability() without await, returning a Promise
object in the response instead of the actual rebuild result.
2026-03-25 11:22:37 +08:00
Cita
709f528bd2
fix responses lifecycle parity ( #272 )
...
* fix responses lifecycle parity
* remove websocket test debug logging
* fix responses proxy stream typecheck
* update compact upstream response expectations
* add community and deepwiki badges
* update linuxdo banner link
* fix responses review follow-ups
* preserve whitespace in responses terminal deltas
* fix responses stream reconciliation edges
---------
Co-authored-by: apple <apple@appledeMacBook-Pro.local >
2026-03-24 23:12:35 +08:00
Sean Lee
3e0083582e
feat: Preserve manual models during discovery and refresh, and add Claude configuration files and project documentation.feat: Preserve manual models during discovery and refresh, and add Claude configuration and project documentation files. ( #270 )
...
Co-authored-by: Xiang Li <xiangli>
2026-03-24 20:01:48 +08:00
Bainily
9cf3dd1904
feat(proxy): improve channel failover stability and sticky session coordination / 优化代理通道故障切换与粘滞会话协调 ( #268 )
...
* wip: preserve local changes before upstream merge
* Improve proxy routing stability and add stable-first strategy
* Sync explicit-group routing strategy to eligible source routes
* Fix proxy retry and runtime health review issues
* fix: make proxy channel retry attempts configurable
* fix: harden proxy retry recovery and bookkeeping
* fix: address pr 257 review comments
* feat(proxy): add sticky session channel coordination
---------
Co-authored-by: Cita <juricek.chen@gmail.com >
2026-03-24 19:40:44 +08:00
Cita
5b9c83f830
fix: default downstream key access selections to all ( #263 )
...
* fix: default downstream key access selections to all
* test: fix downstream keys test renderer typing
2026-03-23 22:48:15 +08:00
Cita
4a3b4a8bb6
fix: preserve protocol parity across compatibility hops ( #259 )
...
* wip: preserve local changes before upstream merge
* Improve proxy routing stability and add stable-first strategy
* Sync explicit-group routing strategy to eligible source routes
* Fix proxy retry and runtime health review issues
* fix: make proxy channel retry attempts configurable
* fix: harden proxy retry recovery and bookkeeping
* fix: address pr 257 review comments
* fix: preserve oe tool_result structure
* fix: preserve protocol parity across compatibility hops
* fix: satisfy server build and typecheck
* fix: preserve codex and mcp fallback semantics
* fix: address ci and review follow-ups
---------
Co-authored-by: bnvnvnv <bnvnvnv@gmail.com >
2026-03-23 20:25:20 +08:00
Cita
c838e3263b
fix: exclude runtime db config from backup and migration ( #260 )
2026-03-23 20:05:00 +08:00
Bainily
1449f08e6c
fix: stabilize Codex continuation and proxy retry recovery / 修复 Codex 续传与代理重试稳定性 ( #257 )
...
* wip: preserve local changes before upstream merge
* Improve proxy routing stability and add stable-first strategy
* Sync explicit-group routing strategy to eligible source routes
* Fix proxy retry and runtime health review issues
* fix: make proxy channel retry attempts configurable
* fix: harden proxy retry recovery and bookkeeping
* fix: address pr 257 review comments
---------
Co-authored-by: Cita <juricek.chen@gmail.com >
2026-03-23 19:17:22 +08:00
Cita
5be5e2eb07
fix: preserve protocol parity across Claude fallbacks ( #256 )
...
* fix: preserve protocol parity across claude fallbacks
* fix: tighten protocol parity across responses and anthropic fallbacks
* fix: preserve stricter tool contracts across fallbacks
* fix: unblock anthropic stream server build
2026-03-23 17:29:49 +08:00
Cita
653b7557a7
fix: address review followups
2026-03-23 16:24:31 +08:00
Cita
4b903fdd3b
fix: tighten ci typecheck coverage
2026-03-23 16:02:13 +08:00
Cita
764b9aa0e6
fix: address latest coderabbit review findings
2026-03-23 15:24:00 +08:00
Cita
426d9a538d
test: relax token selection count assertion
2026-03-23 14:51:57 +08:00
Cita
4686c558aa
Merge origin/main into codex/single-source-consolidation
2026-03-23 14:44:52 +08:00
Cita
f9316784aa
fix: align final verification scripts and expectations
2026-03-23 14:29:44 +08:00
Cita
7cc0a04b8b
refactor: share responsive filter panel scaffold
2026-03-23 14:29:11 +08:00
Cita
dd914b327c
refactor: extract downstream key drawer
2026-03-23 14:28:37 +08:00
Cita
8e001508bf
refactor: extract model tester composer and tighten shared types
2026-03-23 13:44:52 +08:00
Cita
8f14540549
refactor: extract model tester debug panel
2026-03-23 13:35:42 +08:00
Cita
9b21ed3fed
refactor: extract account model management modal
2026-03-23 13:32:55 +08:00
Cita
c3e3985b6e
refactor: extract remaining settings modals
2026-03-23 13:29:39 +08:00
Cita
62eca41bc2
refactor: extract settings portal modals
2026-03-23 13:18:37 +08:00
Cita
f7a7084278
refactor: share responsive batch actions across admin pages
2026-03-23 13:12:06 +08:00
Cita
b82d7c31d9
refactor: derive legacy schema compat from feature specs
2026-03-23 13:04:09 +08:00
Cita
55aea6afc4
refactor: separate brand registry from BrandIcon
2026-03-23 12:44:38 +08:00
Cita
8b3653c7c9
refactor: share schema metadata normalization rules
2026-03-23 12:23:04 +08:00
Cita
86518202fa
refactor: move platform discovery out of model service
2026-03-23 12:14:22 +08:00
Cita
50c34b8866
refactor: keep downstream client metadata on cli profiles
2026-03-23 12:02:44 +08:00
Cita
3877f3a3f1
refactor: centralize oauth identity and route refresh workflow
2026-03-23 11:53:59 +08:00
Cita
328b492ab3
fix: finish review-driven single-source cleanup
2026-03-23 11:26:01 +08:00
Cita
a3b061b60f
Merge pull request #245 from cita-777/codex/site-binding-conflict
...
fix: handle duplicate site binding conflicts
2026-03-23 09:20:58 +08:00
Cita
90e9140c70
fix: preserve site disabled models on partial load failure
2026-03-22 23:58:43 +08:00
Cita
29c9fcbd29
fix: resolve remaining review follow-ups
2026-03-22 23:53:41 +08:00
Cita
5d78658af9
fix: address review feedback and code scanning alerts
2026-03-22 23:41:45 +08:00
Hureru
9a5e2bbc60
fix: prevent brand list loading indicator from hanging on API failure
2026-03-22 23:13:51 +08:00
Cita
daa6a01ccf
fix: handle duplicate site binding conflicts
2026-03-22 22:18:44 +08:00
Cita
32d7037629
refactor: share platform file and route helpers
2026-03-22 22:17:50 +08:00
Cita
9290e51ecc
refactor: consolidate single-source routing and protocol helpers
2026-03-22 21:27:09 +08:00
Cita
96e7614835
fix: trust proxy headers and align proxy file mysql indexes
2026-03-22 21:17:56 +08:00
Hureru
d278b41be2
fix: address review issues in brand filter sync, model guard, route counts, and candidate loading
...
- Sync blockedBrands local state after save to prevent stale chips
- Defer getBrandList from blocking Settings bootstrap
- Guard model management UI on brandGroups instead of availableModels
- Deduplicate single-model add in disabled models
- Skip read-only/zero-channel routes in enabledCounts and filter
- Add sequence counter to loadCandidates to prevent force race condition
- Use stableAddChannel for mobile add-channel button
2026-03-22 20:44:55 +08:00
Hureru
b8ad89d1ab
fix: use ref-based stale guard for site disabled-models fetch
...
Replace closure-captured editor check with loadingModelsSiteIdRef so the
stale-response guard works correctly across rapid site switches. Also
gate setDisabledModelsLoading(false) behind the same ref check.
2026-03-22 20:26:45 +08:00