Diego Rodrigues de Sa e Souza
342cd87e12
feat(db): track API endpoint dimension on usage_history
...
Add an `endpoint` column to `usage_history` (migration 103) so the proxy
records which API entry point a request came through — typically
`/v1/chat/completions`, `/v1/messages`, or `/v1/responses`. Every
`saveRequestUsage(...)` call site in `open-sse/handlers/chatCore.ts`
(success, stream, failure) and the codex-responses-ws route now plumbs
the endpoint through, and a new `getEndpointUsageRows(...)` analytics
query in `src/lib/db/usageAnalytics.ts` aggregates per
endpoint × provider × model with NULL → 'unknown' folding for backward
compatibility with rows from before the migration.
The aggregation reads directly from `usage_history` (matching the
`getAutoRoutingVariantBreakdown` pattern) so the existing unified-source
CTE — and the `daily_usage_summary` rollup it joins — stay untouched.
TDD: tests/unit/usage-endpoint-dimension.test.ts covers persistence
round-trip, NULL fallback, and the sinceIso filter (3/3 passing).
Co-authored-by: toanalien <toanalien@gmail.com >
Inspired-by: https://github.com/decolua/9router/pull/152
2026-06-24 00:46:39 -03:00
Diego Rodrigues de Sa e Souza
8251e7b8fb
feat(opencode-go): advertise glm-5.2 and kimi-k2.7-code (align with official Go endpoints) ( #4711 )
...
Integrated into release/v3.8.36
2026-06-24 00:41:53 -03:00
Diego Rodrigues de Sa e Souza
7a6f43209c
fix(translator): replay reasoning_content on plain Xiaomi MiMo turns (port from 9router#1321) ( #4639 )
...
Integrated into release/v3.8.36
2026-06-24 00:41:16 -03:00
Diego Rodrigues de Sa e Souza
95e26a07ff
fix(cli): bump better-sqlite3 runtime pin to 12.10.1 for Node 26 ( #4685 )
...
Integrated into release/v3.8.36
2026-06-24 00:38:50 -03:00
Diego Rodrigues de Sa e Souza
f9ccf342c0
chore(dashboard): rename Qoder display label from "Qoder AI" to "Qoder" ( #4733 )
...
Integrated into release/v3.8.36
2026-06-24 00:37:15 -03:00
Diego Rodrigues de Sa e Souza
70afa2b5c6
feat(quota): saturação real do Claude no fair-share via /api/oauth/usage ( #4885 )
...
Integrated into release/v3.8.36
2026-06-24 00:04:37 -03:00
Diego Rodrigues de Sa e Souza
4305ef8690
fix(quota): policy inválida não vaza allow + guard connectionIds vazio [Fase 3 #10 ] ( #4901 )
...
Integrated into release/v3.8.36
2026-06-24 00:04:22 -03:00
Diego Rodrigues de Sa e Souza
27c994ffd3
feat(quota): recuperação proativa de conexões em cooldown (cron heal) [Fase 3 #8 ] ( #4900 )
...
Integrated into release/v3.8.36
2026-06-24 00:04:20 -03:00
Diego Rodrigues de Sa e Souza
5c0cda929c
fix(security): SSRF allowlist bypass via x-relay-path nos relays Deno/Vercel ( #4899 )
...
Integrated into release/v3.8.36
2026-06-24 00:04:17 -03:00
Diego Rodrigues de Sa e Souza
2039095f69
chore(claude,codex): bump pinned CLI identity — Claude 2.1.158→2.1.187, Codex 0.132.0→0.142.0 ( #4883 )
...
Integrated into release/v3.8.36
2026-06-24 00:04:13 -03:00
KooshaPari
c522454c79
feat(live-ws): allow non-loopback clients via LIVE_WS_ALLOWED_HOSTS ( closes #4873 ) ( #4877 )
...
Integrated into release/v3.8.36 (live-ws + combo-api commits; Tailscale CGNAT commit held pending opt-in/opt-out decision)
2026-06-23 23:21:51 -03:00
Éder Costa
2a7f2c892a
feat(routing): honor X-Route-Model header to override body.model ( #4863 )
...
Integrated into release/v3.8.36
2026-06-23 23:15:02 -03:00
Jefferson Felizardo
eb175db8ed
fix(codex): drop non-standard codex.* events that break responses.stream (env-gated, #4602 ) ( #4715 )
...
Integrated into release/v3.8.36
2026-06-23 23:07:51 -03:00
Éder Costa
86b14add6e
fix(claude): skip mcp__ tool-name cloak + guard missing connectionId ( #4861 )
...
Integrated into release/v3.8.36
2026-06-23 22:59:51 -03:00
Éder Costa
108e93e14b
fix(sse): drop ccp pin when pinned provider is durably unhealthy (failover + anti-flap) ( #4864 )
...
Integrated into release/v3.8.36
2026-06-23 22:58:21 -03:00
Randi
459ffcf2c0
fix db storage tuning settings ( #4834 )
...
Integrated into release/v3.8.36
2026-06-23 22:57:26 -03:00
Chewji
e99e2887bf
fix(combo): propagate selected connection ID to fallback error responses for correct model lockout ( #4809 )
...
Integrated into release/v3.8.36
2026-06-23 22:56:14 -03:00
Demiurge The Single
604654cc3a
fix(install): make transformers optional for CUDA-host installs ( #4807 )
...
Integrated into release/v3.8.36
2026-06-23 22:54:15 -03:00
Anton
e1ffc8e850
fix(sse): skip third-party tool-name cloak for Anthropic server tools ( #4808 )
...
Integrated into release/v3.8.36
2026-06-23 22:53:13 -03:00
Chewji
805519befb
fix(antigravity): exclude standard Gemini rate limit message from quota exhaustion keywords ( #4810 )
...
Integrated into release/v3.8.36
2026-06-23 22:52:50 -03:00
Makcim Ivanov
9a5627a4a6
fix(proxy): fan out direct dispatcher streams ( #4803 )
...
Integrated into release/v3.8.36
2026-06-23 22:51:54 -03:00
Diego Rodrigues de Sa e Souza
b5995778cb
fix(copilot): never route Gemini/Claude variants to /responses (chat-completions only) ( #4627 )
...
Integrated into release/v3.8.36 — never route Gemini/Claude to /responses (port #1536 ); fused with #4626 codex routing via supportsResponsesEndpoint gate; release-green
2026-06-23 22:16:33 -03:00
Diego Rodrigues de Sa e Souza
cc8e1bedf5
fix(github): route Copilot Codex models to /responses (port from 9router#102) ( #4626 )
...
Integrated into release/v3.8.36 — route Copilot Codex models to /responses (port #102 ); release-green
2026-06-23 22:15:12 -03:00
Diego Rodrigues de Sa e Souza
9244d930ea
fix(security): pin image fetch DNS resolution to prevent SSRF rebinding (GHSA-cmhj-wh2f-9cgx) ( #4634 )
...
Integrated into release/v3.8.36 — pin DNS for image fetch SSRF rebinding guard (GHSA-cmhj-wh2f-9cgx, port c7d07448); caller DNS stubs + test-file baseline reconciled; release-green
2026-06-23 22:14:30 -03:00
Diego Rodrigues de Sa e Souza
396a9a72cd
feat(proxy-pool): Deno Deploy relays + group action buttons ( #4643 )
...
Integrated into release/v3.8.36 — Deno Deploy relays (port #1437 ); proxies.ts baseline reconciled + env docs restored; release-green
2026-06-23 22:12:12 -03:00
Diego Rodrigues de Sa e Souza
122f6d3a19
feat(combo): Fusion strategy — parallel panel + judge synthesis (16th strategy) ( #4652 )
...
Integrated into release/v3.8.36 — Fusion combo strategy (16th, port 87e5c1c6); combo.ts baseline reconciled; release-green
2026-06-23 22:10:11 -03:00
Diego Rodrigues de Sa e Souza
2d09f72b29
feat(provider): CodeBuddy CN (copilot.tencent.com) — full stack ( #4664 )
...
Integrated into release/v3.8.36 — CodeBuddy CN provider (port efd20be8); usage.ts import + public-creds allowlist line reconciled; release-green
2026-06-23 22:09:04 -03:00
Diego Rodrigues de Sa e Souza
6fe21e59e9
fix(claude): omit adaptive thinking + output_config.effort for haiku ( #4661 )
...
Integrated into release/v3.8.36 — haiku adaptive-thinking omit (port); release-green
2026-06-23 22:06:59 -03:00
Diego Rodrigues de Sa e Souza
c02aa7b064
fix(dashboard): show custom vision models in LLM selector ( #4653 )
...
Integrated into release/v3.8.36 — custom vision models in LLM selector (port 5e5e78d3); release-green
2026-06-23 22:04:29 -03:00
Diego Rodrigues de Sa e Souza
57de29a415
fix(copilot,antigravity): cap maxOutputTokens at 16384 to stop "Invalid Argument" 400 ( #4636 )
...
Integrated into release/v3.8.36 — cap maxOutputTokens 16384 antigravity (port #779 ); release-green
2026-06-23 22:02:29 -03:00
Diego Rodrigues de Sa e Souza
b92f045f70
fix(opencode): preserve DeepSeek reasoning content in streamed responses ( #4631 )
...
Integrated into release/v3.8.36 — DeepSeek reasoning_content injection (port #1099 ); release-green
2026-06-23 22:01:00 -03:00
Diego Rodrigues de Sa e Souza
486f01710c
fix(security): don't trust loopback socket as local when behind reverse proxy ( #4632 )
...
Integrated into release/v3.8.36 — port rebuilt clean, release-green
2026-06-23 21:58:52 -03:00
Diego Rodrigues de Sa e Souza
ec1c5df091
feat(compression): Kiro/CodeWhisperer tool-result compression engine ( #4635 )
...
Integrated into release/v3.8.36 — port rebuilt clean, release-green
2026-06-23 21:58:48 -03:00
Diego Rodrigues de Sa e Souza
69703ee7db
feat(api/v1): include alias-backed models in /v1/models listing ( #4630 )
...
Integrated into release/v3.8.36 — port rebuilt clean over release tip, release-green validated
2026-06-23 21:56:57 -03:00
Diego Rodrigues de Sa e Souza
be2ab9e419
fix(claude-oauth): respect 429 backoff on usage endpoint to reduce spam ( #4655 )
...
Integrated into release/v3.8.36 — port rebuilt clean over release tip, release-green validated
2026-06-23 21:56:21 -03:00
Diego Rodrigues de Sa e Souza
607ad12e84
fix(executors): strip params unsupported by the target provider/model ( #4658 )
...
Integrated into release/v3.8.36 — port rebuilt clean over release tip, release-green validated
2026-06-23 21:56:07 -03:00
Diego Rodrigues de Sa e Souza
32b2df974a
fix(test): validate anthropic-compatible connections via POST /v1/messages ( #4657 )
...
Integrated into release/v3.8.36 — anthropic-compat validation via POST /v1/messages (port 584cf66a), rebuilt clean + baseline; release-green
2026-06-23 21:54:43 -03:00
Diego Rodrigues de Sa e Souza
e176774395
fix(cli): harden the systray2 tray runtime (port of 9router#1080) ( #4628 )
...
Integrated into release/v3.8.36 — port rebuilt clean over release tip, release-green validated
2026-06-23 21:52:52 -03:00
Diego Rodrigues de Sa e Souza
983e152ea2
fix(security): validate kiro region to prevent SSRF (GHSA-6mwv-4mrm-5p3m) ( #4629 )
...
Integrated into release/v3.8.36 — kiro region SSRF guard (GHSA-6mwv-4mrm-5p3m), port rebuilt clean over release tip
2026-06-23 21:52:21 -03:00
Diego Rodrigues de Sa e Souza
1ad6c46b46
fix(cli-tools): tolerate JSONC (comments, trailing commas) in tool settings ( #4659 )
...
Integrated into release/v3.8.36 — port (rebuilt from stale base; defining commit cherry-picked clean over release tip, release-green validated)
2026-06-23 21:51:54 -03:00
Diego Rodrigues de Sa e Souza
d2aa67a11c
fix(image): prevent compatible nodes from shadowing provider aliases ( #4656 )
...
Integrated into release/v3.8.36 — port (rebuilt from stale base; defining commit cherry-picked clean over release tip, release-green validated)
2026-06-23 21:51:45 -03:00
Diego Rodrigues de Sa e Souza
f4fa983a9f
fix(perplexity): validate API keys via /v1/models endpoint ( #4654 )
...
Integrated into release/v3.8.36 — port (rebuilt from stale base; defining commit cherry-picked clean over release tip, release-green validated)
2026-06-23 21:51:29 -03:00
Diego Rodrigues de Sa e Souza
35a3962cf0
fix(gemini): preserve pattern in antigravity tool schema sanitizer ( #4651 )
...
Integrated into release/v3.8.36 — port (rebuilt from stale base; defining commit cherry-picked clean over release tip, release-green validated)
2026-06-23 21:51:17 -03:00
Diego Rodrigues de Sa e Souza
a9368af7df
fix(translator): normalize tools to Anthropic-native shape for non-Anthropic providers ( #4650 )
...
Integrated into release/v3.8.36 — port (rebuilt from stale base; defining commit cherry-picked clean over release tip, release-green validated)
2026-06-23 21:51:08 -03:00
Diego Rodrigues de Sa e Souza
2a90a9e589
fix(translator): emit </think> close marker for Anthropic thinking blocks ( #4633 )
...
Integrated into release/v3.8.36 — port (rebuilt from stale base; defining commit cherry-picked clean over release tip, release-green validated)
2026-06-23 21:50:54 -03:00
Diego Rodrigues de Sa e Souza
ea406b2197
fix(translator): normalize developer role to system for OpenAI-format providers ( #4625 )
...
Integrated into release/v3.8.36 — port (rebuilt from stale base; defining commit cherry-picked clean over release tip, release-green validated)
2026-06-23 21:50:37 -03:00
Diego Rodrigues de Sa e Souza
fc2fdc7e3c
fix(translator): strip top-level client_metadata on the OpenAI passthrough (port from 9router#1157) ( #4624 )
...
Integrated into release/v3.8.36 — port (rebuilt from stale base; defining commit cherry-picked clean over release tip, release-green validated)
2026-06-23 21:50:28 -03:00
Diego Rodrigues de Sa e Souza
fcf162d3fe
fix(api): auth on compression run-telemetry + document OMNIROUTE_EVAL_CREDENTIALS ( #4694 , #4720 ) ( #4796 )
...
Integrated into release/v3.8.36 — auth on compression run-telemetry + OMNIROUTE_EVAL_CREDENTIALS doc, release-green validated (typecheck + 3 tests + env-doc-sync)
2026-06-23 20:37:25 -03:00
Diego Rodrigues de Sa e Souza
502f43c283
feat(sse): add Google Flow video-generation provider ( #4569 ) ( #4769 )
...
Integrated into release/v3.8.36 — Google Flow video-generation provider (#4569 ), release-green validated (typecheck + 21 tests + file-size)
2026-06-23 20:37:23 -03:00
Diego Rodrigues de Sa e Souza
c922b21102
fix(quota): cota exclusiva lista qtSd/ no /v1/models ( #4806 ) + limite EPSILON não bloqueia ( #4830 )
...
Integrated into release/v3.8.36 — quota-exclusive qtSd/ listing (#4806 ) + EPSILON placeholder no longer blocks; rebuilt from stale base (3 defining commits cherry-picked clean over release tip)
2026-06-23 20:17:09 -03:00