Commit Graph

1881 Commits

Author SHA1 Message Date
fawney19
4d856f3deb Merge remote-tracking branch 'origin/pr/516' 2026-05-20 10:54:32 +08:00
fawney19
61bcbe826a fix: tighten OAuth auto cleanup signals 2026-05-20 10:34:22 +08:00
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
fawney19
fbda210b84 Merge pull request #511 2026-05-20 01:22:55 +08:00
fawney19
ed75ae6d56 Merge pull request #509 from beilo/feat/key-ranking-usage
Add paginated API key usage leaderboard
2026-05-20 01:06:58 +08:00
fawney19
d1ad1815f7 Merge pull request #513 from mayrainnn/fix/request-body-content-encoding
feat: normalize compressed request bodies
2026-05-20 01:05:59 +08:00
fawney19
b1a3a26815 Merge pull request #512 from Entropy-Xu/codex/fix-wallet-overdraft-settlement
[codex] 修复钱包余额不足后重复消费
2026-05-20 01:05:26 +08:00
fawney19
94760dbc14 refactor(tunnel): rename aether-proxy to aether-tunnel 2026-05-20 01:02:01 +08:00
zhiqicloud
3a318a86b2 支持官方直连支付、退款配置与套餐联动 2026-05-20 00:21:56 +08:00
fawney19
f4d0d5904a Remove image_generation tools from OpenAI image bridges 2026-05-20 00:20:56 +08:00
fawney19
25c7bb935e chore(frontend): simplify concurrent limit hint text 2026-05-19 23:52:59 +08:00
fawney19
f5deed8709 refactor(proxy): improve tunnel throughput and observability 2026-05-19 23:49:36 +08:00
beilo
fe3a848eb5 feat(admin): add paginated API key usage leaderboard 2026-05-19 23:17:10 +08:00
mayrain
8f4f4d2d82 refactor(gateway): route decoded body access through ai_serving 2026-05-19 22:58:03 +08:00
mayrain
66a54cc39e feat(gateway): normalize compressed request bodies 2026-05-19 22:57:45 +08:00
Entropy.Xu
7ace958710 fix(wallet): 修复余额不足后重复消费
- 有限钱包结算允许扣成负数,先扣充值余额再扣赠送余额,缺口回写到充值余额
- 日额度钱包补扣路径在存在钱包时不再把余额不足标成 insufficient_quota
- 补充内存和 SQLite 结算回归覆盖,三种数据库实现保持一致
验证:
- cargo fmt --all --check
- cargo clippy -p aether-data --all-targets -- -D warnings
- cargo clippy -p aether-gateway --all-targets -- -D warnings
- cargo clippy --workspace --exclude aether-gateway --exclude aether-data --all-targets -- -D warnings
- cargo nextest run -p aether-gateway
- cargo nextest run -p aether-data
- cargo nextest run --workspace --exclude aether-gateway --exclude aether-data
- cargo test -p aether-data sqlite --lib
- Postgres/MySQL data_db_smoke commands from rust-ci.yml
2026-05-19 19:29:22 +08:00
fawney19
57655bdb25 Hide capability tags from UI 2026-05-19 19:10:30 +08:00
fawney19
124077a0a1 Merge branch 'pr-506' 2026-05-19 18:36:36 +08:00
fawney19
1b570daf72 Revert "Merge PR #504"
This reverts commit d216a9e219, reversing
changes made to 21e82abd54.
2026-05-19 17:23:57 +08:00
fawney19
8bcd5b8189 Revert "Merge remote-tracking branch 'origin/pr-473'"
This reverts commit f2cdb74ed8, reversing
changes made to 3f0fd15395.
2026-05-19 16:31:58 +08:00
fawney19
63202a63ef Merge branch 'codex/pool-hot-trace-fix'
# Conflicts:
#	apps/aether-gateway/src/ai_serving/planner/candidate_materialization.rs
2026-05-19 14:47:37 +08:00
fawney19
7e9ca88e00 fix: restore provider key circuit breaker backoff 2026-05-19 13:57:36 +08:00
fawney19
6a1da6a5ff fix: speed up admin pool loading 2026-05-19 12:05:36 +08:00
mayrain
d88f092dd1 feat(kiro): add simulated cache provider toggle 2026-05-19 10:47:17 +08:00
mayrain
b4d17a392a feat(kiro): simulate prompt cache usage accounting 2026-05-19 10:47:17 +08:00
fawney19
c6a408d4e8 Fix local gateway Docker native deps 2026-05-19 10:43:04 +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
d8a9d7eb5e chore: format merged PR changes 2026-05-19 08:13:56 +08:00
fawney19
d216a9e219 Merge PR #504 2026-05-19 08:10:57 +08:00
fawney19
21e82abd54 Merge PR #502 2026-05-19 08:10:48 +08:00
fawney19
18ed9a57c2 Merge PR #499 2026-05-19 08:10:37 +08:00
fawney19
702dc3ceb4 Merge PR #489 (ours: keep current main) 2026-05-19 03:38:26 +08:00
fawney19
3180ca2bf9 Merge PR #488 (ours: keep current main) 2026-05-19 03:38:22 +08:00
fawney19
69af74b1e0 Merge PR #488 and #489 2026-05-19 03:16:35 +08:00
MMEXA
ef9c0ebbd4 Merge latest origin/main into codex/gemini-embedding-batch
# Conflicts:
#	apps/aether-gateway/src/ai_serving/planner/standard/openai/mod.rs
#	apps/aether-gateway/src/execution_runtime/fallback.rs
2026-05-18 19:11:42 +00:00
MMEXA
ca4d0dc819 Merge origin/main into codex/gemini-embedding-batch
# Conflicts:
#	apps/aether-gateway/src/ai_serving/api.rs
#	apps/aether-gateway/src/ai_serving/planner/passthrough/provider/family/request.rs
#	apps/aether-gateway/src/ai_serving/planner/standard/family/request.rs
#	apps/aether-gateway/src/ai_serving/transport.rs
#	apps/aether-gateway/src/handlers/admin/provider/query/models/model_test/summary.rs
#	apps/aether-gateway/src/handlers/admin/provider/query/models/model_test/tests.rs
#	crates/aether-data/src/repository/candidate_selection/postgres.rs
#	crates/aether-model-fetch/src/strategy.rs
2026-05-18 19:02:19 +00:00
fawney19
cd1aa92931 Merge branch 'merge-pr-483' 2026-05-19 02:28:43 +08:00
fawney19
9fc9c334c9 Merge remote-tracking branch 'origin/pr/487'
# Conflicts:
#	crates/aether-data/src/lifecycle/bootstrap/postgres.rs
#	crates/aether-data/src/lifecycle/migrate/tests.rs
#	crates/aether-data/src/repository/oauth_providers/postgres.rs
#	crates/aether-data/src/repository/oauth_providers/sqlite.rs
#	frontend/src/views/admin/OAuthSettings.vue
2026-05-19 02:27:39 +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
be2e8e594c fix(frontend): align Vertex Gemini endpoint controls 2026-05-18 17:36:04 +00:00
fawney19
d392681c58 Merge branch 'pr-478'
# Conflicts:
#	apps/aether-gateway/src/data/state/mod.rs
#	apps/aether-gateway/src/handlers/admin/mod.rs
#	apps/aether-gateway/src/handlers/admin/routes.rs
#	crates/aether-data/src/lifecycle/bootstrap/postgres.rs
#	crates/aether-data/src/lifecycle/migrate/tests.rs
#	crates/aether-data/src/repository/announcements/postgres.rs
#	frontend/src/features/auth/components/RegisterDialog.vue
2026-05-19 01:27:42 +08:00
MMEXA
5ed8325592 fix(gateway): use Vertex model garden catalog endpoint 2026-05-18 17:06:42 +00:00
fawney19
ed1d9fdb57 Fix postgres bigint counter decoding 2026-05-19 00:58:09 +08:00
ZheFox
c58ce63fc3 Merge branch 'fawney19:main' into main 2026-05-19 00:50:52 +08:00
fawney19
5eed329916 Rootfix usage counter outbox 2026-05-19 00:44:37 +08:00
fawney19
19c8688eb1 Merge pull request #477 from RWDai/feat/356-usage-record-columns
Add configurable usage record columns
2026-05-19 00:35:30 +08:00
MMEXA
4317ff78b1 Expose local scheduling failures in usage UI 2026-05-18 16:28:37 +00:00
MMEXA
b480f3aaff fix(gateway): normalize Gemini Vertex embedding transport 2026-05-18 15:39:29 +00:00