Skip to content
Merged
Show file tree
Hide file tree
Changes from 250 commits
Commits
Show all changes
1368 commits
Select commit Hold shift + click to select a range
544ae2d
fix(api): accept a missing status query-param on GET /api/plugins ins…
diegosouzapw Jul 24, 2026
73762b1
fix(backend): stop prompt-cache affinity from silently reordering an …
diegosouzapw Jul 24, 2026
1f58a29
fix(api): estimate inline base64 image tokens instead of counting the…
diegosouzapw Jul 24, 2026
09e9ece
fix(resilience): treat an unreachable-proxy ECONNREFUSED as a circuit…
diegosouzapw Jul 24, 2026
1cafd32
fix(dashboard): persist compression engine detail settings (Headroom …
diegosouzapw Jul 24, 2026
b8901b6
feat(db): persist caller session tag into call_logs for per-session c…
diegosouzapw Jul 25, 2026
53a91b3
feat(api): quota-aware fallback routing for web-fetch providers (#829…
diegosouzapw Jul 25, 2026
9a0e764
feat(cli): replace ANTHROPIC_SMALL_FAST_MODEL with Fable default (#8343)
leszek3737 Jul 25, 2026
58ab8b1
Clicking a provider card hitting back loses scroll position (#8349)
swingtempo Jul 25, 2026
9dcbbd1
fix(i18n): restore brand proper nouns and unify terminology in zh-CN …
ikelvingo Jul 25, 2026
5d9ace6
feat(providers): map upstream reasoning-level metadata in openai-comp…
diegosouzapw Jul 25, 2026
49ccc73
docs(claude-code): document unprefixed model IDs and the Ambiguous mo…
dvirarad Jul 25, 2026
73c5e27
i18n(zh-TW): translate missing Reasoning Routing strings (#8423)
MumuTW Jul 25, 2026
4528fc4
fix(auth): exclude local CLI providers from tokenHealthCheck expirati…
MumuTW Jul 25, 2026
3432579
fix(oauth): add devin-cli and agy entries to OAUTH_TEST_CONFIG (#8427)
MumuTW Jul 25, 2026
7cc922b
fix(dashboard): preserve connection health visual on last routed topo…
MumuTW Jul 25, 2026
88180d0
feat(providers): add missing opencode-go reasoning effort variants (#…
Prudhvivuda Jul 25, 2026
0d92be2
test(e2e): contract test for the full provider journey (#8330) (#8444)
HoneyTyagii Jul 25, 2026
592defd
chore(deps): bump codecov/codecov-action from 5.5.5 to 7.0.0 (#8452)
dependabot[bot] Jul 25, 2026
2129aa8
chore(deps): bump github/codeql-action/analyze from 4.37.1 to 4.37.3 …
dependabot[bot] Jul 25, 2026
2a02d63
chore(deps): bump ossf/scorecard-action from 2.4.3 to 2.4.4 (#8454)
dependabot[bot] Jul 25, 2026
fb6b8e5
chore(deps): bump github/codeql-action/init from 4.37.1 to 4.37.3 (#8…
dependabot[bot] Jul 25, 2026
94125e0
chore(deps): bump actions/setup-python from 6 to 7 (#8456)
dependabot[bot] Jul 25, 2026
11f7ba2
fix(sse): record tool calls into shared state for openai->openai-resp…
hartmark Jul 25, 2026
9096428
feat: add Claude Opus 5 support (#8464)
backryun Jul 25, 2026
1930b09
chore(sse): drop deprecated baseUrl from open-sse tsconfig for TS 7.0…
backryun Jul 25, 2026
8eebda1
refactor(sse): resolve open-sse utils/translator type diagnostics for…
backryun Jul 25, 2026
3f2bf86
fix(sse): call the real abort-signal helper in the Gemini Business ex…
backryun Jul 25, 2026
5a20314
refactor(sse): declare the executor execute() result contract (#8489)
backryun Jul 25, 2026
7a8f915
test(sse): repair two base-red gates on release/v3.8.49 (#8490)
backryun Jul 25, 2026
e0aef4d
fix(translator): set status:completed on Responses input items to sat…
diegosouzapw Jul 25, 2026
24142a8
fix(providers): expose base-URL override for Kimi/Moonshot CN-region …
diegosouzapw Jul 25, 2026
55ff236
fix(providers): repoint zai-web executor to chat.z.ai v2 chat-complet…
diegosouzapw Jul 25, 2026
13cc128
fix(cli): fall back to node:sqlite when better-sqlite3 is unavailable…
diegosouzapw Jul 25, 2026
6127781
fix(backend): compute AgentBridge diagnose DNS check per-agent instea…
diegosouzapw Jul 25, 2026
6cad24e
fix(api): probe provider alias in models.dev reverse capability looku…
diegosouzapw Jul 25, 2026
9ced2e9
fix(sse): stop stream readiness from treating a choices-less error fr…
diegosouzapw Jul 25, 2026
3070925
fix(sse): stop combo's aggregated failure response from mixing fields…
diegosouzapw Jul 25, 2026
ec0be07
chore(deps): patch js-yaml + postcss for 2 high Dependabot alerts (#8…
diegosouzapw Jul 25, 2026
278640b
chore(ci): resync stale no-explicit-any suppression count for proxy-r…
MumuTW Jul 25, 2026
d06d3fb
test(sse): update three backoff assertions stale since the #8396 cool…
MumuTW Jul 25, 2026
c447be4
fix(db): classify compressionDetailNormalizers as db-internal in chec…
MumuTW Jul 25, 2026
cc63ac9
test(sse): register #8396 and #8376 unit tests in stryker tap.testFil…
MumuTW Jul 25, 2026
4053e23
chore(quality): rebaseline file-size for inherited base growth (#8561)
fenix007 Jul 25, 2026
1d7878d
chore(quality): rebaseline complexity/cognitive to v3.8.49 tip drift
ikelvingo Jul 26, 2026
f60c9fe
chore(quality): rebaseline complexity/cognitive for v3.8.49 merge-tra…
ikelvingo Jul 26, 2026
a51cd06
fix(resilience): honor comboCooldownWait for every combo strategy (#8…
DinonowDev Jul 26, 2026
06326a3
refactor(sse): stop three executors shadowing BaseExecutor.buildHeade…
backryun Jul 26, 2026
1bd1af2
refactor(sse): narrow three result unions via type predicates (#8499)
backryun Jul 26, 2026
fd739ab
refactor(sse): restore three executor types the runtime already relie…
backryun Jul 26, 2026
0312fe2
refactor(guardrails): narrow the documented void return at the dispat…
backryun Jul 26, 2026
2cf462c
refactor(sse): type the rerank response adapter's options parameter (…
backryun Jul 26, 2026
d628105
refactor(sse): retag the designer-web result unions with string discr…
backryun Jul 26, 2026
647afe3
refactor(sse): declare the multipart/gRPC frame bodies as ArrayBuffer…
backryun Jul 26, 2026
11f79b6
refactor(sse): stop isClaudeEventPayload claiming a narrowing it neve…
backryun Jul 26, 2026
6b5e7d5
fix(devin-cli): update ACP JSON-RPC protocol for Devin CLI 3000.2.x (…
MumuTW Jul 26, 2026
56185a8
refactor(dashboard): clear file-size base-red by extracting provider-…
MumuTW Jul 26, 2026
f0b08f9
chore(usage): decompose services/usage.ts into per-provider usage/* l…
MumuTW Jul 26, 2026
074fd6d
chore(validation): decompose providers/validation.ts into validation/…
MumuTW Jul 26, 2026
533f805
chore(token-refresh): decompose services/tokenRefresh.ts into tokenRe…
MumuTW Jul 26, 2026
1a70795
chore(combo): extract pure error predicates and quota status helpers …
MumuTW Jul 26, 2026
c06cd83
fix(sse): shallow per-target copy for the combo attempt body (#7847) …
MumuTW Jul 26, 2026
1cfbfc0
fix(sse): estimate tokens from the object and count JSON length witho…
MumuTW Jul 26, 2026
4bf47c9
chore(perf): add deterministic request-body heap benchmark (#7847) (#…
MumuTW Jul 26, 2026
cbdf1fc
fix(backend): bound the client raw request snapshot instead of deep-c…
MumuTW Jul 26, 2026
4c9292e
chore(i18n): normalize zh-TW terminology and sync stale README figure…
MumuTW Jul 26, 2026
7b3ef47
fix(providers): persist runtime-discovered Antigravity projectId to t…
diegosouzapw Jul 26, 2026
a784c52
fix(api): warn (never reject) when a combo name shadows a real model …
diegosouzapw Jul 26, 2026
fae1066
fix(api): expose responses-format models on all VS Code Ollama listin…
diegosouzapw Jul 26, 2026
2d48bb6
fix(hyperagent): default 1M context for fable/opus/sonnet (#8496)
artickc Jul 26, 2026
26d50f1
feat(adobe-firefly): reference image attach + /v1/images/edits (follo…
artickc Jul 26, 2026
a08b5cd
fix(notion-web): mint fresh thread for new OpenAI sessions with same …
artickc Jul 26, 2026
5bffb57
fix(providers): honor Extra API Keys rotation in OpencodeExecutor (#8…
Prudhvivuda Jul 26, 2026
ac5691f
fix(providers): resolve native vision for path-shaped multimodal mode…
Prudhvivuda Jul 26, 2026
ca79344
fix(cli): backup create/auto enable β€” remove option-shadowing legacy …
maxmad64bis Jul 26, 2026
a095ebc
feat: read INITIAL_PASSWORD env var during setup (#8439)
linhdmn Jul 26, 2026
3be0a5d
fix: combo input-bound, Responses->Chat image strip, qwen-web toolCal…
herjarsa Jul 26, 2026
2614e8a
feat(cli-tools): add all Hermes Agent auxiliary model roles (#8543)
leszek3737 Jul 26, 2026
d4b9ce6
fix(kiro): harden auth flows, quota lookup, and model discovery (#8565)
nguyenha935 Jul 26, 2026
5552650
fix(chatgpt-web): recover async images via conversation-poll fallback…
sadruzzahan Jul 26, 2026
63341f2
feat(combos): add select all / unselect all in Browse Catalog (#8526)
JoshimOfficial Jul 26, 2026
8115867
fix(dashboard): include OMNIROUTE_BASE_PATH in displayed API base URL…
rqzbeh Jul 26, 2026
6c93e74
feat(jobs): execute the backup-schedule.json cron server-side (#8513)…
maxmad64bis Jul 26, 2026
f6f0303
feat(log): Added new visual scrolling log page (#8354)
hartmark Jul 26, 2026
da20b96
feat(providers): weekly quota for xAI OAuth (Grok) (#8471)
allanvb Jul 26, 2026
f3fa27f
fix(backend): fail closed when capability filters empty the combo poo…
Prudhvivuda Jul 26, 2026
a61ed5d
fix(oauth): actionable guidance for LAN-origin loopback mismatches (c…
diegosouzapw Jul 26, 2026
763ed82
fix(guardrails): Vision Bridge describe-fallback ignores unreachable …
guhcostan Jul 26, 2026
553a073
fix(sse): label HTTP 499 disconnects as client_disconnected (#8552)
DinonowDev Jul 26, 2026
e73c5a6
[BUG] enforceOutputTokenBudget ignores combo-resolved context limit, …
RCrushMe Jul 26, 2026
c9be34a
fix(cursor): bridge native TodoWrite completions (#8432)
makcimbx Jul 26, 2026
7faec93
fix(resilience,translator): three release/v3.8.49 base-red regression…
diegosouzapw Jul 26, 2026
e4cd478
test(antigravity): align catalog tests with #8013/#8123 model realign…
diegosouzapw Jul 26, 2026
4cd1bbc
fix(sse): export PROVIDER_BREAKER_FAILURE_STATUSES β€” fix ReferenceErr…
diegosouzapw Jul 26, 2026
1f04333
merge: resolve conflicts for #7904 local corpus context (#8685)
diegosouzapw Jul 26, 2026
7c0d2c7
docs(env): document NEXT_PUBLIC_OMNIROUTE_BASE_PATH and OMNIROUTE_BAC…
MumuTW Jul 26, 2026
a096116
fix(quality): register the #8494 covering test in stryker tap.testFil…
diegosouzapw Jul 26, 2026
0fd5384
chore(quality): update baselines after v3.8.49 merge-train (#8686)
diegosouzapw Jul 26, 2026
7f8a59a
fix: repair five base-red failures on release/v3.8.49 (#8706)
diegosouzapw Jul 26, 2026
5be61db
feat(sse): relay upstream 4xx error bodies verbatim on the Anthropic …
diegosouzapw Jul 26, 2026
6389c5b
fix(sse): clamp max_tokens to the model output cap on every path (#8698)
diegosouzapw Jul 26, 2026
6706d5f
fix(api): serve /v1/models stale-first and sanitize its error bodies …
diegosouzapw Jul 26, 2026
cd9a631
feat: Claude Code discovery aliases (surface non-Claude models in the…
diegosouzapw Jul 26, 2026
ed7db3e
feat(dashboard): copy-paste settings.json block for Claude Code disco…
diegosouzapw Jul 26, 2026
96c3b94
Train 1D: merge via --admin on .113 validation
Dingding-leo Jul 27, 2026
dd34520
Train 1D: merge via --admin on .113 validation
backryun Jul 27, 2026
0cf8223
Train 1D: merge via --admin on .113 validation
backryun Jul 27, 2026
847d1ad
Train 1D: merge via --admin on .113 validation
backryun Jul 27, 2026
f93da3f
Train 1D: merge via --admin on .113 validation
Dingding-leo Jul 27, 2026
da24c58
Train 1D: merge via --admin on .113 validation
backryun Jul 27, 2026
b59127e
Train 1D: merge via --admin on .113 validation
backryun Jul 27, 2026
c544c2c
Train 1D: merge via --admin on .113 validation
backryun Jul 27, 2026
9f5be22
Train 1D: merge via --admin on .113 validation
Dingding-leo Jul 27, 2026
7e2c687
Train 1D: merge via --admin on .113 validation
Dingding-leo Jul 27, 2026
0f87482
Train 1D: merge via --admin on .113 validation
backryun Jul 27, 2026
419f8b4
Train 1D: merge via --admin on .113 validation
Dingding-leo Jul 27, 2026
4a332fe
Train 1D: merge via --admin on .113 validation
Dingding-leo Jul 27, 2026
6e420e5
Train 1D: merge via --admin on .113 validation
rinseaid Jul 27, 2026
d78a836
Train 1D: merge via --admin on .113 validation
fuko2935 Jul 27, 2026
899d198
Train 1D: merge via --admin on .113 validation
Dingding-leo Jul 27, 2026
f9899c5
Train 1D: merge via --admin on .113 validation
diegosouzapw Jul 27, 2026
1cbe8c4
Train 1D: merge via --admin on .113 validation
MumuTW Jul 27, 2026
cc53f45
Train 1D: merge via --admin on .113 validation
SteeleHu Jul 27, 2026
b46bb6d
feat(quality): temporary relax of complexity/file-size ratchets for v…
diegosouzapw Jul 27, 2026
5f365ba
feat(db): let the migration runner scan extra namespaced directories …
diegosouzapw Jul 27, 2026
9977492
fix(db): repair the extra-migration-dirs test and env contract on CI …
diegosouzapw Jul 27, 2026
1011500
perf(api): skip the full catalog build for quota-exclusive keys (#8771)
diegosouzapw Jul 27, 2026
4f3971f
fix(providers): handle space-separated search queries via matchesAnyT…
maxmad64bis Jul 27, 2026
13e15e9
refactor(sse): guard the KIE task-id and callback-url reads at their …
backryun Jul 27, 2026
6ca33ef
fix(autoCombo): fallback to base model intelligence for -free alias m…
Dingding-leo Jul 27, 2026
809e6d1
fix(autoCombo): use longest pattern match in static fitness table (#8…
Dingding-leo Jul 27, 2026
116d583
refactor(sse): declare the ArrayBuffer backing on media byte producer…
backryun Jul 27, 2026
722de9d
fix(dashboard): broken icon allignment in `SegmentedControl.tsx` (#8679)
0x2f0 Jul 27, 2026
f2ad55b
fix(providers): deprecate Monster API provider (fixes #8676) (#8691)
Dingding-leo Jul 27, 2026
7d67912
Dependabot updates (#8695)
justdoGIT Jul 27, 2026
f2d7e9a
fix(executors): pass TimeoutError reason to controller.abort() in 7 n…
diegosouzapw Jul 27, 2026
7db3ba6
fix(sse): stop thrashing the provider prompt cache for caching-aware …
diegosouzapw Jul 27, 2026
8512898
docs(codex): document session affinity and stream idle for long tasks…
DinonowDev Jul 27, 2026
ba28e49
fix(oauth): show GitLab Duo setup before authorize error (#8710)
DinonowDev Jul 27, 2026
f35579a
fix(sse): fall back to target provider for combo compression limits (…
DinonowDev Jul 27, 2026
1f3f43e
fix: hydration mismatch, duplicate React keys, and missing ponytail i…
Mananz90 Jul 27, 2026
296765f
fix(db): preserve readonly and existing-file semantics in node:sqlite…
epsilonode Jul 27, 2026
46d577c
Create AMIT (#8727)
amitgolan60-coder Jul 27, 2026
644da29
fix(sse): hide synthetic OpenAI startup reasoning (#8729)
rinseaid Jul 27, 2026
0c1654b
fix(guardrails): check feature flag helper in PIIMasker to honor DB o…
Dingding-leo Jul 27, 2026
eedade9
fix(sse): report a stream that completes without any content (#8732)
backryun Jul 27, 2026
2a0b175
chore(ci): add release PR build gate (#8735)
ekinnee Jul 27, 2026
5840d09
fix(plugins): delete the generated host script synchronously so plugi…
MumuTW Jul 27, 2026
2f4aff3
Stabilize Notion web sessions and JSON output (#8751)
0xheycat Jul 27, 2026
6bdfd54
feat(providers): live monthly credit quota for Firecrawl (#8759)
allanvb Jul 27, 2026
b61f28b
fix(sse): update ANTHROPIC_PING heartbeat data payload to {"type":"pi…
Dingding-leo Jul 27, 2026
2247517
fix(cloudflare-ai): sync missing free catalog models (fixes #8725) (#…
Dingding-leo Jul 27, 2026
474a3df
fix(bedrock): preserve additionalModelRequestFields in converse paylo…
Dingding-leo Jul 27, 2026
68095ad
fix(docs): use correct kebab-case CLI flags in OpenCode guide (take 2…
swingtempo Jul 27, 2026
82bed08
docs(podman): clarify Podman Machine deployment (#8569)
shixi-li Jul 27, 2026
dfd4d33
fix(backend): add error.code to synthOpenAIErrorChunk for guard compa…
marceli1404 Jul 27, 2026
803e737
feat(ci): block stale UI translations when an English value is rewrit…
diegosouzapw Jul 27, 2026
585ba4f
fix(video): validate Veo AI Free artifacts before success (#8581)
brunnolouzada Jul 27, 2026
1d44ee0
refactor(sse): extract combo dispatch prelude into combo/dispatchPrel…
MumuTW Jul 27, 2026
eadb28c
refactor(tls): update TLSClient instantiation to use buildNativeTlsCl…
DinonowDev Jul 27, 2026
41fe8dc
chore(quality): rebank file-size shrinks on release/v3.8.49 tip (#8585)
MumuTW Jul 27, 2026
094f583
fix(routing): exclude locked-out models from auto-combo candidates (#…
Prudhvivuda Jul 27, 2026
4d24c0c
fix(api): prevent silent lost updates on concurrent settings writes (…
Prudhvivuda Jul 27, 2026
92c18a1
fix(providers): persist perplexity-web Set-Cookie session rotations (…
Prudhvivuda Jul 27, 2026
df9550f
fix(cli): prepare Next.js cache dir on Android/Termux before serve (#…
DinonowDev Jul 27, 2026
d54a659
test(context): isolate context-manager suite from local DATA_DIR (#8596)
DinonowDev Jul 27, 2026
39e7772
fix(auto-combo): short-circuit expandAutoComboCandidatePool when mode…
mikeiagents Jul 27, 2026
20aa796
fix(sse): route task-aware defaults by intent, fix fitness pattern sh…
MumuTW Jul 27, 2026
ea678da
fix(auth): tag internal/loopback-origin failed logins in the audit lo…
Prudhvivuda Jul 27, 2026
bca3094
feat(providers): flatten multi-turn history for gemini-web (#8371) (#…
Prudhvivuda Jul 27, 2026
685e598
fix(providers): declare explicit OpenCode plugin feature-flag default…
Prudhvivuda Jul 27, 2026
052cab3
fix(providers): complete OpenCode Go effort alias exposure (#8610)
excessivechaos Jul 27, 2026
71f80ae
fix(ci): use webpack fallback for Node 26 compat build to stop OOM (#…
Prudhvivuda Jul 27, 2026
b676c5f
feat(ci): automate ratchet shrink-banking so caps stop outliving thei…
MumuTW Jul 27, 2026
7ac42d6
fix(resilience): report local queue expiry as unavailable (#8613)
excessivechaos Jul 27, 2026
bb5cb51
fix(docker): honor OMNIROUTE_BASE_PATH behind reverse-proxy subpaths …
DinonowDev Jul 27, 2026
dd22d9c
fix(resilience): recover idle wedged limiters (#8616)
excessivechaos Jul 27, 2026
9108955
fix(claude): classify native subscription quota 429 (#8628)
costaeder Jul 27, 2026
01c0f8a
fix(providers): recover Kimi after quota reset (#8632)
glazec Jul 27, 2026
5cf3d1f
fix(windows): request shell when spawning bare qoder binary name on W…
Dingding-leo Jul 27, 2026
6601ae3
fix(middleware): declare withInjectionGuard's context parameter optio…
backryun Jul 27, 2026
1055d14
refactor(sse): peel the bare Response off handleChatCore's union in r…
backryun Jul 27, 2026
44c0392
fix(autoCombo): handle missing model_capabilities table in taskFitnes…
Dingding-leo Jul 27, 2026
cf66338
chore(skills): regenerate cli-backup-sync SKILL.md to match catalog (…
MumuTW Jul 27, 2026
cd7a492
chore(quality): re-pin file-size ceilings after merge-train 1H + fix …
diegosouzapw Jul 27, 2026
0eeb8f4
refactor(sse): extract combo target resolution into combo/targetResol…
MumuTW Jul 27, 2026
352d48f
test(pack): list ensureAndroidCacheDir.mjs in the pack-artifact fixture
diegosouzapw Jul 28, 2026
f3a78d6
fix(sse): compact Responses multi-turn images before context hard-rej…
Prudhvivuda Jul 28, 2026
6afec74
deps: bump electron from 43.1.1 to 43.2.0 in /electron (#8782)
dependabot[bot] Jul 28, 2026
aecf2fc
deps: bump the production group across 1 directory with 18 updates (#…
dependabot[bot] Jul 28, 2026
2bd5076
fix(resilience): add UND_ERR_SOCKET to PROXY_UNREACHABLE_ERROR_CODES …
Dingding-leo Jul 28, 2026
f848764
fix(resilience): keep resource 404s from cooling models (#8756)
wilsonicdev Jul 28, 2026
530221a
fix(hyperagent): sticky thread for agentic tool loops (Claude Code) (…
artickc Jul 28, 2026
8e5dc0d
fix(client): rewrite absolute fetch/EventSource paths under basePath …
rqzbeh Jul 28, 2026
1bb3093
chore(quality): re-pin chatCore.ts ceiling after merge-train 2
diegosouzapw Jul 28, 2026
1c21431
fix(combo): fail open when strict context filter empties unknown-only…
DinonowDev Jul 28, 2026
4d66dd1
fix(resilience): honor Cloudflare 1010 retryable:false β€” skip COOLDOW…
DinonowDev Jul 28, 2026
0e14d66
fix(dashboard): restore Usage Model Breakdown column sorting (#8769) …
DinonowDev Jul 28, 2026
3e6684e
fix(api): treat cx/* and codex/* as equivalent API-key model permissi…
Prudhvivuda Jul 28, 2026
2538565
fix(sse): pass real response payload into plugin onResponse hooks (#8…
Prudhvivuda Jul 28, 2026
308d3f0
fix(types): export web executor types from their module (#8810)
backryun Jul 28, 2026
1b1e962
fix(types): preserve reasoning policy record shapes (#8811)
backryun Jul 28, 2026
5f5f4a5
fix(types): preserve compression detail config shapes (#8812)
backryun Jul 28, 2026
0bd7cea
fix(types): declare virtual chaos combo config (#8815)
backryun Jul 28, 2026
ff168ab
fix(electron): use NEXT_DIST_DIR when stripping stale native modules …
NBN-N3 Jul 28, 2026
6a59c09
feat(search): add Firecrawl search provider (#8814)
allanvb Jul 28, 2026
53f8284
fix(api): enforce image generation API key auth (#8306)
fenix007 Jul 28, 2026
b53bd96
fix(security): remove quadratic trailing-slash trim in Alibaba endpoi…
diegosouzapw Jul 28, 2026
d6c0693
chore(quality): re-pin ceilings after merge-train 3 + register CF-101…
diegosouzapw Jul 28, 2026
07ce14c
fix(types): type memory skills injection logger (#8816)
backryun Jul 28, 2026
6133939
fix(types): align web fallback contracts (#8819)
backryun Jul 28, 2026
67d13dc
fix(types): declare idempotency input contracts (#8820)
backryun Jul 28, 2026
b4776a2
test(quality): fail loudly when a source-scanning guard is negative-o…
MumuTW Jul 28, 2026
71c5a75
docs: replace outdated Polish docs with translation from latest Engli…
leszek3737 Jul 28, 2026
2f5e185
fix(types): normalize Kie transcription results (#8824)
backryun Jul 28, 2026
d30f484
fix(reasoning): sanitize streamed K3 think tags (#8821)
rinseaid Jul 28, 2026
18c1a2b
docs: restore the Polish API_REFERENCE removed by #8823 (#8831)
diegosouzapw Jul 28, 2026
c8f1d62
fix(dashboard): surface quota pool delete failures instead of failing…
diegosouzapw Jul 28, 2026
aa85fa0
feat(api): prompt-cache health summary endpoint and analytics tab (#8…
diegosouzapw Jul 28, 2026
3b515d9
fix(api): stop /v1/models rebuilding the catalog on almost every requ…
diegosouzapw Jul 28, 2026
0809c73
fix(providers): correct Codex GPT-5.6 context window (#8838)
TitoTFP Jul 28, 2026
85f1d78
fix(ghe-copilot): route OpenAI-native models via Responses API (#8835)
hppsc1215 Jul 28, 2026
2675b65
fix(cli): escape claude args and stop aborting on exit in omniroute l…
sumanxg Jul 28, 2026
38cee62
fix(antigravity): discover projectId during token refresh (#8842)
HouMinXi Jul 28, 2026
7193b0a
feat(oauth): support web client type for remote Google OAuth (#8845)
HouMinXi Jul 28, 2026
ed6a19e
fix(ci): raise the git ls-files buffer in check:tracked-artifacts (#8…
diegosouzapw Jul 28, 2026
f1fcdbf
fix(executors): route current Claude generations through Vertex partn…
wgordon17 Jul 28, 2026
8e0d7e4
fix(cli): escape codex args and stop aborting on exit in launch-codex…
sumanxg Jul 28, 2026
26a7783
chore(changelog): reconcile v3.8.49 β€” aggregate 584 fragments, restor…
diegosouzapw Jul 28, 2026
ec0edef
fix(token-refresh): discover projectId during token refresh (#8860)
HouMinXi Jul 28, 2026
85b9c17
feat: Xiaomi MiMo Token Plan provider + per-connection API protocol s…
diegosouzapw Jul 28, 2026
7f83b4b
fix(oauth): support Test Connection for xAI OAuth (#8862)
allanvb Jul 28, 2026
832d713
fix(combo): clean up stale connectionId refs after provider delete (#…
HouMinXi Jul 28, 2026
bf77648
fix(autoRouting): recognize auto/\<family\> combos in classifyAutoMod…
rafaeldrincon Jul 28, 2026
fff11cb
fix(adobe-firefly): default gpt-image detailLevel to maximal (5) (#8863)
artickc Jul 28, 2026
43625ec
chore(changelog): aggregate the tail of v3.8.49 (6 fragments, 5 PRs c…
diegosouzapw Jul 28, 2026
66997a6
fix(logs): avoid giant provider pills for failed auto family requests…
rafaeldrincon Jul 28, 2026
9c904dd
chore(changelog): aggregate #8867 and credit @rafaeldrincon
diegosouzapw Jul 28, 2026
f118f69
chore(changelog): v3.8.49 reconciliation β€” 200 missing bullets + 22 r…
diegosouzapw Jul 28, 2026
1b11c96
chore(quality): v3.8.49 pre-flight β€” clear 4 base-reds, absorb cycle …
diegosouzapw Jul 28, 2026
4b32a2c
test(codex): align the Responses HTTP e2e to the #8507 input-item con…
diegosouzapw Jul 28, 2026
99279b0
docs(release): v3.8.49 feature-documentation sync
diegosouzapw Jul 28, 2026
ff9d39d
chore(release): back-merge main into release/v3.8.49
diegosouzapw Jul 28, 2026
e5eefca
chore(release): v3.8.49 β€” clear the release-PR CI in one pass
diegosouzapw Jul 28, 2026
e4484b5
chore(quality): close the last two release-PR reds
diegosouzapw Jul 28, 2026
a899236
test(db): reword the driverFactory skip comment so the gate stops cou…
diegosouzapw Jul 28, 2026
f9fbb54
fix(dashboard): unbreak the vitest:ui gate β€” 2 real production bugs +…
diegosouzapw Jul 29, 2026
0ffc08b
test(e2e): repair the four shards the first green Build finally exerc…
diegosouzapw Jul 29, 2026
1932c59
fix(dashboard): stop the /home quick-start cards from prefetching too
diegosouzapw Jul 29, 2026
930018f
refactor(dashboard): shrink HomePageClient back under the size gate
diegosouzapw Jul 29, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@

---

## [3.8.49] β€” TBD

---

## [3.8.48] β€” 2026-07-13

> ⚠️ **Hotfix release.** The published npm package for 3.8.47 crashed on every boot ([#7065](https://github.com/diegosouzapw/OmniRoute/issues/7065)) and was deprecated β€” **3.8.48 is the first installable release of the v3.8.47 cycle**, so everything listed under [3.8.47] below ships here.
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- **feat(ws):** the live-dashboard WebSocket server now auto-starts in-process (via `instrumentation-node.ts`) across every deployment mode β€” dev, production, Docker, Electron β€” with no separate sidecar script; the default WS port moved from 20129 to **20132** to avoid colliding with `API_PORT` in split-port setups, the deprecated `OMNIROUTE_DISABLE_LIVE_WS` env was consolidated into `OMNIROUTE_ENABLE_LIVE_WS` (default enabled), and the WS path is now derived from `NEXT_PUBLIC_LIVE_WS_PUBLIC_URL`'s pathname (`/live-ws` fallback) (#6072 β€” thanks @ianriizky).
1 change: 1 addition & 0 deletions changelog.d/features/6556-omniglyph-engine.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- **feat(compression):** new **omniglyph** engine (context-as-image) β€” renders system prompt, tool docs, and dense history as compact PNG pages the model reads instead of text (~10Γ— fewer tokens on the converted block; 59–70% end-to-end measured). Works stacked with RTK/Caveman (`stackPriority: 90`) or standalone (`mode: omniglyph`); restricted to Claude Fable 5 over the direct Anthropic route, fail-closed gates with `skip:<reason>` techniques, preview (`stable: false`, off by default) (#6556). Dependency bumped to `omniglyph@^1.0.2` for upstream ReDoS fixes (#6661).
1 change: 1 addition & 0 deletions changelog.d/features/6611-native-container-runtimes.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- **feat(sandbox):** the skill sandbox gained a container-provider abstraction that auto-detects and uses the best native runtime per host β€” Apple Container (macOS 26+), WSL container (`wslc.exe`), OrbStack, Podman β€” instead of hardcoding `docker run`, removing the Docker Desktop requirement on macOS/Windows (#6611 β€” thanks @KooshaPari).
1 change: 1 addition & 0 deletions changelog.d/features/6708-gemma4-thinkingconfig-guard.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- **fix(sse):** skip `thinkingConfig` for Gemma models on the OpenAI→Gemini path so OpenAI-shape clients no longer get a 400 from Vertex. (thanks @chy1211)
1 change: 1 addition & 0 deletions changelog.d/features/6709-xai-responses-endpoint.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- **feat(xai):** route xAI clients to Grok's native `/v1/responses` endpoint instead of the chat-completions bridge. (thanks @ryanngit)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- **feat(models):** add a Settings β†’ AI "Model Overrides" UI plus `/api/model-capability-overrides` CRUD and a `model_capability_overrides` table, letting operators set a manual max-output-token override per provider/model (#6727 β€” thanks @xz-dev).
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- **feat(resilience):** operator-configurable account rotation policy β€” a new `rotationConfig` layer lets operators tune how connections rotate on failure, wired into `accountFallback` (#6763 β€” thanks @artickc).
1 change: 1 addition & 0 deletions changelog.d/features/6774-cursor-grok-4-5-effort-fast.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- **chore(cursor): add Grok 4.5 effort/fast model IDs** (#6774 β€” thanks @andrewmunsell).
1 change: 1 addition & 0 deletions changelog.d/features/6776-discover-live-codex-models.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- **feat(codex):** Codex provider model discovery now fetches the live catalog from `chatgpt.com/backend-api/codex/models` using Codex-shaped headers, falling back to a GitHub-hosted model manifest and then to the local static catalog when the live/GitHub sources are unavailable or return an unexpected shape β€” new `src/app/api/providers/[id]/models/discovery/codex.ts` (normalization, version-gating, merge/enrich against the local catalog) covered by `tests/unit/provider-models-discovery-split.test.ts` and `tests/unit/provider-models-route-codex.test.ts` (#6776 β€” thanks @JxnLexn).
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- **feat(cursor):** register the Opus 4.8, Fable 5, and Sonnet 5 model families for the Cursor Agent provider so the latest Claude/Fable model ids route correctly (#6779 β€” thanks @andrewmunsell).
1 change: 1 addition & 0 deletions changelog.d/features/6783-changelog-fragments.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- **Changelog fragments (`changelog.d/`)**: PRs now add their changelog entry as a new fragment file (`changelog.d/{features|fixes|maintenance}/<PR>-<slug>.md`) instead of editing `CHANGELOG.md` β€” two PRs never touch the same file, structurally eliminating the CHANGELOG-eat merge conflicts that forced a re-sync push + full CI re-run after every sibling merge (O(NΒ²) CI runs in a merge-storm). `scripts/release/aggregate-changelog.mjs` (npm run changelog:aggregate) folds fragments into the living section at release reconciliation, and `check:changelog-integrity` now also validates fragment well-formedness. Regression guard: `tests/unit/changelog-fragments.test.ts`.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- **feat(proxy):** add a latency-optimized proxy rotation strategy that ranks pool entries by measured round-trip latency, extending the existing round-robin/random/sticky proxy-pool selection (#6798 β€” thanks @iamraydoan).
1 change: 1 addition & 0 deletions changelog.d/features/6804-fusion-judge-own-knowledge.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- **feat(fusion):** the fusion judge may now draw on its own knowledge and override the panel when every panel answer is wrong or incomplete, instead of being restricted to synthesizing only from panel output (#6804 β€” thanks @chirag127).
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- **feat(dashboard):** search box on the Playground's raw model `<select>` (#4086) β€” the shared `ModelSelectModal` (combo builder + CLI-code cards) already had search, but Playground's `StudioConfigPane` model dropdown stayed a flat unsearchable list, unusable once a provider like OpenRouter contributed 50+ models. Typing now filters the dropdown (Turkish-safe accent/case-insensitive match via `matchesSearch`), while the currently selected model always stays pinned in the list even if it no longer matches the query, so typing never silently swaps the active selection. Reuses the existing `common.search` i18n key (already translated in all 42 locales) β€” no new translation key needed. Regression guard: `tests/unit/playground-model-selection-3731.test.ts` (`filterModelsByQuery`), `tests/unit/ui/playground-model-search-4086.test.tsx`.
1 change: 1 addition & 0 deletions changelog.d/features/6818-antigravity-weekly-quota.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- **feat(usage):** Antigravity/agy quota widget now surfaces the **weekly** window alongside the existing per-model 5-hour window ([#4017](https://github.com/diegosouzapw/OmniRoute/issues/4017)) β€” the weekly limit isn't part of the per-model `retrieveUserQuota` response the fetcher already calls; it only appears in a separate, undocumented `retrieveUserQuotaSummary` RPC that groups models into families ("Gemini Models", "Claude and GPT models") with one weekly bucket per family. A new `usage/antigravityWeeklyQuota.ts` leaf fetches that RPC (cached, best-effort β€” a failure or unavailable RPC never breaks the existing per-model quotas) and parses the weekly bucket per group into `gemini_weekly`/`claude_gpt_weekly` quota entries, merged into the same `quotas` map the widget already renders generically. Regression guard: `tests/unit/antigravity-weekly-quota-4017.test.ts` (bucket parsing, the alternate `quotaSummary`-nested envelope, and end-to-end merge via `getUsageForProvider`).
1 change: 1 addition & 0 deletions changelog.d/features/6820-codex-effort-model-echo.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- **feat(codex):** Codex CLI compatibility shim β€” the Responses API `response.created`/`response.in_progress`/`response.completed` payloads now carry a `model` field (previously absent), and for Codex-CLI-originated requests it echoes the client-requested, effort-suffixed model id (e.g. `gpt-5.5-xhigh`) instead of the bare upstream id (`gpt-5.5`), so the Codex CLI status line/model button shows the active reasoning effort ([#3697](https://github.com/diegosouzapw/OmniRoute/issues/3697)). `openaiToOpenAIResponsesResponse` (`open-sse/translator/response/openai-responses.ts`) now threads the upstream model into the Responses event objects; a new `isCodexOriginatedHeaders()` (`open-sse/config/codexIdentity.ts`, reusing PR #3481's `originator`/User-Agent detection) makes chatCore's existing opt-in `echoRequestedModelName` (#1311) model-echo pipeline fire automatically for Codex clients regardless of the setting, detected by request headers so it still applies when `codex/gpt-5.5-xhigh` is routed through a combo to a non-codex upstream; `echoModelInObject`/`echoModelInSseLine` (`open-sse/services/responseModelEcho.ts`) now also rewrite the nested `response.model` field the Responses API uses. `/v1/models` still returns `models: []` for Codex (unchanged). Regression guard: `tests/unit/codex-effort-model-echo-3697.test.ts`.
1 change: 1 addition & 0 deletions changelog.d/features/6823-zai-web-cookie-provider.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- **Z.ai Web (free web-session provider)**: new `zai-web` web-cookie provider drives the free chat.z.ai consumer chat UI via a pasted browser session cookie, distinct from the existing API-key `zai`/`glm`/`glm-cn`/`glmt` providers (`api.z.ai`) β€” modeled on the `doubao-web`/`venice-web` cookie executors and the pre-existing `chatglm-web` credential requirement/token-extraction entries. `ZaiWebExecutor` (`open-sse/executors/zai-web.ts`) posts to `chat.z.ai/api/chat/completions` with the cookie forwarded both as `Cookie` and as `Authorization: Bearer <token>`, and normalizes both z.ai's internal `delta_content`/`phase` SSE envelope and a pass-through OpenAI-shaped `choices[].delta` frame into standard chat-completion chunks. Registered in `WEB_COOKIE_PROVIDERS`, `WEB_SESSION_CREDENTIAL_REQUIREMENTS`, the provider registry (`zai-web` entry, GLM-4.6/4.5/4.5V models), and `tokenExtractionConfig.ts` for in-app cookie capture. Regression guard: `tests/unit/executor-zai-web.test.ts` (16 tests β€” token extraction, frame parsing for both SSE shapes, streaming and non-streaming aggregation, error paths). (#4056)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- **feat(compression):** update the vendored **GCF** codec behind the **Headroom** engine to spec **v3.2 (nested flattening)** ([#6837](https://github.com/diegosouzapw/OmniRoute/issues/6837)). Homogeneous arrays whose rows carry nested objects/arrays now tabularize via `>`-prefixed path fields instead of a low-yield per-row fallback, so nested MCP tool-result rows (`meta:{...}`, `tags:[...]`) compact like flat rows. On representative shapes the update takes deeply-nested payloads the old codec left near-uncompressed from ~3% to ~32% vs JSON (k8s pods, `cl100k_base`), with shallow-nested rows seeing a small bump and flat arrays unchanged. Re-vendored from current gcf-typescript (zero runtime deps, MIT, SPDX-marked, generic-profile only); also folds in the `[N]:` inline-array quoting fix and canonical decimal formatting. Round-trip stays lossless (order-insensitive), and the decoder is hardened against prototype pollution (a `__proto__`/`constructor` path segment never mutates `Object.prototype`, and keys shadowing built-ins like `toString` now round-trip correctly instead of misparsing). Regression guard: `tests/unit/compression/headroom-smartcrusher.test.ts` (deep-nested + prototype-pollution cases).
2 changes: 2 additions & 0 deletions changelog.d/features/6862-gpt-5-6-providers.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
- **feat(providers):** Add GPT-5.6 support across OpenAI API, Codex, and ChatGPT Web, including Codex Max/Ultra efforts, VS Code metadata, Fast-tier credit accounting, curated live discovery, the Codex 0.144.1 client identity, and correct chat routing for models that also support image generation ([#6862](https://github.com/diegosouzapw/OmniRoute/pull/6862)) - thanks @backryun
- **chore(providers):** Align emitted Claude Code identity headers, bridge fingerprints, provider profiles, and documented defaults with claude-cli 2.1.207 ([#6862](https://github.com/diegosouzapw/OmniRoute/pull/6862)) - thanks @backryun
1 change: 1 addition & 0 deletions changelog.d/fixes/6142-6142-devin-unified-api.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- fix(providers): wire the Devin cloud-agent provider into the generic provider-page validator and static model catalog, matching the existing `jules` cloud-agent pattern (#6142)
1 change: 1 addition & 0 deletions changelog.d/fixes/6272-6272-mimo-proxy.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- fix(providers): honor a provider-level proxy assigned to no-auth providers like MiMoCode Free (#6272)
1 change: 1 addition & 0 deletions changelog.d/fixes/6276-toolcall-args-logs.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- fix(api): merge tool_call continuation deltas that carry only `id` (no `index`) so tool-call arguments are no longer split/lost in request/response logs (#6276)
1 change: 1 addition & 0 deletions changelog.d/fixes/6280-lmarena-arena-modernize.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- **fix(providers):** modernize the `lmarena` provider for the Arena.ai rebrand β€” route chat through `arena.ai` create-evaluation with Chrome TLS impersonation, seed a static Direct-chat Text/Search + Image catalog, and keep the `lmarena`/`lma` wire id for back-compat ([#6280](https://github.com/diegosouzapw/OmniRoute/pull/6280)) β€” thanks @backryun
1 change: 1 addition & 0 deletions changelog.d/fixes/6308-web-model-discovery.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- **fix(providers):** web-provider model discovery updated β€” qwen-web uses the slash-terminated models endpoint (avoiding a blocked 307 redirect), and kimi-web matches the current request shape (POST with bearer + `kimi-auth` cookie replay) with its catalog refreshed to the current non-agent models (#6308 β€” thanks @janeza2).
1 change: 1 addition & 0 deletions changelog.d/fixes/6323-log-detail-stale-reopen.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- **fix(logs):** the request-log detail modal no longer reopens by itself after being closed β€” a stale in-flight detail refresh resolved after close and re-triggered the modal open state (#6323 β€” thanks @xz-dev).
1 change: 1 addition & 0 deletions changelog.d/fixes/6330-sensenova-token-plan.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- **fix(providers):** update SenseNova Token Plan support β€” register the token-plan model ids/constants and adjust the SenseNova registry so token-plan accounts route correctly (#6330 β€” thanks @xz-dev).
1 change: 1 addition & 0 deletions changelog.d/fixes/6343-6343-v0web-creds.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- fix(providers): give v0-vercel-web its own alias so its credentials are detected (#6343)
1 change: 1 addition & 0 deletions changelog.d/fixes/6377-6377-agentrouter-key.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- fix(providers): route AgentRouter key validation through the CC wire image so a valid key no longer 403s as "Invalid API key" (#6377)
1 change: 1 addition & 0 deletions changelog.d/fixes/6401-6401-usage-migrations.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- fix(db): stop legacy log-archive migration from deleting the live app-logger directory and crashing startup on a stat/stream race (#6401, #6799)
1 change: 1 addition & 0 deletions changelog.d/fixes/6409-6409-build-ram.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- fix(docs): document Turbopack build memory tradeoff and `OMNIROUTE_USE_TURBOPACK=0` webpack fallback for RAM-constrained machines (#6409)
1 change: 1 addition & 0 deletions changelog.d/fixes/6479-6479-compression-pipeline.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- fix(compression): surface silently-dropped stacked-pipeline steps (session-dedup, ccr) and stop the aggregate inflation guard from misfiring on a genuine no-op (#6479, #6480, #6491)
1 change: 1 addition & 0 deletions changelog.d/fixes/6524-6524-reasoning-buffer-clamp.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- fix(providers): honor the `max_token` capability override in the reasoning-token-buffer output cap (#6524)
1 change: 1 addition & 0 deletions changelog.d/fixes/6538-tier-flow-svg-public.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- **fix(dashboard):** the onboarding tier-flow diagram rendered broken β€” its SVGs lived in the repo-root `images/` (not a served path); moved to `public/images/` so Next.js serves them (#6538 β€” thanks @ianriizky).
1 change: 1 addition & 0 deletions changelog.d/fixes/6557-6557-disabled-provider.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- **fix(routing):** the `auto` combo's no-auth candidate pool now honors a disabled provider connection's own `isActive=false` (the toggle on the main Providers grid card), not just the separate global `blockedProviders` setting β€” disabling opencode/mimocode/etc. via the grid toggle no longer leaves it in rotation ([#6557](https://github.com/diegosouzapw/OmniRoute/issues/6557)).
1 change: 1 addition & 0 deletions changelog.d/fixes/6586-preserve-server-tool-names.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- **fix(sse):** server-tool literal names (e.g. `web_search`) are preserved in message history and `tool_choice` instead of being namespaced/rewritten, so follow-up turns referencing those tools keep working (#6586 β€” thanks @MikeTuev).
1 change: 1 addition & 0 deletions changelog.d/fixes/6623-6623-mimo-502-messages.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- fix(api): recognize OpenRouter reasoning/reasoning_details in non-streaming OpenAI-to-Claude conversion (#6623)
2 changes: 2 additions & 0 deletions changelog.d/fixes/6628-6628-sqljs-adapter.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
- fix(db): share one in-flight sql.js load across concurrent `preInitSqlJs()` callers to stop the boot-time thundering-herd re-decode of the whole database file (#6628)
- fix(db): unwrap lone named-parameter objects before `sql.js` `stmt.bind()` so `@`/`:`/`$`-style named placeholders bind correctly instead of throwing "Wrong API use" (#6802)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- **fix(db): break probe-failed/restore loop on large storage.sqlite** (#6632 β€” thanks @KooshaPari).
1 change: 1 addition & 0 deletions changelog.d/fixes/6634-6634-testmasking-selfref.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- fix(ci): exclude check-test-masking.test.ts's own tautology fixtures from the diff-based test-masking gate and recognize `βœ—` in validate-release-green's failure-line detector (#6634)
1 change: 1 addition & 0 deletions changelog.d/fixes/6637-6637-combo-kimi-fallback.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- fix(routing): recognize Kimi-style "exceeded model token limit" 400 as context overflow so combo fallback continues to the next target (#6637)
1 change: 1 addition & 0 deletions changelog.d/fixes/6647-winget-claude-detect.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- **fix(cli):** Claude Code installed via WinGet is now detected on Windows (the WinGet install path was missing from the binary lookup) (#6647 β€” thanks @enjoyer-hub).
1 change: 1 addition & 0 deletions changelog.d/fixes/6675-remove-obsolete-providers.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- **fix(providers):** removed obsolete/defunct providers from the catalog (glhf, kluster, cablyai, inclusionai) (#6675 β€” thanks @backryun).
1 change: 1 addition & 0 deletions changelog.d/fixes/6698-count-gate-rejected-usage.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- **fix(sse):** requests rejected before `handleChatCore` (circuit-breaker/cooldown gate or combo with all targets exhausted) are now recorded in `usage_history` too, so a key whose traffic was entirely gate-rejected no longer shows "zero requests" in the per-API-key usage counter (#6698).
1 change: 1 addition & 0 deletions changelog.d/fixes/6704-unwrap-bare-function-tool.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- **fix(sse):** unwrap bare `{function:{…}}` tools so OpenAI-shape clients no longer have tools silently dropped in Claude translation. (thanks @samir-abis)
1 change: 1 addition & 0 deletions changelog.d/fixes/6706-codex-oauth-bare-email-dedup.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- **fix(oauth):** stop merging distinct Codex OAuth logins that share an email but lack a verifiable account id, preventing silent token overwrite. (thanks @lucasjustinudin)
1 change: 1 addition & 0 deletions changelog.d/fixes/6710-codex-200-sse-capacity-error.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- **fix(codex):** detect "model at capacity"/overloaded errors embedded in a 200-OK SSE stream and surface them as a real error so account fallback rotates, instead of passing them through as a successful response. (thanks @ryanngit)
1 change: 1 addition & 0 deletions changelog.d/fixes/6712-volcengine-kimi-max-tokens.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- **fix(volcengine):** clamp `max_tokens` to the VolcEngine Ark endpoint cap for the Kimi model so oversized values no longer 400. (thanks @whale9820)
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- **fix(antigravity):** surface aborted/malformed Gemini tool calls (e.g. `MALFORMED_FUNCTION_CALL`) as an explicit non-`end_turn` finish reason instead of a silent clean completion. (thanks @anhdiepmmk)
1 change: 1 addition & 0 deletions changelog.d/fixes/6714-reasoning-buffer-cap-aware.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- **fix(routing):** the reasoning-token headroom buffer clamps to the model's explicit output cap instead of inflating past it, and `getExplicitModelOutputCap` falls through to the registry/spec cap when a synced capability row exists without a numeric `limit_output` ([#6714](https://github.com/diegosouzapw/OmniRoute/pull/6714)) β€” thanks @xz-dev
1 change: 1 addition & 0 deletions changelog.d/fixes/6717-cli-health-monitoring-route.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- **fix(api):** `omniroute health` (and `health components`/`health watch`) returned `Error: HTTP 404` ([#6677](https://github.com/diegosouzapw/OmniRoute/issues/6677)) β€” `bin/cli/commands/health.mjs` called `apiFetch("/api/health", ...)`, a route that was moved to `GET /api/monitoring/health` (`src/app/api/monitoring/health/route.ts`) without updating the CLI; `src/app/api/health/` on disk only has `degradation/route.ts` and `ping/route.ts`, no top-level handler. `runHealthCommand()`/`runHealthComponentsCommand()` now call `/api/monitoring/health` and read its actual payload shape (`activeConnections`, `circuitBreakers: {open, halfOpen, closed}`, `memoryUsage`) instead of the old, nonexistent `requests`/`breakers`/`cache`/`memory` fields. Regression guard: `tests/unit/cli-health-monitoring-route.test.ts`.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- **fix(startup):** webpack build broke on case-insensitive filesystems (macOS APFS default, Windows) with a casing-collision warning plus "not exported" errors in `StudioConfigPane.tsx`/`ChatTab.tsx` (#6584) β€” `src/app/(dashboard)/dashboard/playground/components/ReasoningControls.tsx` (the component) and `reasoningControls.ts` (the utils module) shared the same lower-cased stem in the same directory, and two importers used the extensionless form `from "./reasoningControls"`, the exact resolution path that becomes ambiguous once casing is folded. Renamed the utils module to `reasoningControlUtils.ts` (no collision) and updated the 3 import sites. Regression guard: `tests/unit/case-collision-6584.test.ts` (scans `src/`/`open-sse/` for any same-directory, case-only filename collision). (#6584)
Loading
Loading