ZheFox
76fb8905c9
test(gateway): align antigravity response message id
2026-09-03 11:04:18 +08:00
ZheFox
f822df6cce
Merge remote-tracking branch 'origin/main' into codex/fix-antigravity-quota
2026-09-03 10:46:49 +08:00
ZheFox
45c840b8d3
fix(providers): refresh Antigravity grouped quotas
2026-09-03 10:46:44 +08:00
elky
7323d41fbe
feat(routing): move sticky-key retries into routing policy with lazy attempts
...
Replace the provider/endpoint max_retries fields as the source of same-key
retries with a routing policy setting, sticky_key_attempts (default 2). Only
the first-ranked candidate is retried on the same key; every failover
candidate gets a single attempt so failover keeps advancing instead of
retrying each fallback key.
Materialize exactly one attempt per candidate and derive same-key retries in
the attempt loop after a candidate-scoped failure, so the retry budget no
longer inflates up-front materialization and needs no upper bound. The budget
travels in the report context; retries reuse the plan with a fresh candidate
id and incremented retry index. Pool groups only retry their first key within
the retry-index stride.
Expose the setting in the routing profile editor and the set_scheduling rule
action, and drop the max_retries input from the provider form.
2026-09-02 20:48:40 +08:00
zhefox
a0369cf49a
Merge remote-tracking branch 'zhefox/main' into zhefox-main
...
# Conflicts:
# crates/aether-admin/src/provider/quota.rs
# crates/aether-ai/formats/src/formats/openai/chat/stream.rs
# crates/aether-ai/formats/src/formats/openai/responses/mod.rs
# crates/aether-provider/pool/src/provider.rs
# crates/aether-provider/pool/src/quota.rs
2026-09-02 15:25:27 +08:00
zhefox
dbbe7b22ab
fix(pool): isolate dynamic model quota buckets and 429 scheduling
2026-09-02 15:23:23 +08:00
fawney
30a75832f8
feat(vscodex): add remote Codex collaboration module
2026-09-01 20:25:35 +08:00
ZheFox
9631b229b3
fix(gateway): add provider key concurrency and cache affinity modes
2026-09-01 08:06:58 +08:00
ZheFox
4da8c57fe3
fix(ai): align Gemini and Responses compatibility
2026-08-27 22:13:20 +08:00
ZheFox
2cd20da1ec
fix(gateway): support current Codex Realtime live routes
2026-08-23 02:51:49 +08:00
ZheFox
acde38b8e7
fix(usage): unify OpenAI Live and WebSocket records
2026-08-21 11:53:53 +08:00
ZheFox
2c89202001
feat(gateway): add Codex Live and OpenAI Realtime
...
Implement preflighted Live/Realtime WebSocket transports, protocol-aware authentication, usage auditing, UI filtering, and legacy Codex permission migration.
2026-08-21 04:27:34 +08:00
ZheFox
4185ad1b1e
feat(gateway): add Codex Live transport
2026-08-20 21:59:05 +08:00
ZheFox
654f798d25
fix(ws): harden Responses continuation state
2026-08-20 08:51:16 +08:00
AAEE86
71b54070e8
feat(gateway): Codex/OpenAI Responses WebSocket 代理模式
...
在 /v1/responses 上支持 WebSocket 升级,把客户端帧中继到上游 Codex /
OpenAI Responses WebSocket 端点,同时保持既有的路由、鉴权、配额与用量
语义:
- 路由与准入:control/route/ai.rs 识别 WebSocket 升级请求;
websocket/ingress.rs 复用 API Key 鉴权、IP 规则与并发许可,并引入
独立的 WebSocket 连接许可
- 中继:websocket/responses/* 按 connection / session / turn 分层,
帧解析归一化、socket 写入有界、continuation 保持调度亲和性
- 配额:orchestration/codex_quota_breaker.rs 在账号配额耗尽时熔断并
自动恢复,不再直接断开客户端连接
- 用量:每个 turn 的终态用量落库,request_metadata 记录
websocket_mode / websocket_transport,管理端与 usage 视图暴露
is_websocket
- 管理端:provider 可配置 Responses WebSocket 开关
2026-08-17 14:50:33 +08:00
ZheFox
b13d9b9b40
fix(codex): restore upstream model discovery
2026-08-15 19:36:28 +08:00
zhefox
810c3dfe2b
fix(codex): serve versioned dynamic model catalogs
2026-08-14 18:41:44 +08:00
elky
5b0c763086
fix(codex): fence concurrent quota updates
2026-08-14 09:28:07 +08:00
elky
f3a12c1008
fix(ai): preserve Codex image edit validation
2026-08-13 11:31:17 +08:00
elky
8cf381b0c3
feat(codex): add OAuth fingerprint convergence
2026-08-13 09:57:17 +08:00
elky
edb8362adc
fix(provider): omit default model test temperature
2026-08-12 16:56:18 +08:00
zhefox
985ff3c36a
test(gateway): align claude_code endpoint reconciliation
2026-08-05 14:34:20 +08:00
zhefox
4d67569873
fix(gateway): support claude_code cross-format Claude messages
2026-08-05 13:57:20 +08:00
zhefox
669f4bddc5
fix: align Responses routing and model permissions
2026-08-03 18:48:01 +08:00
fawney19
6688ee26db
Merge pull request #702 from MMEXA/fix/reconcile-auth-channel-mismatch-formats
...
fix(gateway): 修复批量更新 API 格式时的认证通道状态冲突
2026-07-31 10:28:37 +08:00
elky
beb003b7ad
feat(models): add external catalog proxy selection
2026-07-31 09:32:25 +08:00
MMEXA
6ecfe0f0a1
fix(gateway): reconcile auth mismatch formats on key update
2026-07-30 22:14:08 +08:00
elky
20399b004d
Merge PR #700 : fix admin pool batch update body buffering
...
Preserve main's failover and usage metadata fixes, restore default tunnel regression coverage, and satisfy current Clippy.
2026-07-30 17:56:37 +08:00
elky
050eb77508
fix(ai): harden responses replay and failure diagnostics
2026-07-30 17:19:54 +08:00
MMEXA
d8902ea612
fix(gateway): buffer admin pool batch update bodies
2026-07-30 05:14:34 +08:00
elky
a04673a90d
feat(gateway): harden failover and payload handling
...
Retry pre-response transport failures across candidates with an explicit stop policy, and propagate end-to-end timing into usage records and UI diagnostics.
Remove legacy body, import, cookie, PII, and tunnel replay caps while preserving optional operator-configured gateway limits.
2026-07-30 01:03:27 +08:00
zhefox
f8000012f7
fix(ci): stabilize cross-platform workflow checks
2026-07-29 21:55:43 +08:00
ZheFox
9d9316e434
Merge branch 'fawney19:main' into main
2026-07-28 13:56:34 +08:00
ZheFox
f0f87b56a3
feat(providers): add credential-fenced OAuth key cleanup
2026-07-28 11:32:11 +08:00
elky
4148ab1931
fix(routing): harden routed pool scheduling
2026-07-27 22:06:28 +08:00
elky
550cc36760
feat(providers): expand OAuth account management
...
Add Claude Code manual and cookie authorization, including redacted batch tasks. Harden OAuth imports, duplicate replacement, provider dialogs, and related account-management tests.
2026-07-27 15:53:28 +08:00
elky
531cf11025
feat(gateway): harden provider request execution
...
Preserve exact request payloads and model client surface and API operation explicitly.
Add Anthropic compatibility profiles, bounded stream commitment, and scoped OAuth retry behavior across provider transports.
2026-07-27 09:36:31 +08:00
elky
10d369f59c
feat(providers): add provider transfer limits
2026-07-26 15:06:56 +08:00
elky
778cfb1a5c
feat(data): complete portable SQL backend parity
...
Align MySQL and SQLite schemas, migrations, usage, stats, export, and backfill behavior with the shared data contracts. Extend gateway startup and maintenance support across all SQL drivers.
2026-07-25 21:28:21 +08:00
elky
3606290ac8
fix(provider): harden Agent Identity OAuth lifecycle
2026-07-23 09:33:00 +08:00
elky
fdbc2607ec
feat(provider): add dedicated Codex Agent Identity flow
2026-07-22 20:19:29 +08:00
elky
fc92c4f431
perf(gateway): scale request hot paths for 20k streams
...
Shard and singleflight hot-path caches, batch and prioritize candidate and usage lifecycle persistence, and extend database and pressure-test instrumentation for 20k concurrent streams.
2026-07-22 02:11:08 +08:00
ZheFox
c34ec7c1ee
fix(gateway): apply group policy to admin-owned keys
2026-07-20 15:51:01 +08:00
elky
5d575f1590
test(stats): treat bulk API key snapshots as authoritative
2026-07-19 19:07:04 +08:00
elky
644ae9c1bf
feat(pool): add table-driven account batch actions
2026-07-19 16:09:20 +08:00
elky
95053f9502
Merge PR #672 : 支持账号批量配置与可用模型管理
2026-07-18 22:06:32 +08:00
fawney19
6c33b8d8fb
Merge pull request #682 from MMEXA/codex/codex-prompt-cache-identity-20260717
...
fix(codex): 统一通用缓存键与原生会话身份
2026-07-18 00:33:20 +08:00
elky
f65ed2795c
fix(codex): support dynamic quota windows
2026-07-17 20:18:04 +08:00
elky
664c063a06
feat(usage): enrich audit metadata and detail views
2026-07-17 19:20:16 +08:00
MMEXA
75795c6fbc
test(codex): 对齐 Compact 确定性缓存身份
2026-07-17 08:49:35 +08:00