Kayphoon
fe27fb17fb
feat: add provider-key concurrent limit ( #352 )
...
* feat: add provider-key concurrent limit
* Fix provider key concurrent limit checks
---------
Co-authored-by: fawney19 <elky0401@gmail.com >
2026-05-03 01:55:23 +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
jiuwovo-ai
bfd1ea72b3
fix: codex free accounts incorrectly marked as quota exhausted ( #366 )
...
* fix: codex free accounts incorrectly marked as quota exhausted when skip_exhausted_accounts enabled
- Cross-validate stored exhausted flag against window used_ratio in snapshot reader
- Guard has_credits:false check with window data presence in upstream_metadata fallback
- Add windows.is_empty() precondition to exhausted_by_credits in snapshot builder
Free codex accounts have has_credits:false (they use window-based quotas, not credits),
but the old logic treated this as credits depleted, skipping actual window usage checks.
This caused all free accounts to be incorrectly marked exhausted.
* test: cover codex free quota windows
---------
Co-authored-by: root <root@ser488556369540.local >
Co-authored-by: fawney19 <elky0401@gmail.com >
2026-05-02 14:11:29 +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
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
fawney19
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 <27391645+RWDai@users.noreply.github.com >
2026-04-30 11:26:56 +08:00
RWDai
2b5247b9a8
fix(data): repair request candidate epoch created_at ( #343 )
...
Co-authored-by: fawney19 <elky0401@gmail.com >
2026-04-30 09:23:21 +08:00
Entropy.Xu
4d59d518d1
fix: correct API key expiry and dashboard savings ( #361 )
2026-04-30 00:35:32 +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
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
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
AAEE86
712b484bc8
fix(scheduler): 恢复正则模型映射作为上游模型 ( #355 )
...
保留 provider_model_mappings 的优先级选择逻辑,但恢复
GlobalModel model_mappings 正则命中后的行为:使用命中的
allowed_model 作为实际上游 mapped_model。
修复了 #354 请求绕过基于正则表达式的模型映射的问题
2026-04-28 10:36:50 +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
Kayphoon
5311eb0da1
Fix provider model mapping selection ( #354 )
2026-04-28 09:23:39 +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
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
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
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