stabey
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
fawney19
b84e4a96e2
chore: tune default postgres settings for 2c4g
2026-05-21 01:36:05 +08:00
fawney19
57910f906d
Preserve usage provider identity
2026-05-20 20:56:36 +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
f76bbaab52
feat: support api key ip restriction rules
2026-05-20 16:11:49 +08:00
RWDai
bdc848b19e
Merge upstream main into feat/500-api-key-ip-whitelist
2026-05-20 10:26:56 +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
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
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
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
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
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
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
fawney19
d51b44d642
Merge remote-tracking branch 'origin/pr-485'
...
# Conflicts:
# crates/aether-data/src/repository/provider_catalog/sqlite.rs
2026-05-18 19:44:18 +08:00
RWDai
b6f558d10b
Project usage client family in Postgres reads
2026-05-18 19:29:10 +08:00
RWDai
6d994917a0
Add usage client family read model field
2026-05-18 19:28:36 +08:00
fawney19
b99f43783c
Merge remote-tracking branch 'origin/pr-482'
...
# Conflicts:
# .github/workflows/release.yml
2026-05-18 18:55:11 +08:00
fawney19
7f76eff827
Merge remote-tracking branch 'origin/pr-484'
2026-05-18 18:01:57 +08:00
fawney19
be939f7e63
Merge remote-tracking branch 'origin/pr-493'
2026-05-18 18:01:43 +08:00
fawney19
a8a87d2b41
Merge remote-tracking branch 'origin/pr-494'
2026-05-18 18:00:47 +08:00
RWDai
0a26accca4
Merge remote-tracking branch 'upstream/main' into feat/356-usage-record-columns
2026-05-18 17:49:35 +08:00
ZheFox
a4012ad353
Merge upstream/main
2026-05-18 13:11:11 +08:00
fawney19
92813e6122
feat: add routing profile scheduling policies
2026-05-18 11:03:49 +08:00
MMEXA
b004a02e4a
fix(gateway): harden Gemini endpoint routing
2026-05-18 00:53:34 +00:00
Kayphoon
ae472d6744
fix(data): require provider id for provider usage aggregation
2026-05-18 00:36:29 +08:00
MMEXA
89d08d9953
fix: align provider model fetch state
2026-05-17 16:17:47 +00:00
dalamudx
b0fc6e68ef
fix: add icon_url to mysql generated baseline
2026-05-17 22:00:28 +08:00
dalamudx
e1a73be2e1
fix: update schema baselines, logical schema, and snapshot cutoff for icon_url
2026-05-17 21:52:36 +08:00
dalamudx
cf2c74e8e8
fix: add new migration version to test whitelist
2026-05-17 21:42:56 +08:00
dalamudx
48deff15c4
fix(oauth): fix login failures and add provider icon_url config
...
- Fix FIND_OAUTH_LINKED_USER_SQL missing allowed_providers_mode columns
- Fix TOUCH_OAUTH_LINK_SQL json/jsonb type mismatch in COALESCE
- Add icon_url field to OAuth provider config (DB, API, frontend)
- Fix admin OAuth test: accept 404 as reachable, use system proxy
2026-05-17 21:33:02 +08:00