zhefox
8ca4a10f24
fix(gateway): require terminal events for OpenAI responses streams
2026-05-21 17:46:21 +08:00
zhefox
b7b7b4f718
fix(gateway): report terminal stream failure errors consistently
2026-05-21 16:15:03 +08:00
zhefox
12abde2aeb
fix(usage): handle terminal stream failures and preserve usage updates
2026-05-21 15:52:51 +08:00
Mas0nShi
e53d5f07e8
feat: support Gemini CLI v1internal quota
2026-05-21 15:38:10 +08:00
stabey and Claude Opus 4.7
3330b2ac4c
refactor(report-context): extract UPSTREAM_IS_STREAM_KEY constant
...
The "upstream_is_stream" JSON key flows from the AI execution report
context producer (aether-ai-serving::report_context) through several
consumers — usage runtime metadata copy/move, gateway watchdog, sync
execution decision, observability handlers, and the per-driver usage
repositories. Each site spelled the key as a bare string literal, so a
producer-side rename would silently degrade every consumer to its
fallback (typically assuming streaming) with no compile-time signal.
Introduce a single pub const UPSTREAM_IS_STREAM_KEY in
aether-ai-formats (the lowest crate every consumer already depends on),
re-export from the crate root, and route producer + all map-style
consumers through it. The change is purely a string-literal → constant
swap; behaviour is identical.
Sites left as literals (intentional):
- `json!({"upstream_is_stream": ...})` macro keys, which must be string
literals at the macro layer; these are also API-response payload
field names (an external contract that should not silently track
internal report-context renames).
- SQL column accessors (`try_get::<...>("upstream_is_stream")`), which
refer to the database schema column, not the JSON key.
- Test fixtures and assertions, which validate the on-the-wire contract
and should keep verifying the actual string.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-21 15:26:42 +08:00
zhefox
e59e6c3797
fix(gateway): sanitize Claude thinking and handle missing stream finish
2026-05-21 12:30:42 +08:00
Entropy.Xu
6b04a0a3a6
fix(windsurf): 修复 native 工具流式回程
2026-05-21 02:55:05 +08:00
Entropy.Xu
4112a8b2ea
fix(provider): 修复 Windsurf PR CI 失败
2026-05-21 02:21:35 +08:00
Entropy.Xu
65c361115a
fix(provider): 修复 Windsurf PR 冲突残留
2026-05-21 01:02:02 +08:00
Entropy.Xu
129c7c90c0
fix(provider): 修复 Windsurf 原生工具桥接
2026-05-21 01:02:02 +08:00
Entropy.Xu
82637ad882
fix(provider): 修复 Windsurf Connect 请求与端点计数
2026-05-21 01:02:02 +08:00
ZheFox
5a9f19cbf2
fix(gateway): filter upstream SSE control-only blocks
2026-05-20 22:33:41 +08:00
ZheFox
cfa32a2b4d
fix(gateway): preserve openai image 200 responses and sync success reporting
2026-05-20 19:17:42 +08:00
ZheFox
2cacf66a37
fix(gateway): route openai image streams with images surface
2026-05-20 18:13:34 +08:00
fawney19
61bcbe826a
fix: tighten OAuth auto cleanup signals
2026-05-20 10:34:22 +08:00
fawney19
f5deed8709
refactor(proxy): improve tunnel throughput and observability
2026-05-19 23:49:36 +08:00
mayrain
b4d17a392a
feat(kiro): simulate prompt cache usage accounting
2026-05-19 10:47:17 +08:00
fawney19
052de6b96e
test: stabilize merged PR checks
2026-05-19 10:18:25 +08:00
fawney19
d2b42e91d2
test: align cancelled sync billing status
2026-05-19 08:25:39 +08:00
fawney19
21e82abd54
Merge PR #502
2026-05-19 08:10:48 +08:00
fawney19
69af74b1e0
Merge PR #488 and #489
2026-05-19 03:16:35 +08:00
fawney19
c563c192b7
Merge remote-tracking branch 'origin/pr-483' into merge-pr-483
...
# Conflicts:
# apps/aether-gateway/src/ai_serving/planner/standard/openai/chat/decision/payload.rs
# apps/aether-gateway/src/ai_serving/planner/standard/openai/chat/decision/request.rs
# apps/aether-gateway/src/ai_serving/planner/standard/openai/responses/decision/payload.rs
# apps/aether-gateway/src/ai_serving/planner/standard/openai/responses/decision/request.rs
# apps/aether-gateway/src/execution_runtime/chatgpt_web_image.rs
2026-05-19 02:23:14 +08:00
fawney19
afedd90c80
Merge commit 'refs/pull/481/head' of github-fawney19:fawney19/Aether
...
# Conflicts:
# apps/aether-gateway/src/ai_serving/api.rs
# apps/aether-gateway/src/ai_serving/planner/standard/family/request.rs
# apps/aether-gateway/src/ai_serving/planner/standard/openai/chat/decision/request.rs
# apps/aether-gateway/src/ai_serving/planner/standard/openai/responses/decision/request.rs
2026-05-19 01:46:41 +08:00
MMEXA
b480f3aaff
fix(gateway): normalize Gemini Vertex embedding transport
2026-05-18 15:39:29 +00:00
MMEXA
84f312fa4c
fix(gateway): close dropped sync attempts
2026-05-18 14:15:22 +00:00
MMEXA
b004a02e4a
fix(gateway): harden Gemini endpoint routing
2026-05-18 00:53:34 +00:00
ZheFox
691ccaaa04
fix(usage): track OpenAI image SSE completion and usage estimates
2026-05-18 01:32:45 +08:00
ZheFox
d6c8c14de7
feat(gateway): route OpenAI image intents through image bridge
2026-05-17 21:19:17 +08:00
ZheFox
2803e9317d
fix(usage): bill cancelled terminal usage and preserve terminal telemetry
2026-05-16 23:43:40 +08:00
fawney19
a2f91b4108
Cancel upstream stream on downstream disconnect
2026-05-16 22:04:11 +08:00
mayrain
5bf236957e
feat(grok): add runtime image surfaces
2026-05-16 21:15:38 +08:00
fawney19
cc5a44e373
Merge branch 'pr-453'
2026-05-15 02:25:39 +08:00
fawney19
54a8312e46
feat: add adaptive pool metrics and self-check
2026-05-15 02:21:11 +08:00
ZheFox
a0eed2cc51
fix: split Codex chat and responses defaults
2026-05-14 15:33:03 +08:00
mayrain
9f26383de5
fix: route provider model tests through candidates
2026-05-12 20:11:16 +08:00
fawney19
ef4cc55c9a
Record per-candidate upstream error bodies
2026-05-11 02:30:45 +08:00
Entropy.Xu
5268f62a64
feat: add sync image heartbeat toggle
2026-05-10 12:40:52 +08:00
fawney19
0f42a6ed82
Fix Codex image progress heartbeat merge regressions
2026-05-10 02:10:23 +08:00
fawney19
79d07ac79a
Improve request trace upstream diagnostics
2026-05-09 10:46:04 +08:00
Entropy.Xu
3b4f27f767
Add Codex image progress heartbeat
2026-05-09 01:21:26 +08:00
fawney19
6247ac3edc
refactor: extract runtime state backends
2026-05-08 00:18:12 +08:00
fawney19
68216bf868
Clean up transport fingerprint configuration
...
Remove legacy tls_profile handling, keep header fingerprint under transport profiles, and drop the duplicate auth_modules migration.
2026-05-06 13:54:33 +08:00
Entropy.Xu
4baee436ba
feat(image): 接入 ChatGPT Web 生图反代
2026-05-06 11:52:33 +08:00
fawney19
6083461822
Add editable response header rules
2026-05-06 01:29:42 +08:00
fawney19
f959f02d40
Implement transport profile routing
2026-05-05 22:21:23 +08:00
fawney19
b4a8c5dde2
Format execution runtime transport imports
2026-05-03 21:52:15 +08:00
Yao177
c3d97b8c16
fix(proxy): record manual proxy node traffic
...
- add manual proxy traffic mutations to the data layer
- record sync and stream outcomes for manual proxy requests
- prevent tunnel proxy nodes from receiving manual traffic updates
2026-05-03 18:38:04 +08:00
fawney19
c130d0e2c9
refactor ai serving modules and crates
2026-05-02 13:23:54 +08:00
fawney19
37392d8774
fix(ai): allow null OpenAI Responses error fields
2026-04-29 21:12:14 +08:00
fawney19
07a319259b
Normalize canonical API formats
2026-04-29 10:20:41 +08:00