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
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
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
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
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
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
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
764b9aa0e6
fix: address latest coderabbit review findings
2026-03-23 15:24:00 +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
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
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
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
Hureru
26be7c024a
fix: address review issues across settings, sites, brand matcher, and token routes
...
- settings.ts: trigger route rebuild after globalBlockedBrands changes in both
import and PUT handler; reject non-array payloads with 400 instead of silently
defaulting to empty array
- sites.ts: trim model names before deduplication so whitespace variants merge
- brandMatcher.ts: align boundary regex with frontend delimiter class [/:_\-\s]
- Settings.tsx: add role="switch" and aria-checked to brand filter chips; make
getBrandList best-effort so its failure doesn't block page load
- Sites.tsx: build brandGroups from union of availableModels and disabledModels
so legacy/removed models remain visible; add stale-response guard and error
logging for disabled/available model fetches
- TokenRoutes.tsx: use baseFilteredRoutes.length for totalRouteCount to keep
enabled/disabled counts in sync with status filter; add candidatesVersionRef
to invalidate lazy caches on payload change; add per-channel in-flight guard
on toggle; invalidate channel cache after rebuild and site-block operations
2026-03-22 20:18:50 +08:00
Hureru
cf6ed7db91
feat: add model filter system with site-level batch disable, global brand filter, route status filter, and channel site-block shortcut
...
- Route status filter: add enabled/disabled filter chips to RouteFilterBar
- Channel site-block: add "站点屏蔽" button on channel rows to quickly
add a model to a site's disabled list and trigger rebuild
- Site batch selection: new GET /api/sites/:id/available-models endpoint;
Sites.tsx now shows a brand-grouped checkbox list for batch model disable
- Global brand filter: new brandMatcher.ts service; settings API and UI
for blocking entire brands from route generation
- Fix infinite scroll race condition when sentinel ref is null during
IntersectionObserver effect setup after filter changes
2026-03-22 18:55:40 +08:00
Cita
3775ee059c
Merge remote-tracking branch 'origin/main' into codex/codex-review-fixes
...
# Conflicts:
# src/server/services/modelService.ts
2026-03-21 20:31:30 +08:00
Cita
4c14f9c9b0
Merge pull request #234 from cita-777/codex/gemini-oauth-hardening
...
Fix Gemini OAuth refresh and failure coverage
2026-03-21 20:13:08 +08:00
Cita
4480f504e4
fix: satisfy server build typing
2026-03-21 19:58:41 +08:00
Cita
d9e550c279
fix: address codex review findings
2026-03-21 19:45:29 +08:00
Cita
e09fb43b33
Merge pull request #236 from cita-777/codex/claude-count-models
...
Fix Claude count_tokens compatibility and OAuth model discovery
2026-03-21 19:28:18 +08:00
Cita
1d8889001f
fix: harden codex runtime routing and oauth recovery
2026-03-21 19:07:14 +08:00
Cita
dc93c58582
Fix Claude count tokens routing and model discovery
2026-03-21 18:42:28 +08:00
Cita
dd48550ffa
Fix Gemini OAuth refresh and failure coverage
2026-03-21 18:38:00 +08:00
Cita
500ba25787
fix: bypass multimodal endpoint memory for gemini
2026-03-21 18:37:36 +08:00
ciat-777
7e09ce83b8
fix(proxy): strip responses-only tools on chat fallback
2026-03-21 16:38:46 +08:00
Cita
f586d3f318
Merge pull request #229 from cita-777/codex/gemini-claude-identity-encoding
...
Codex/gemini claude identity encoding
2026-03-21 15:55:51 +08:00
ciat-777
5a4f881b95
fix: restore generic inline document endpoint fallbacks
2026-03-21 15:52:22 +08:00
ciat-777
7a2953ac36
fix: decode zstd responses while restoring claude encoding
2026-03-21 15:38:11 +08:00
ciat-777
17a4281117
fix: avoid messages fallback for generic file uploads
2026-03-21 14:03:35 +08:00
Cita
d17e80f05e
Merge pull request #227 from cita-777/codex/openclaw-user-agent-v2
...
fix: detect openclaw user-agent in proxy logs
2026-03-21 13:56:14 +08:00
ciat-777
272b88c6c8
fix: detect openclaw user-agent in proxy logs
2026-03-21 13:53:02 +08:00
ciat-777
e454ec18ec
fix(api): unwrap downstream key unique violations
2026-03-21 13:30:06 +08:00
Cita
9b17c3ebdf
Merge pull request #159 from Hureru/feat/account-level-proxy
...
feat(proxy): account-level proxy URL override
2026-03-21 13:14:08 +08:00
ciat-777
424e1e210b
test: align claude count tokens encoding expectation
2026-03-21 12:56:34 +08:00
ciat-777
1b78359739
fix: force identity encoding for claude messages
2026-03-21 12:48:34 +08:00
ciat-777
7c9bdc51c7
fix: prefer self-reported proxy log client names
2026-03-21 11:48:15 +08:00
Hureru
8df3b1431f
Merge remote-tracking branch 'origin/main' into feat/account-level-proxy
...
# Conflicts:
# src/server/proxy-core/surfaces/chatSurface.ts
# src/server/proxy-core/surfaces/openAiResponsesSurface.ts
# src/server/routes/proxy/embeddings.ts
# src/server/routes/proxy/images.ts
# src/server/services/modelService.ts
2026-03-21 10:09:19 +08:00
ciat-777
bc52b6b5fd
Add WebDAV backup sync and armv7 Docker builds
2026-03-21 00:06:16 +08:00
Cita
79146af16a
Merge pull request #216 from cita-777/codex/fix-responses-endpoint-memory
...
[codex] fix cross-protocol conversation file compatibility
2026-03-20 21:53:13 +08:00
cita
2890b7daf3
fix cross-protocol conversation file compatibility
2026-03-20 21:48:05 +08:00
zmoon460
ade5e0b1b3
Enhance unique violation check for PostgreSQL
2026-03-20 20:08:56 +08:00