elky
d336d1a7fa
Improve gateway scheduling and runtime admission
2026-06-24 01:53:45 +08:00
zhefox
fd220b6c42
fix(usage): preserve token counts in body redaction
2026-06-23 14:38:39 +08:00
elky
f75894acbb
perf: reduce gateway db pressure under load
2026-06-22 00:08:48 +08:00
ZheFox
302620cb94
Merge branch 'fawney19:main' into main
2026-06-16 12:17:28 +08:00
elky
8edcbdcb29
feat(usage): expose request timing details
2026-06-10 09:16:15 +08:00
zhefox
ba723ebe48
fix(usage): always use truncated body placeholder when limit exceeded
2026-06-09 09:59:10 +08:00
zhefox
04ba8cbe9e
fix(gateway): support openai image accept negotiation
2026-06-08 20:40:30 +08:00
elky
08ac9c5c58
Merge remote-tracking branch 'origin/pr/614'
2026-06-02 22:10:41 +08:00
Entropy.Xu
c2bcfab7d4
修复:Kiro 模拟缓存接入共享运行时
2026-05-31 22:13:45 +08:00
stabey
6bfd56b54f
fix(usage): 避免上游流式错误误记为成功
...
当上游流式响应中途失败时,sync error payload 可能同时包含合成错误体和部分上游流 body。
优先使用合成错误体生成 usage 终态,避免只因为上游先返回过 200 和部分 SSE 内容就把失败请求记录为 completed/settled。
2026-05-31 02:54:11 +08:00
fawney19
21e52722e6
Prefer provider request body for usage badges
2026-05-27 15:39:39 +08:00
AAEE86
e27ca671fd
feat(usage): show reasoning and fast badges in usage records
...
- extract provider reasoning effort from request body metadata
- extract priority service tier and expose it as service_tier
- show reasoning level and fast badges after model names
- include badges in active request updates and usage list payloads
- add targeted backend and frontend coverage
2026-05-27 00:36:52 +08:00
zhefox
ec681335e8
fix(usage): treat empty body_state as missing terminal event
2026-05-25 13:38:18 +08:00
fawney19
db32b1d982
fix(usage): ignore truncated stream captures for terminal inference
2026-05-23 22:16:02 +08:00
zhefox
91cb2bbbcc
fix(usage): refine stream terminal capture gating for OpenAI responses
2026-05-23 03:31:15 +08:00
zhefox
e5ce2ac7a4
fix(usage): detect missing terminal events in stream reporting
2026-05-23 00:47:36 +08:00
fawney19
d18b13a91a
fix: harden frontdoor and usage ingestion
2026-05-22 23:57:38 +08:00
zhefox
507f2f8250
fix(usage): treat stream terminal failures as failures on HTTP 200
2026-05-22 09:34:22 +08:00
fawney19
0e6d7539ad
Merge remote-tracking branch 'origin/pr/538'
2026-05-21 23:12:42 +08:00
fawney19
d6eb41aa78
Merge remote-tracking branch 'origin/pr/536'
...
# Conflicts:
# apps/aether-gateway/src/execution_runtime/stream/execution.rs
2026-05-21 23:03:14 +08:00
fawney19
97997685b5
Merge remote-tracking branch 'origin/pr/498'
2026-05-21 22:56:43 +08:00
fawney19
ab0a90de97
fix(runtime-state): govern redis connections
2026-05-21 22:53:37 +08:00
zhefox
77c2d91eb0
fix(gateway): drain downstream-disconnected streams and stop inferring cancelled usage
2026-05-21 20:30:44 +08:00
zhefox
12abde2aeb
fix(usage): handle terminal stream failures and preserve usage updates
2026-05-21 15:52:51 +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
0226e14251
feat(provider): 原生接入 Windsurf provider
2026-05-21 01:02:02 +08:00
fawney19
052de6b96e
test: stabilize merged PR checks
2026-05-19 10:18:25 +08:00
fawney19
69af74b1e0
Merge PR #488 and #489
2026-05-19 03:16:35 +08:00
ZheFox
c58ce63fc3
Merge branch 'fawney19:main' into main
2026-05-19 00:50:52 +08:00
ZheFox
995ab302be
Merge remote-tracking branch 'upstream/main'
...
# Conflicts:
# apps/aether-gateway/src/handlers/admin/provider/endpoints_admin/payloads.rs
# apps/aether-gateway/src/handlers/admin/provider/endpoints_admin/reads.rs
# apps/aether-gateway/src/handlers/admin/provider/endpoints_admin/update.rs
# apps/aether-gateway/src/tests/control/admin/endpoints/routes.rs
# frontend/src/features/models/components/GlobalModelFormDialog.vue
# frontend/src/features/providers/components/ProviderModelFormDialog.vue
# frontend/src/features/providers/components/provider-tabs/__tests__/model-test-request.spec.ts
# frontend/src/features/providers/components/provider-tabs/model-test-request.ts
2026-05-18 22:02:31 +08:00
RWDai
24129d7f12
Merge upstream/main into feat/356-usage-record-columns
2026-05-18 20:33:05 +08:00
ZheFox
a10c02ef63
feat(billing): add image output range pricing support
2026-05-18 11:52:01 +08:00
ZheFox
0b2a8fafce
feat(billing): add image output pricing and usage tracking
2026-05-18 02:49:56 +08:00
ZheFox
691ccaaa04
fix(usage): track OpenAI image SSE completion and usage estimates
2026-05-18 01:32:45 +08:00
Kayphoon
ae472d6744
fix(data): require provider id for provider usage aggregation
2026-05-18 00:36:29 +08:00
ZheFox
680b617b00
feat(gateway): route OpenAI image streams through chat bridge
2026-05-17 23:09:50 +08:00
MMEXA
81ff375bfd
fix(gateway): route Gemini embedding batches correctly
2026-05-17 14:24:32 +00:00
ZheFox
ab0d766f47
fix(usage): stop inferring cache reads from prompt_cache_key
2026-05-17 03:04:33 +08:00
ZheFox
b903f8ff7d
fix(usage): estimate cache read tokens for cancelled requests
2026-05-17 02:13:13 +08:00
ZheFox
0483d001b4
fix(usage): bill cancelled terminal usage and preserve total token estimates
2026-05-17 01:11:42 +08:00
ZheFox
2803e9317d
fix(usage): bill cancelled terminal usage and preserve terminal telemetry
2026-05-16 23:43:40 +08:00
RWDai
df7b2824a6
Persist client family usage metadata
2026-05-16 15:55:38 +08:00
fawney19
d6c320bf06
Revert "Merge remote-tracking branch 'origin/pr/466'"
...
This reverts commit 0e0a24862f , reversing
changes made to b09fd48eee .
2026-05-16 00:50:00 +08:00
ZheFox
2345df0e38
fix(usage): bill cancelled terminal usage
2026-05-15 22:38:34 +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