fawney19
57910f906d
Preserve usage provider identity
2026-05-20 20:56:36 +08:00
fawney19
c972bbd397
Fix provider pool exhaustion scheduling
2026-05-20 20:16:57 +08:00
fawney19
d0981c2fd5
Merge pull request #522 from RWDai/fix/admin-users-server-pagination
...
Fix admin users server-side pagination
2026-05-20 18:03:11 +08:00
RWDai
44fb1af287
Fix admin user count clippy lint
2026-05-20 17:06:33 +08:00
RWDai
831554f11d
Add admin user export count queries
2026-05-20 16:51:46 +08:00
fawney19
fa5d26ce38
Merge remote-tracking branch 'origin/main'
2026-05-20 16:14:09 +08:00
fawney19
f76bbaab52
feat: support api key ip restriction rules
2026-05-20 16:11:49 +08:00
fawney19
b6bdc08267
Merge branch 'pr-501'
2026-05-20 14:05:00 +08:00
zhiqicloud
122daf0f87
支持 Provider Key 余额查询与自动刷新
2026-05-20 12:33:31 +08:00
RWDai
316b1e3207
Merge remote-tracking branch 'upstream/main' into feat/500-api-key-ip-whitelist
2026-05-20 11:14:43 +08:00
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
RWDai
bdc848b19e
Merge upstream main into feat/500-api-key-ip-whitelist
2026-05-20 10:26:56 +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
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
f5deed8709
refactor(proxy): improve tunnel throughput and observability
2026-05-19 23:49:36 +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
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
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
b4d17a392a
feat(kiro): simulate prompt cache usage accounting
2026-05-19 10:47:17 +08:00
RWDai
d19bf71343
Refresh migration cutoff expectations
2026-05-19 10:25:06 +08:00
RWDai
02f09c2056
Regenerate API key schema baselines
2026-05-19 10:24:47 +08:00
RWDai
6a104d5736
Add allowed IPs to data schema sources
2026-05-19 10:24:27 +08:00
RWDai
95af482ffe
Update auth snapshot observability fixture
2026-05-19 10:23:54 +08:00
fawney19
052de6b96e
test: stabilize merged PR checks
2026-05-19 10:18:25 +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
18ed9a57c2
Merge PR #499
2026-05-19 08:10:37 +08:00
fawney19
69af74b1e0
Merge PR #488 and #489
2026-05-19 03:16:35 +08: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
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
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
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
276d19b63c
Persist allowed IPs in auth repositories
2026-05-18 20:47:17 +08:00
RWDai
437024cdb1
Add API key allowed IP data types
2026-05-18 20:47:03 +08:00
RWDai
64b41434ce
Add API key allowed IP migrations
2026-05-18 20:46:53 +08:00
RWDai
24129d7f12
Merge upstream/main into feat/356-usage-record-columns
2026-05-18 20:33:05 +08:00