Diego Rodrigues de Sa e Souza
ceff7054b1
fix(security): unbiased crypto digits for the doubao synthetic device id (CodeQL js/biased-cryptographic-random)
...
randomNumericId builds a non-secret synthetic device/web id. The v3.8.45 switch
to crypto.getRandomValues closed js/insecure-randomness but 'cryptoByte % 10' is
biased (256 is not a multiple of 10), tripping js/biased-cryptographic-random.
Draw each digit by rejection sampling — discard bytes in the biased tail so the
remaining range divides evenly — giving a uniform distribution (verified) while
staying crypto-backed.
2026-07-07 07:42:12 -03:00
Diego Rodrigues de Sa e Souza
a533a312df
fix(agentSkills): generator honors an absolute outputDir ( #6366 regression)
...
#6366 switched the output base from path.resolve to path.join(process.cwd(),
outputDir) to keep Turbopack's static analyzer from tracing the project root.
path.join mangles an absolute outputDir (a tmp dir in the generator tests) into
cwd/tmp/…, so apply mode reported success while writing nothing at the expected
path. Guard with path.isAbsolute — absolute paths pass through, the relative
production case ('skills') keeps the Turbopack-friendly join form. The existing
agentSkills-generator suite is the regression guard (now 21/21).
2026-07-07 07:41:53 -03:00
Diego Rodrigues de Sa e Souza
d776a42324
fix(api): invalidate /v1/models + specialty catalogs on DB writes; fix duplicated headers and 500 replayed as 200 ( #6408 )
...
The #6408 request-shape-keyed TTL cache around getUnifiedModelsResponse was not
keyed by DB/settings state, so a write followed by a read within the ~1.5s TTL
replayed the pre-write catalog (dropping newly-eligible models like codex/gpt-5.5
and every specialty catalog routed through it since #6303 ). Fold a
modelCatalogCacheVersion (bumped by invalidateDbCache, already called on every
settings/connection/combo/pricing write) into the cache so a state change forces
an immediate miss; merge response headers through a real Headers instance
(fixes X-Request-Id duplication); carry and replay status end-to-end (a mid-build
500 was replayed as 200). Tests call the existing __resetCatalogBuilderRunsForTest
hook in setup, matching v1-models-concurrent-6408.
2026-07-07 07:41:20 -03:00
Diego Rodrigues de Sa e Souza
4f294c0cca
feat(sse): exclude paid-only models from auto/* candidate pool when hidePaidModels is on ( #6512 ) ( #6518 )
...
Exclude paid-only models from the auto/* candidate pool when hidePaidModels is on (#6512 ). Integrated into release/v3.8.46; fixed a phantom vitest guard, 4/4 green.
2026-07-07 01:02:35 -03:00
Diego Rodrigues de Sa e Souza
0d3d31c21f
feat(sse): provider-family auto combos auto/glm, auto/minimax, auto/zai, auto/mimo, auto/gemma, auto/llama, auto/gemini ( #6453 ) ( #6509 )
...
Provider-family auto combos (#6453 ). Integrated into release/v3.8.46; vitest autoCombo suite 11/11 green.
2026-07-07 01:00:12 -03:00
Dilnei
526048da5e
fix(ui): prevent silent overwrite of existing API key connections on re-add ( #6499 )
...
Unique default connection name prevents silent overwrite of existing API-key connections. Integrated into release/v3.8.46 with a unit-tested helper; remaining file-size reds are pre-existing base-red drift.
2026-07-06 23:59:01 -03:00
Chirag Singhal
9a33cdac1d
fix(compression): add intra-message dedup to session-dedup engine ( #6467 ) ( #6501 )
...
Intra-message dedup for the session-dedup compression engine (#6467 ) + fallbackReason surfacing + fusion rate-limit detail. Integrated into release/v3.8.46 with a TDD regression.
2026-07-06 23:53:52 -03:00
Chirag Singhal
c3cef782ac
fix(compression): unknown engine names surface validationErrors instead of silently falling back ( #6485 ) ( #6506 )
...
Surface validationErrors for unknown stacked compression engines. Integrated into release/v3.8.46 with a TDD regression.
2026-07-06 23:51:01 -03:00
Jan Leon
958260a5c9
Add Codex reset-credit redemption flow ( #6361 )
...
Codex reset-credit redemption flow (#6361 ). Tests 56/56; kept release 'Banked Reset Credits' label (reverted cosmetic rename that broke 2 release tests). Integrated into release/v3.8.46.
2026-07-06 21:50:27 -03:00
hao3039032
f6b4926138
feat(glm): add team plan quota settings for glm-cn connections ( #6351 )
...
add GLM team plan quota settings (#6351 ). Tests 29/29; reconciled FormData with m365Tier; modal caps bumped for own growth. Integrated into release/v3.8.46.
2026-07-06 21:35:04 -03:00
Aditya Banerjee
e45e6c3e34
feat: add TinyFish Fetch support to web-fetch provider and update related documentation ( #6349 )
...
add TinyFish web-fetch/search provider + tool (#6349 ). Tests green (tinyfish suites + count-guard 170->171). Integrated into release/v3.8.46.
2026-07-06 21:32:15 -03:00
Swing Tempo
69d2b31930
Swingtempo/fixwindowscodex ( #6312 )
...
launch-codex spawns codex.cmd via shell on Windows (#6263 pattern). Added resolveCodexSpawn() helper + regression test (2/2), satisfying Hard Rule #18 . Integrated into release/v3.8.46.
2026-07-06 21:20:52 -03:00
Xiangzhe
95708051a2
fix(codex): isolate Spark quota and stabilize quota UI ( #6336 )
...
isolate Spark quota + stabilize quota UI (#6336 ). Tests 44/44, no file-size drift from its files. Integrated into release/v3.8.46.
2026-07-06 21:18:58 -03:00
Chirag Singhal
b681308259
feat(api): add hidePaidModels setting to filter paid-only models from /v1/models catalog ( #6495 )
...
feat(api): add hidePaidModels setting (net +1/-0, test OK). Integrated into release/v3.8.46.
2026-07-06 21:17:29 -03:00
jmengit
17da3b6e09
fix(api-manager): preserve combos in model fallback ( #6443 )
...
fix(api-manager): preserve combos in fallback model picker (net +1/-0, test OK). Integrated into release/v3.8.46.
2026-07-06 21:16:56 -03:00
Jillur Rahman
27867e5af3
fix(providers): treat recoverable Antigravity/Cloud-Code 403s as project errors, not account bans ( #6452 )
...
fix(providers): treat recoverable Antigravity/CF 403 as retryable (net +1/-0, test OK). Integrated into release/v3.8.46.
2026-07-06 21:16:39 -03:00
Jillur Rahman
62a74faa4b
fix(mitm): redact Set-Cookie in sanitizeHeaders to prevent session-token leak ( #6451 )
...
fix(mitm): redact Set-Cookie in sanitizeHeaders (net +1/-0, test OK). Integrated into release/v3.8.46.
2026-07-06 21:16:16 -03:00
Chirag Singhal
a03c22e5ed
fix(api): accept mode:'caveman' + stacked default pipeline yields 0% ( #6425 ) ( #6439 )
...
fix(api): /api/compression/preview accepts mode caveman + stacked-zero (#6425 ) (net +1/-0, test OK). Integrated into release/v3.8.46.
2026-07-06 21:12:58 -03:00
Diego Rodrigues de Sa e Souza
04335944ea
feat(providers): add Zed hosted LLM aggregator (native-app sign-in) — NEEDS LIVE OAUTH VALIDATION ( #6118 )
...
add Zed hosted LLM aggregator native-app provider (port PR #2328 ). VPS-validated live by operator (Hard Rule #18 ); zed suites 15/15. OAuthModal cap 989->993 (own growth). Remaining file-size reds are pre-existing release base-red drift (rebaselined at release Phase 0). Integrated into release/v3.8.46.
2026-07-06 20:43:11 -03:00
Diego Rodrigues de Sa e Souza
3cc48edb35
fix(oauth): preserve Kiro IDC region in SSO-cache auto-import ( #6113 )
...
preserve Kiro IDC region in SSO-cache auto-import (port PR #2314 ). VPS-validated live by operator (Hard Rule #18 ); kiro-auto-import-idc 9/9. Integrated into release/v3.8.46.
2026-07-06 20:39:06 -03:00
Diego Rodrigues de Sa e Souza
58f53e3a35
feat(proxy): native proxy-pool round-robin / egress IP rotation ( #6365 ) ( #6395 )
...
native proxy-pool round-robin / egress IP rotation (#6365 ) (net +1/-0, tests OK). Integrated into release/v3.8.46.
2026-07-06 19:31:44 -03:00
Diego Rodrigues de Sa e Souza
18fa0b2651
feat(providers): Gemini tool-calling end-to-end on /v1beta ( #6222 ) ( #6394 )
...
Gemini tool-calling end-to-end on /v1beta (#6222 ) (net +1/-0, tests OK). Integrated into release/v3.8.46.
2026-07-06 19:31:12 -03:00
Diego Rodrigues de Sa e Souza
f5147d00f9
feat(providers): copilot-m365-web enterprise (work) tier support ( #6334 ) ( #6392 )
...
copilot-m365-web enterprise (work) tier support (#6334 ) (net +1/-0, tests OK). Integrated into release/v3.8.46.
2026-07-06 19:30:56 -03:00
Diego Rodrigues de Sa e Souza
62b1bc9d05
feat(api): standardize effort + thinking request params ( #6241 ) ( #6398 )
...
standardize effort + thinking request params (#6241 ) (net +1/-0, tests OK). Integrated into release/v3.8.46.
2026-07-06 19:30:40 -03:00
Diego Rodrigues de Sa e Souza
8db5a665d6
feat(combo): sequential 'pipeline' combo strategy ( #6297 ) ( #6396 )
...
sequential 'pipeline' combo strategy (#6297 ) (net +1/-0, tests OK). Integrated into release/v3.8.46.
2026-07-06 19:29:59 -03:00
Diego Rodrigues de Sa e Souza
ecf3d3aa06
feat(ci): check:test-masking flags inline-reimplemented prod conditions ( #6348 ) ( #6393 )
...
check:test-masking flags inline-reimplemented prod (#6348 ) (net +1/-0, tests OK). Integrated into release/v3.8.46.
2026-07-06 19:29:29 -03:00
Diego Rodrigues de Sa e Souza
c7c7d476a3
feat(sse): per-connection routing override (native vs CLIProxyAPI) ( #6339 ) ( #6383 )
...
per-connection routing override native vs CLIProxy (#6339 ) (net +1/-0, tests OK). Integrated into release/v3.8.46.
2026-07-06 19:29:13 -03:00
Diego Rodrigues de Sa e Souza
b7ac5261a5
feat(dashboard): 'Open <host>' link in Add session cookie modal ( #6268 ) ( #6391 )
...
'Open <host>' link in Add session cookie modal (#6268 ) (net +1/-0, tests OK). Integrated into release/v3.8.46.
2026-07-06 19:28:39 -03:00
Diego Rodrigues de Sa e Souza
c6a80071f1
feat(providers): add DigitalOcean AI as an OpenAI-compatible provider ( #6373 )
...
add DigitalOcean AI OpenAI-compatible provider (port PR #2417 ). Resolved registry conflict with hcnsec #6410 ; count-guard 169→170. Tests green. Integrated into release/v3.8.46.
2026-07-06 19:27:51 -03:00
Diego Rodrigues de Sa e Souza
437ca488b0
feat(providers): add Huancheng Public API (hcnsec) OpenAI-compatible regional provider ( #6410 )
...
add Huancheng Public API (hcnsec) OpenAI-compatible provider (port PR #2378 ) (net +1/-0, tests OK). Integrated into release/v3.8.46.
2026-07-06 19:25:45 -03:00
Diego Rodrigues de Sa e Souza
b67f2c58da
fix(dashboard): disambiguate colliding passthrough model aliases (port from 9router#1850) ( #6431 )
...
disambiguate colliding passthrough model aliases (port #1850 ) (net +1/-0, test OK). Integrated into release/v3.8.46.
2026-07-06 19:24:59 -03:00
Diego Rodrigues de Sa e Souza
2ecaae7c40
fix(translator): preserve co-located functionResponse parts in gemini→openai ( #6376 )
...
preserve co-located functionResponse parts (port PR #2394 ) (net +1/-0, test OK). Integrated into release/v3.8.46.
2026-07-06 19:24:43 -03:00
Diego Rodrigues de Sa e Souza
259d9b0f38
fix(headroom): detect python managed by mise/pyenv/asdf/conda (port from 9router#2353) ( #6382 )
...
detect python managed by mise/pyenv/asdf/conda (port #2353 ) (net +1/-0, test OK). Integrated into release/v3.8.46.
2026-07-06 19:24:24 -03:00
Diego Rodrigues de Sa e Souza
bd65eeb045
fix(executors): strip client_metadata for NVIDIA requests (port from 9router#1887) ( #6411 )
...
strip client_metadata for NVIDIA (port #1887 ) (net +1/-0, test OK). Integrated into release/v3.8.46.
2026-07-06 19:24:08 -03:00
Diego Rodrigues de Sa e Souza
d415cc0216
fix(translator): strip thinking for NVIDIA glm-5.2 (port from 9router#2023) ( #6413 )
...
strip thinking for NVIDIA glm-5.2 (port #2023 ) (net +1/-0, test OK). Integrated into release/v3.8.46.
2026-07-06 19:23:43 -03:00
Diego Rodrigues de Sa e Souza
cfbc2c27c2
fix(translator): suppress </think> marker for Antigravity client (port from 9router#1061) ( #6415 )
...
suppress </think> marker for Antigravity (port #1061 ) (net +1/-0, test OK). Integrated into release/v3.8.46.
2026-07-06 19:23:27 -03:00
Diego Rodrigues de Sa e Souza
58bb2cd8c7
fix(executors): strip nested reasoning_content for Mistral (port from 9router#1649) ( #6417 )
...
strip nested reasoning_content for Mistral (port #1649 ) (net +1/-0, test OK). Integrated into release/v3.8.46.
2026-07-06 19:22:52 -03:00
Diego Rodrigues de Sa e Souza
4b1c1859f8
fix(executors): strip client_metadata on the OpenCode path (port from 9router#1442) ( #6418 )
...
strip client_metadata on OpenCode path (port #1442 ) (net +1/-0, test OK). Integrated into release/v3.8.46.
2026-07-06 19:22:27 -03:00
Diego Rodrigues de Sa e Souza
f0b085ebca
fix(executors): inject reasoning_content for native Kimi provider (port from 9router#1480) ( #6419 )
...
inject reasoning_content for native Kimi (port #1480 ) (net +1/-0, test OK). Integrated into release/v3.8.46.
2026-07-06 19:22:02 -03:00
Diego Rodrigues de Sa e Souza
1636ace600
fix(executors): strip client context_management on 400 (port from 9router#1468) ( #6420 )
...
recover from client context_management 400 (port #1468 ) (net +1/-0, test OK). Integrated into release/v3.8.46.
2026-07-06 19:21:38 -03:00
Diego Rodrigues de Sa e Souza
7a7a72c6f4
fix(network): enable Happy Eyeballs on direct egress (port from 9router#1237) ( #6423 )
...
Happy Eyeballs on direct egress (port #1237 ). Integrated into release/v3.8.46.
2026-07-06 19:20:53 -03:00
Diego Rodrigues de Sa e Souza
465f0a0e83
fix(combo): advance round-robin pointer past the served model (port from 9router#948) ( #6428 )
...
combo round-robin advances pointer past served model (port #948 ). Test combo-rr-fallback-advance-948 (green). Integrated into release/v3.8.46.
2026-07-06 19:18:42 -03:00
Chirag Singhal
a73c6ca5fb
fix(sse): reject non-string model with 400 before resolver ( #6407 ) ( #6433 )
...
reject non-string model with 400 before resolver (#6407 , 6/6). Reconciled with #6437 early schema validation on chat.ts. Integrated into release/v3.8.46.
2026-07-06 18:43:06 -03:00
Chirag Singhal
a7e0dddac4
fix(chat): validate scalar params before provider lookup ( #6412 ) ( #6437 )
...
JSON 404 for unknown /api/* (#6424 ) + early scalar-param validation before provider lookup (#6412 , 10/10). Integrated into release/v3.8.46.
2026-07-06 18:40:39 -03:00
Chirag Singhal
d12ac37d4d
fix(api): reject non-JSON Content-Type on /v1/chat/completions with 415 ( #6414 ) ( #6434 )
...
reject non-JSON Content-Type on /v1/chat/completions (#6414 , 4/4). Integrated into release/v3.8.46.
2026-07-06 18:39:25 -03:00
Chirag Singhal
fa3a09cb43
fix(api): echo X-OmniRoute-Compression response header ( #6422 ) ( #6441 )
...
echo X-OmniRoute-Compression header on completions routes (#6422 , 6/6). Reconciled with #6429 body.model echo. Integrated into release/v3.8.46.
2026-07-06 18:38:12 -03:00
Chirag Singhal
d11bf528af
fix(api): coalesce concurrent GET /v1/models to one builder run ( #6408 ) ( #6440 )
...
coalesce concurrent GET /v1/models (#6408 , 3/3). Integrated into release/v3.8.46.
2026-07-06 18:36:37 -03:00
Chirag Singhal
ac96c0dd02
fix(completions): echo requested body.model on /v1/completions to match x-omniroute-model header ( #6429 )
...
echo body.model on /v1/completions (5/5). Integrated into release/v3.8.46.
2026-07-06 18:35:25 -03:00
Chirag Singhal
6ea7c68e6e
fix(api): env-var master keys see full /v1/models catalog ( #6406 ) ( #6436 )
...
env-key master sees full /v1/models catalog (#6406 , 2/2). Integrated into release/v3.8.46.
2026-07-06 18:35:01 -03:00
Chirag Singhal
c8e94d7a14
fix(chatCore): align non-streaming body.model with X-OmniRoute-Model header ( #6426 ) ( #6432 )
...
align non-streaming body.model with X-OmniRoute-Model (#6426 , 3/3). Integrated into release/v3.8.46.
2026-07-06 18:33:49 -03:00