fawney19
2c28d9979c
Merge commit 'refs/pr/585'
...
# Conflicts:
# apps/aether-gateway/src/ai_serving/planner/passthrough/provider/family/request.rs
# apps/aether-gateway/src/tests/ai_execute/stream_provider_gemini/local_cli.rs
# apps/aether-gateway/src/tests/ai_execute/sync/gemini/cli.rs
# apps/aether-gateway/src/tests/control/admin/provider_query.rs
# crates/aether-provider-transport/src/gemini_cli/mod.rs
# crates/aether-provider-transport/src/gemini_cli/request.rs
# crates/aether-provider-transport/src/gemini_cli/url.rs
# crates/aether-provider-transport/src/lib.rs
2026-05-28 13:19:42 +08:00
fawney19
0efb3d340d
Merge commit 'refs/pr/530'
2026-05-28 12:53:45 +08:00
Mas0nShi
9ad9858ac2
Merge origin/main into fix/gemini-cli-v1internal
2026-05-28 11:58:00 +08:00
stabey
739e39e1ca
fix: 修复缓存 token usage 转换语义
...
统一 OpenAI、Gemini、Claude 之间缓存 token 的 usage 语义,避免 Claude 侧重复统计缓存输入 token。
同时补充 stream 合并逻辑、字段注释和覆盖转换链路的测试。
2026-05-27 23:49:07 +08:00
ZheFox
b02d62642a
Merge branch 'fawney19:main' into main
2026-05-27 16:18:21 +08:00
zhefox
8abedecb16
fix(ai): dedupe OpenAI responses text snapshot deltas
2026-05-27 16:11:02 +08:00
fawney19
8606455355
Merge pull request #581 from zhefox/main
...
fix(gateway): preserve JSON mode chat hints in responses normalization
2026-05-27 15:40:17 +08:00
fawney19
6673ab6d4a
Add fast model directive service tier
2026-05-27 15:08:23 +08:00
zhefox
41ad422002
fix(gateway): preserve JSON mode chat hints in responses normalization
2026-05-27 13:35:16 +08:00
fawney19
a0f22ae659
fix: tighten pr 566 claude and deepseek handling
2026-05-26 00:57:28 +08:00
fawney19
235f32e10e
Merge remote-tracking branch 'origin/pr/566' into review/pr-566-fix
2026-05-26 00:43:45 +08:00
hemo94931
9010f0806a
fix(ai): sanitize Claude Read pages passthrough
2026-05-25 21:01:10 +08:00
hemo94931
495795327c
fix(ai): sanitize empty Read pages for Claude tools
2026-05-25 21:01:10 +08:00
MMEXA
b347f1816d
Fix native Antigravity stream envelope handling
2026-05-25 09:39:55 +08:00
MMEXA
28c3a5dbe4
Add Antigravity v1internal gateway adapter
2026-05-25 06:58:15 +08:00
zhefox
bd1e155332
fix(provider): normalize OpenAI chat tool history for Claude messages
2026-05-23 02:45:04 +08:00
Mas0nShi
8b7643e150
Merge remote-tracking branch 'origin/main' into fix/gemini-cli-v1internal
...
# Conflicts:
# apps/aether-gateway/src/ai_serving/transport.rs
# apps/aether-gateway/src/handlers/admin/provider/oauth/dispatch/batch/parse.rs
# apps/aether-gateway/src/handlers/shared/catalog.rs
# crates/aether-admin/src/provider/quota.rs
# crates/aether-model-fetch/src/strategy.rs
# crates/aether-provider-pool/src/lib.rs
# crates/aether-provider-pool/src/service.rs
# crates/aether-provider-transport/src/provider_types.rs
# frontend/src/features/providers/components/ProviderDetailDrawer.vue
# frontend/src/utils/__tests__/providerKeyQuota.spec.ts
# frontend/src/utils/providerKeyQuota.ts
# frontend/src/views/admin/PoolManagement.vue
2026-05-22 17:13:57 +08:00
zhefox
2a298de971
fix(provider): serialize Claude tool results as JSON strings
2026-05-22 14:41:27 +08:00
zhefox
97de4ff8a3
fix(gateway): accept Claude Messages bodies on OpenAI chat endpoints
2026-05-22 14:09:51 +08:00
zhefox
9b95fa4d95
fix(gateway): handle responses-shaped OpenAI chat bodies and SSE passthrough
2026-05-22 11:39:38 +08:00
Mas0nShi
9533bd7043
fix: route Gemini CLI generateContent through stream
2026-05-22 09:30:55 +08:00
fawney19
0e6d7539ad
Merge remote-tracking branch 'origin/pr/538'
2026-05-21 23:12:42 +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 <[email protected] >
2026-05-21 15:26:42 +08:00
fawney19
923515ab28
fix: align image generation checks
2026-05-21 00:45:02 +08:00
ZheFox
3c6924238f
feat(usage): include cache token details in stream usage payloads
2026-05-20 21:20:10 +08:00
ZheFox
2cacf66a37
fix(gateway): route openai image streams with images surface
2026-05-20 18:13:34 +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
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
ZheFox
c024c782e4
feat(billing): add image quality pricing and usage tracking
2026-05-18 00:11:30 +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
0483d001b4
fix(usage): bill cancelled terminal usage and preserve total token estimates
2026-05-17 01:11:42 +08:00
mayrain
5bf236957e
feat(grok): add runtime image surfaces
2026-05-16 21:15:38 +08:00
fawney19
01a982bdf6
fix: preserve codex include fields
2026-05-15 03:25:06 +08:00
ZheFox
a0eed2cc51
fix: split Codex chat and responses defaults
2026-05-14 15:33:03 +08:00
fawney19
697b6e0653
fix: stabilize openai responses reasoning streams
2026-05-14 00:27:10 +08:00
zhefox
2d354fa294
fix: preserve passthrough for same-format stream rewrites
2026-05-13 19:42:22 +08:00
zhefox
1adbf23be4
feat(ai-formats): add reasoning summary boundaries for streams
2026-05-13 17:41:34 +08:00
zhefox
1726df1169
fix: add codex reasoning defaults and stream rewrite tests
2026-05-13 14:34:16 +08:00
fawney19
0fa97595bf
Fix reasoning model directive response identity
2026-05-11 23:03:11 +08:00
stabey
7e5a08e09d
fix: enforce provider upstream stream policy
2026-05-09 12:30:56 +08:00
fawney19
79d07ac79a
Improve request trace upstream diagnostics
2026-05-09 10:46:04 +08:00
fawney19
a703acd1fe
feat(proxy): record tunnel stability metrics
2026-05-08 22:03:17 +08:00
fawney19
9a84a6ff6c
refactor(ai-formats): group formats by provider
...
Move protocol/request/response format modules under provider-oriented formats modules and update registry, transport, and architecture paths.
2026-05-08 15:51:14 +08:00