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
zhefox
be6e49b9c2
Merge branch 'main' of https://github.com/zhefox/Aether
2026-05-21 12:30:48 +08:00
zhefox
e59e6c3797
fix(gateway): sanitize Claude thinking and handle missing stream finish
2026-05-21 12:30:42 +08:00
Entropy.Xu
6b04a0a3a6
fix(windsurf): 修复 native 工具流式回程
2026-05-21 02:55:05 +08:00
Entropy.Xu
4112a8b2ea
fix(provider): 修复 Windsurf PR CI 失败
2026-05-21 02:21:35 +08:00
fawney19
b84e4a96e2
chore: tune default postgres settings for 2c4g
2026-05-21 01:36:05 +08:00
fawney19
e7f8b259ac
Revert "Merge pull request #517 from zhiqicloud/feat/provider-balance-query"
...
This reverts commit 7e95e769d5 , reversing
changes made to 490306c242 .
2026-05-21 01:24:17 +08:00
Entropy.Xu
65c361115a
fix(provider): 修复 Windsurf PR 冲突残留
2026-05-21 01:02:02 +08:00
Entropy.Xu
129c7c90c0
fix(provider): 修复 Windsurf 原生工具桥接
2026-05-21 01:02:02 +08:00
Entropy.Xu
82637ad882
fix(provider): 修复 Windsurf Connect 请求与端点计数
2026-05-21 01:02:02 +08:00
Entropy.Xu
931c577345
fix(provider): 接入 Windsurf 模型测试链路
2026-05-21 01:02:02 +08:00
Entropy.Xu
9466d92a7a
fix(provider): 接入 Windsurf 模型拉取和格式转换
2026-05-21 01:02:02 +08:00
Entropy.Xu
0a0a8b31c7
fix(provider): 隐藏 Windsurf refresh token 刷新入口
2026-05-21 01:02:02 +08:00
Entropy.Xu
208c77a062
fix(provider): 对齐 Windsurf PostAuth 登录链路
2026-05-21 01:02:02 +08:00
Entropy.Xu
0226e14251
feat(provider): 原生接入 Windsurf provider
2026-05-21 01:02:02 +08:00
fawney19
923515ab28
fix: align image generation checks
2026-05-21 00:45:02 +08:00
ZheFox
779877acd0
Merge branch 'fawney19:main' into main
2026-05-20 22:49:49 +08:00
ZheFox
5a9f19cbf2
fix(gateway): filter upstream SSE control-only blocks
2026-05-20 22:33:41 +08:00
zhiqicloud
9562295d8b
feat: 添加在线更新功能
2026-05-20 22:29:11 +08:00
fawney19
e50ceeba5a
Merge pull request #525 from final0920/fix/issue-505-priority-order
...
fix: 修复优先级管理重新打开顺序回退
2026-05-20 21:00:06 +08:00
fawney19
57910f906d
Preserve usage provider identity
2026-05-20 20:56:36 +08:00
ZheFox
d3355a8a09
fix(gateway): decode stream-encoded provider response JSON
2026-05-20 20:40:48 +08:00
fawney19
c972bbd397
Fix provider pool exhaustion scheduling
2026-05-20 20:16:57 +08:00
流云
b47282fe4c
fix: 修复优先级管理重新打开顺序回退
...
优先级管理弹窗依赖 grouped-by-format 接口回显格式优先级,但该接口此前读取 summary key 行。summary 查询会清空 global_priority_by_format 和 internal_priority 等路由字段,导致保存后的数据库顺序存在,重新打开页面却回退为前端占位顺序。
改为使用完整 key 查询,并增加 summary 字段被清空时仍能回显真实优先级的回归测试。
Fixes #505
Constraint: grouped-by-format 是优先级管理弹窗的数据源,必须返回真实 per-format priority 字段。
Rejected: 修改前端继续猜测顺序 | 无法区分真实数据库优先级与占位回退。
Confidence: high
Scope-risk: narrow
Tested: cargo fmt --check; git diff --check
Not-tested: cargo test on local Windows blocked by missing NASM for boring-sys2
2026-05-20 19:44:05 +08:00
ZheFox
a31e237cc3
Merge upstream main
2026-05-20 19:28:49 +08:00
ZheFox
cfa32a2b4d
fix(gateway): preserve openai image 200 responses and sync success reporting
2026-05-20 19:17:42 +08:00
ZheFox
2cacf66a37
fix(gateway): route openai image streams with images surface
2026-05-20 18:13:34 +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
fawney19
cb894208a1
Merge pull request #521 from Avilianb/fix/provider-query-responses-compact-body
...
Fix provider model test compact request bodies
2026-05-20 17:42:53 +08:00
ZheFox
de7be4f15b
fix(gateway): route openai image api requests with mapped models
2026-05-20 17:16:38 +08:00
RWDai
5130da9710
Return paginated admin users metadata
2026-05-20 16:51:46 +08:00
RWDai
8440846bae
Expose admin user export counts through gateway state
2026-05-20 16:51:46 +08:00
Avilianb
97fb588a4a
Apply rustfmt to compact provider test
2026-05-20 16:47:30 +08:00
Avilianb
cd994d57d2
Fix provider model test compact request bodies
2026-05-20 16:29: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
ZheFox
cde2062618
chore(gateway): make openai image intent import local
2026-05-20 16:09:24 +08:00
ZheFox
9673fc4c01
fix(codex): trigger image override only on explicit tool_choice
2026-05-20 15:34:31 +08:00
RWDai
1604a6d87d
fix(gateway): allow clearing API key IP whitelists
2026-05-20 13:41:14 +08:00
ZheFox
7d5ad1e70e
chore(gateway): silence dead code warnings in openai image bridge
2026-05-20 13:32:14 +08:00
ZheFox
89860bec97
fix(codex): restrict openai image routing to codex responses
2026-05-20 13:17:24 +08:00
zhiqicloud
ebc1774300
修正 new_api 验证测试断言
2026-05-20 13:04:22 +08:00
zhiqicloud
122daf0f87
支持 Provider Key 余额查询与自动刷新
2026-05-20 12:33:31 +08:00
RWDai
149651f831
test(gateway): expect image bridge tools
2026-05-20 11:22:45 +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
RWDai
84c4c2f9c2
fix(gateway): preserve image generation tools
2026-05-20 11:02:41 +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
fawney19
fbda210b84
Merge pull request #511
2026-05-20 01:22:55 +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