Commit Graph
100 Commits
Author SHA1 Message Date
fawney19 f1358dd845 Merge pull request #375 from RWDai/feat/303-client-aware-scheduler
feat: add session-aware scheduler affinity
2026-05-06 00:21:00 +08:00
fawney19 8043cca126 fix: align postgres core export schema 2026-05-06 00:20:06 +08:00
fawney19 6dd7464793 Merge remote-tracking branch 'origin/aether-rust-pioneer' into pr-375-session-scope 2026-05-05 22:34:47 +08:00
fawney19 79c272f0fd Merge pull request #378 from fawney19/codex/transport-profile-routing
Implement transport profile routing
2026-05-05 22:24:48 +08:00
fawney19 f959f02d40 Implement transport profile routing 2026-05-05 22:21:23 +08:00
fawney19 98421126f2 refactor: carry normalized client session affinity 2026-05-05 21:34:17 +08:00
fawney19 ddf3fb6f63 refactor: introduce client session scope abstraction 2026-05-05 20:58:42 +08:00
fawney19 aacab1a90c Merge remote-tracking branch 'origin/aether-rust-pioneer' into aether-rust-pioneer
# Conflicts:
#	crates/aether-data-contracts/src/repository/usage/mod.rs
#	crates/aether-data/src/repository/global_models/postgres.rs
#	crates/aether-data/src/repository/usage/postgres/mod.rs
2026-05-05 18:53:14 +08:00
fawney19 fce7e959e5 Add multi-database data layer
Introduce aether-data-schema and driver-specific schema generation for Postgres, MySQL, and SQLite.

Split data backends, lifecycle, repositories, and gateway runtime integration across database drivers.

Verified with cargo fmt --all --check, cargo clippy --workspace --all-targets -- -D warnings, and cargo test --workspace.
2026-05-05 18:27:36 +08:00
fawney19 825c1b496d Merge pull request #374 from Entropy-Xu/codex/provider-performance-stats
feat(stats): 添加 Provider 性能统计分析
2026-05-05 13:16:06 +08:00
fawney19 ccde3d4045 style(gateway): format secret masking changes 2026-05-05 13:04:56 +08:00
fawney19 f7071967c0 fix(gateway): mask catalog secrets on char boundaries 2026-05-05 12:48:19 +08:00
fawney19 627eb4f335 Merge pull request #371 from Kayphoon/feature/embedding-model-support
feat: add embedding and rerank support
2026-05-04 12:56:11 +08:00
fawney19 8dd4135f7c Fix provider key insert placeholder order 2026-05-04 12:21:54 +08:00
fawney19 099653f732 Cap Codex pool cooldowns and add key circuit breaker 2026-05-04 02:15:32 +08:00
fawney19 1d62722d47 Improve Codex model fetching 2026-05-04 01:16:56 +08:00
fawney19 fb642f7d62 feat: improve OAuth provider configuration 2026-05-04 00:18:05 +08:00
fawney19 cb5b8ee1ee Use Rust build metadata for system version 2026-05-03 22:06:16 +08:00
fawney19 b4a8c5dde2 Format execution runtime transport imports 2026-05-03 21:52:15 +08:00
fawney19 53a5e18b20 Merge pull request #370 from yao177/aether-rust-pioneer
fix(proxy): record manual proxy node traffic
2026-05-03 21:40:20 +08:00
fawney19 6f00cabe96 Lazy load requested model candidates 2026-05-03 20:56:31 +08:00
fawney19 a24e4a793d Refactor pool candidate scheduling 2026-05-03 20:14:29 +08:00
fawney19 8ebee9922c fix: return auth mismatch key setting in provider key list 2026-05-03 20:11:49 +08:00
fawney19 c4ea042eb4 feat: add model directive management 2026-05-03 14:48:25 +08:00
fawney19 11c5884d4f Remove API format rate multiplier field 2026-05-03 00:55:59 +08:00
fawney19 e3ea2d1451 feat: configure auth channel mismatch formats 2026-05-03 00:49:22 +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 4fc7cecf30 Fix OAuth token import and table filters 2026-05-01 02:14:49 +08:00
fawney19 9570e5c2c1 Fix legacy Claude and Gemini auth migration 2026-04-30 18:01:58 +08:00
fawney19 33aa70c22b fix scheduler affinity candidate selection 2026-04-30 16:27:24 +08:00
fawney19 558abfcfa3 Route request origin through ai pipeline facade 2026-04-30 12:15:51 +08:00
fawney19andRWDai 7fcb9e6292 feat(usage): record request origin metadata (#362)
Record client IP and User-Agent in usage request_metadata for local execution requests without adding schema, API, or table fields.

References #357 and supersedes #358.

Co-authored-by: RWDai <[email protected]>
2026-04-30 11:26:56 +08:00
fawney19 fa47e8a3c0 feat: add select all to access limit dropdowns 2026-04-30 00:45:53 +08:00
fawney19 9e2faa7e5b Tighten local auth allow-list matching 2026-04-30 00:26:33 +08:00
fawney19 37392d8774 fix(ai): allow null OpenAI Responses error fields 2026-04-29 21:12:14 +08:00
fawney19 a16550249b fix: allow empty provider secrets to attempt requests 2026-04-29 18:55:52 +08:00
fawney19 d6de917878 Fix key API format auth help 2026-04-29 17:35:16 +08:00
fawney19 e751289dfb Support per-format provider key auth 2026-04-29 15:46:50 +08:00
fawney19 07a319259b Normalize canonical API formats 2026-04-29 10:20:41 +08:00
fawney19 02ad67fe33 fix(test): update openai format identifier from cli to responses 2026-04-28 21:04:38 +08:00
fawney19 a9b809a32c chore(proxy): bump version to 0.3.3 2026-04-28 19:57:29 +08:00
fawney19 230e7d6259 Normalize management token prefixes 2026-04-28 19:46:38 +08:00
fawney19 3d20c05ef7 Fix OAuth refresh through tunnel proxy 2026-04-28 19:45:34 +08:00
fawney19 9194f78e56 OAuth refresh 隧道代理统一启用 follow-redirects 2026-04-28 17:47:28 +08:00
fawney19 70f747d406 Add shared OAuth flows 2026-04-28 15:46:21 +08:00
fawney19 0c9b5ddd77 Fix usage terminal state regression 2026-04-28 10:31:16 +08:00
fawney19 3f1abb6906 Format OAuth refresh consistency changes 2026-04-28 09:54:35 +08:00
fawney19 29fc0be121 Tighten OAuth refresh consistency 2026-04-28 09:36:42 +08:00
fawney19 321f21ad49 Fix provider OAuth refresh token reuse 2026-04-28 02:00:35 +08:00
fawney19 639f26ed5d fix: force http1 for tunnel oauth refresh 2026-04-28 01:37:40 +08:00
fawney19 032dcf40e7 fix: filter candidate rows to resolved global model name only 2026-04-28 01:12:27 +08:00
fawney19 9a67497d8c fix: align oauth tunnel refresh transport 2026-04-28 01:10:34 +08:00
fawney19 6426b5d80e chore: add oauth refresh diagnostics 2026-04-28 00:18:51 +08:00
fawney19 83e1f99ccf fix: invalidate oauth transport cache after refresh 2026-04-27 23:35:05 +08:00
fawney19 05b8b8a442 fix: bypass oauth cache for forced refresh 2026-04-27 23:04:31 +08:00
fawney19 ed17147281 fix: align provider oauth refresh redirects 2026-04-27 22:08:02 +08:00
fawney19 a7a3c9f023 Fix OAuth import proxy handling 2026-04-27 20:05:43 +08:00
fawney19 4c16b11cb4 Align runtime miss tests with skipped candidates 2026-04-27 18:09:56 +08:00
fawney19 17f09fc8c1 Expose ranking metadata in request trace 2026-04-27 17:24:32 +08:00
fawney19 3e0293ac28 Rename local candidate resolution entrypoints 2026-04-27 17:24:32 +08:00
fawney19 07fba70a90 Guard pool scheduler ranking boundary 2026-04-27 17:24:32 +08:00
fawney19 da0e968975 Update transport ranking architecture guard 2026-04-27 17:24:32 +08:00
fawney19 98e4e91a98 Rename transport ordering facts 2026-04-27 17:24:32 +08:00
fawney19 218e73e324 Use core affinity helpers directly 2026-04-27 17:24:32 +08:00
fawney19 51c3beb614 Narrow core ranking public surface 2026-04-27 17:24:32 +08:00
fawney19 9da47ceb22 Remove duplicate capability candidate sorting 2026-04-27 17:24:32 +08:00
fawney19 e9f03d8d29 Remove ranked minimal selection compatibility helper 2026-04-27 17:24:32 +08:00
fawney19 e5e09b49f4 Remove ranked candidate data read wrappers 2026-04-27 17:24:32 +08:00
fawney19 dda6f34a07 Rename ranked minimal candidate reads 2026-04-27 17:24:32 +08:00
fawney19 44930532dc Align ranked candidate selection test names 2026-04-27 17:24:32 +08:00
fawney19 f10f5f071d Clarify ranked minimal candidate selection 2026-04-27 17:24:32 +08:00
fawney19 517e84e5ae Move local ranking test helper into tests 2026-04-27 17:24:31 +08:00
fawney19 2101a4ecc7 Drop legacy candidate ordering helpers 2026-04-27 17:24:31 +08:00
fawney19 8d2cbf32df Remove legacy tunnel-only candidate ordering 2026-04-27 17:24:31 +08:00
fawney19 a23758808d Isolate core candidate selection helpers 2026-04-27 17:24:31 +08:00
fawney19 91db4eefd0 Persist ranking metadata through request traces 2026-04-27 17:24:31 +08:00
fawney19 f52220a8ec Clean up planner candidate modules 2026-04-27 17:24:31 +08:00
fawney19 1d23bf4ecb Isolate standalone key wallet handling 2026-04-27 17:24:31 +08:00
fawney19 3b542434a2 Unify candidate ranking pipeline 2026-04-27 17:24:31 +08:00
fawney19 488bd08f04 Stabilize Kiro Claude CLI sync tests 2026-04-27 00:45:48 +08:00
fawney19 3991d47166 Fix format checks and local error messages 2026-04-27 00:27:03 +08:00
fawney19 0c73f245ab shrink formats conversion to compatibility facades 2026-04-26 23:59:53 +08:00
fawney19 989b27426b refactor formats adapters and matrix ownership 2026-04-26 23:59:53 +08:00
fawney19 c10cd8240e refactor ai formats registry adapters 2026-04-26 23:59:53 +08:00
fawney19 5cd2244bc2 fix frontend openai responses alias display 2026-04-26 23:59:53 +08:00
fawney19 0ec4b4c8a4 guard legacy openai alias compatibility 2026-04-26 23:59:53 +08:00
fawney19 4ec591fbf2 centralize openai responses alias handling 2026-04-26 23:59:53 +08:00
fawney19 ea3dc3257e clean up legacy openai cli adapter names 2026-04-26 23:59:53 +08:00
fawney19 5b914aa78c migrate ai format conversion to responses adapters 2026-04-26 23:59:53 +08:00
fawney19 baa0ddd787 Improve runtime miss usage diagnostics 2026-04-26 01:44:54 +08:00
fawney19 1d3ea3232d Add unified candidate failure diagnostics 2026-04-26 01:38:37 +08:00
fawney19 429fdb47e6 fix(usage): 简化本地执行错误提示 2026-04-25 20:46:22 +08:00
fawney19 912a92cd1a refactor(rules): 规则引擎容错优化,无效规则条目跳过而非中止整个规则集
- header/body rules 的 _are_locally_supported 简化为仅检查是否为数组
- apply 逻辑中遇到格式错误/不支持的规则条目改为 continue 跳过,而非 return false
- 允许非字符串 header value,自动序列化为 JSON 字符串
- 宽松处理无效 regex flag,不再拒绝整条规则

fix(gateway): Claude CLI 路由仅检查 bearer 头,不排斥同时携带 x-api-key 的请求

feat(observability): 监控链路候选展示解密 auth_config 的账号标签和 OAuth 计划类型
2026-04-25 19:46:52 +08:00
fawney19 00744c0ce5 feat(observability): 引入错误链路 error_flow 元数据并区分上游/客户端错误
- 网关在本地 failover 时构建 error_flow 元数据(分类/决策/传播策略),写入 report_context
- scheduler-core 解析并透传 error_flow 至候选 extra_data
- admin usage 详情拆分 request/upstream/client/failure_summary 错误域,敏感上游错误标记为 suppressed
- 前端 RequestDetailDrawer 拆出"返回客户端"与"上游响应"双错误卡片
- HorizontalRequestTimeline 节点详情展示真实请求错误及 error_flow 标签
2026-04-25 17:01:07 +08:00
fawney19 cef7dcac71 refactor(usage): 抽取 JsonContentPanel 通用 JSON 展示组件
请求详情抽屉与时间线统一复用工具栏(展开/收缩、复制)和 JSON 视图,时间线的额外信息也由 pre 改为可交互面板
2026-04-25 11:44:01 +08:00
fawney19 61e12e2c17 feat(scheduler): candidate report 携带 header_rules 与 body_rules
各 planner 在构造 report context 时附带端点的 header/body 改写规则,scheduler 解析后写入 candidate extra_data,便于追踪请求实际应用的透传规则
2026-04-25 11:43:53 +08:00
fawney19 65e915fd1d refactor(api-keys): 网关 API Key 改为 32 位字母数字随机串
由 UUID 拼接(48 位 hex)改为 base62 字母数字,缩短长度并提升可读性
2026-04-25 10:04:04 +08:00
fawney19 1761921670 fix(usage): 移动端缓存 token 拆分为读/写两列展示
cache_read 与 cache_creation 原本被合并为单值,现分别显示并补充测试
2026-04-25 09:53:32 +08:00