mayrain
65e3b6f3da
fix(codex): trigger image override only on explicit tool_choice
...
The codex `apply_codex_openai_responses_special_body_edits` override
previously triggered whenever the `tools` array contained an
`image_generation` entry, regardless of whether the caller actually
asked to use it. Codex CLI advertises `image_generation` alongside
~20 other tools under `tool_choice: "auto"`, so every routine codex
conversation was being rewritten into image-generation-only form:
- `model` forced to `gpt-5.4-mini` (CODEX_OPENAI_IMAGE_INTERNAL_MODEL)
- `stream` forced to `true`
- `tools` truncated to a single `image_generation` entry
- `tool_choice` overwritten to `{"type":"image_generation"}`
The upstream ChatGPT codex backend then rejected the request with
`400 Tool choice 'image_generation' not found in 'tools' parameter`,
which the gateway surfaced as a retryable 503 to clients. The bug
reproduced on every codex CLI session that included the image tool
in its tool catalogue, even though the user never requested image
generation.
Narrow the trigger to the caller's actual selection. The new helper
`codex_openai_responses_tool_choice_references_image_generation`
matches only the explicit string `"image_generation"` or the object
form `{"type":"image_generation"}`. The pre-existing
`is_openai_image_request(provider_api_format)` branch still handles
genuine `openai:image` traffic, so true image-generation flows are
unaffected.
Tests:
- lock the regression: `tool_choice: "auto"` with image_generation
in tools must not trigger the override (model/tools preserved)
- lock variants: string `"image_generation"` and object form both
still trigger; other tool_choice values and an absent
`tool_choice` do not
2026-05-20 09:52:39 +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
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
MMEXA
b480f3aaff
fix(gateway): normalize Gemini Vertex embedding transport
2026-05-18 15:39:29 +00:00
MMEXA
b004a02e4a
fix(gateway): harden Gemini endpoint routing
2026-05-18 00:53:34 +00: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
RWDai
6014925e60
style: format codex compact regression tests
2026-05-15 14:40:27 +08:00
RWDai
1dc9b505e4
fix: strip include from codex compact requests
2026-05-15 14:20:16 +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
e251a63cb3
Merge remote-tracking branch 'pr-434/fix-provider-model-test-compat' into aether-rust-pioneer
2026-05-14 01:28:33 +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
mayrain
8f082674d7
fix: align embedding provider request formats
2026-05-12 20:10:52 +08:00
fawney19
0fa97595bf
Fix reasoning model directive response identity
2026-05-11 23:03:11 +08:00
fawney19
ceda0635e4
Merge remote-tracking branch 'origin/pr/424' into aether-rust-pioneer
...
# Conflicts:
# crates/aether-provider-transport/src/vertex/auth.rs
# crates/aether-provider-transport/src/vertex/mod.rs
# crates/aether-provider-transport/src/vertex/policy.rs
2026-05-11 00:19:04 +08:00
Codex
75df21932a
修复 Gemini 工具结果透传 Vertex 格式
2026-05-10 19:08:35 +08:00
fawney19
228253c166
Merge pull request #410 from Entropy-Xu/codex/codex-image-progress-heartbeat
...
Add Codex image progress heartbeat
2026-05-10 17:57:33 +08:00
fawney19
0f42a6ed82
Fix Codex image progress heartbeat merge regressions
2026-05-10 02:10:23 +08:00
stabey
dcfdba0a97
fix: preserve claude tool results in openai chat conversion
...
Preserve all Claude tool_result blocks when emitting OpenAI Chat messages, including multimodal image/file content and is_error markers.
2026-05-09 22:16:27 +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
Entropy.Xu
eda3738d59
Merge branch 'aether-rust-pioneer' of https://github.com/fawney19/Aether into codex/codex-image-progress-heartbeat
...
# Conflicts:
# frontend/src/features/usage/components/__tests__/HorizontalRequestTimeline.spec.ts
2026-05-09 01:26:44 +08:00
Entropy.Xu
3b4f27f767
Add Codex image progress heartbeat
2026-05-09 01:21:26 +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
fawney19
2b439094c5
Fix endpoint condition source handling
2026-05-07 15:56:28 +08:00
fawney19
012f8bcdf7
feat: scope model mappings by endpoint
2026-05-07 00:48:15 +08:00
fawney19
4e9f063385
use original request sources for endpoint conditions
2026-05-06 23:48:31 +08:00
fawney19
e2bffbbaca
Remove body name style rule support
2026-05-06 22:12:21 +08:00
Entropy.Xu
4baee436ba
feat(image): 接入 ChatGPT Web 生图反代
2026-05-06 11:52:33 +08:00
Kayphoon
6bdd7792eb
fix: repair embedding rerank CI checks
2026-05-04 11:33:00 +08:00
Kayphoon
5abe664d65
feat: add embedding and rerank support
2026-05-03 17:32:41 +08:00
fawney19
c4ea042eb4
feat: add model directive management
2026-05-03 14:48:25 +08:00
fawney19
3a770306cc
refactor: separate request auth channel from route kind
...
Extract request_auth_channel as a distinct routing dimension to distinguish
between api_key and bearer_like authentication methods. This improves routing
clarity by decoupling authentication mechanism from route classification.
2026-05-02 21:23:33 +08:00
fawney19
47ee8b9c13
refactor: fold ai surfaces into formats
2026-05-02 18:19:39 +08:00
fawney19
c130d0e2c9
refactor ai serving modules and crates
2026-05-02 13:23:54 +08:00
fawney19
33aa70c22b
fix scheduler affinity candidate selection
2026-04-30 16:27:24 +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
Entropy.Xu
6e1eaf8aec
fix(kiro): 修复 Kiro WebSearch MCP 调用 ( #344 )
...
* fix(kiro): 接入 Kiro MCP web_search 工具调用
* fix(kiro): 对齐 Kiro IDE MCP 鉴权与 profileArn 头部
* fix(responses): 保留 Responses 嵌套与自定义工具参数
* test(ci): 通过 Rust Action 三项检查
2026-04-27 12:20:26 +08:00
fawney19
3991d47166
Fix format checks and local error messages
2026-04-27 00:27:03 +08:00