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
Chirag Singhal
a2fabdde8f
fix(api): return JSON 404 for unknown /v1/* routes ( #6405 ) ( #6435 )
...
JSON 404 for unknown /v1/* routes (#6405 ). Test tests/unit/api/v1-catchall-json-404.test.ts (3/3). Integrated into release/v3.8.46.
2026-07-06 18:32:33 -03:00
Diego Rodrigues de Sa e Souza
2f4b793c3d
fix(api): provider-models route — redirect→local-catalog fallback + custom-model merge ( #6267 , #6247 ) ( #6449 )
2026-07-06 18:17:02 -03:00
Diego Rodrigues de Sa e Souza
cd4a720b7e
fix(providers): bound GitLab Duo tool-exchange prompt to avoid 422 ( #6220 ) ( #6446 )
2026-07-06 18:16:49 -03:00
Diego Rodrigues de Sa e Souza
4a2172e569
fix(i18n): translate provider connection-status filter labels across locales ( #6290 ) ( #6448 )
2026-07-06 18:16:35 -03:00
Diego Rodrigues de Sa e Souza
53aa6d9716
fix(providers): add redacted WS debug logging to copilot-m365-web ( #6210 ) ( #6447 )
2026-07-06 18:16:22 -03:00
Diego Rodrigues de Sa e Souza
d98a31587e
fix(resilience): combo falls back to compat-rejected healthy targets before 503 ( #6238 ) ( #6450 )
2026-07-06 18:16:10 -03:00
Diego Rodrigues de Sa e Souza
f1a02f602b
fix(startup): best-effort self-heal for corrupted Turbopack dev cache on Windows ( #6289 ) ( #6445 )
2026-07-06 18:15:58 -03:00
Diego Rodrigues de Sa e Souza
c50a83a94d
fix(providers): resolve qodercli via cliRuntime on Windows ( #6263 ) ( #6389 )
2026-07-06 18:13:31 -03:00
Diego Rodrigues de Sa e Souza
76b1b04495
fix(sse): do not inflate probe-sized max_tokens in reasoning buffer ( #6274 ) ( #6388 )
2026-07-06 18:13:18 -03:00
Diego Rodrigues de Sa e Souza
e3d29d1419
fix(cli): register reset-password subcommand + non-TTY stdin path ( #6261 , #6258 ) ( #6387 )
2026-07-06 18:13:06 -03:00
Diego Rodrigues de Sa e Souza
db7a6c2437
fix(db): migration safety abort — add bypass hint + memoize to stop cascade ( #6260 ) ( #6386 )
2026-07-06 18:12:35 -03:00
Diego Rodrigues de Sa e Souza
6fff4d6df1
fix(auth): dedup Codex OAuth import by workspace AND user id ( #6301 ) ( #6385 )
2026-07-06 18:11:37 -03:00
Diego Rodrigues de Sa e Souza
f60090b278
fix(providers): venice-web static-catalog fallback for models listing ( #6269 ) ( #6384 )
2026-07-06 18:09:42 -03:00
Makcim Ivanov
0086f1772b
fix(api): filter specialty model catalogs ( #6303 )
...
Derive specialty model catalogs from the unified catalog via a shared predicate filter. Integrated into release/v3.8.46.
2026-07-06 17:44:16 -03:00
Milan Soni
49795c24ef
fix(api): dynamic import for MITM + fix Turbopack over-bundling warnings ( #6366 )
...
Dynamic MITM manager import on the agent-bridge route + Turbopack static-analyzer anchor in the skills generator (#6329 ). Integrated into release/v3.8.46.
2026-07-06 17:34:33 -03:00
jmengit
049bad494b
fix(internal): use explicit internal key selection for dashboard probes ( #6372 )
...
Internal probes pick a management-scoped key (pickApiKeyForInternalUse); API-manager model-editor fallback catalog. Integrated into release/v3.8.46.
2026-07-06 17:20:53 -03:00
jordansilly77-stack
b796f2b457
feat(providers): link web session guide to provider site ( #6316 )
...
Add an Open-provider-site link to the web-session credential guide (+host-extraction test). Integrated into release/v3.8.46.
2026-07-06 17:19:47 -03:00
Vinayak Kulkarni
fb3da7ce98
fix(live-ws): reject on bind failure instead of crashing the process ( closes #6324 ) ( #6332 )
...
LiveWS server rejects on bind failure instead of crash-looping the process (closes #6324 ). Integrated into release/v3.8.46.
2026-07-06 16:42:20 -03:00
Xiangzhe
8853b257aa
fix(dashboard): trust provider topology live state ( #6322 )
...
Trust live provider-topology state on the Home dashboard. Integrated into release/v3.8.46.
2026-07-06 16:25:05 -03:00
backryun
0785cd2e55
feat(cerebras): add Gemma 4 31B model ( #6331 )
...
Add Cerebras Gemma 4 31B model + pricing + catalog test. Integrated into release/v3.8.46.
2026-07-06 16:16:27 -03:00
Diego Rodrigues de Sa e Souza
a0ab693c4b
fix(docker): make MITM manager Turbopack stub opt-in so npm/Electron/VPS bundle the real manager ( #6344 ) ( #6374 )
...
* fix(docker): make @/mitm/manager Turbopack stub opt-in (OMNIROUTE_MITM_STUB=1) so npm/Electron/VPS builds bundle the real manager (#6344 )
v3.8.45 flipped the production bundler default to Turbopack. next.config.mjs
aliased @/mitm/manager to the Docker-only degraded stub unconditionally, which
was harmless while Docker was the only Turbopack consumer but shipped the stub
to every npm/Electron/VPS artifact once Turbopack became the default — breaking
Agent Bridge start with 'MITM manager stub reached at runtime'. The alias is now
gated on OMNIROUTE_MITM_STUB=1 (set only by the Dockerfile) via the shared
scripts/build/mitm-stub-flag.mjs helper.
Regression guard: tests/unit/mitm-stub-alias-6344.test.mjs (4).
* test(next-config): align mitm-manager alias assertion with opt-in stub (#6344 )
The existing test asserted the alias was always present; #6344 makes it opt-in
(OMNIROUTE_MITM_STUB=1). Default build now asserts no alias, plus a new env-matrix
test covering both the default (no stub) and Docker (stub) cases.
* docs(changelog): restore #6359 bullet eaten by merge auto-resolve
2026-07-06 15:20:40 -03:00
Diego Rodrigues de Sa e Souza
a69547a7f5
fix(sse): coerce tool-call function schema root type:null to "object" ( #6359 ) ( #6375 )
...
Clients like the Codex app emit parameters:{type:null,...} for some tools;
OpenAI-compatible upstreams reject with '400 Invalid schema for function ...:
schema must be a JSON Schema of type object, got type null'. toolSchemaSanitizer
already dropped the null; it now re-adds the mandatory root object type (plus
empty properties / open additionalProperties when absent). Combinator roots
(anyOf/oneOf/allOf) and explicit root types are preserved.
Regression guard: 5 new cases in tests/unit/tool-schema-sanitizer.test.mjs.
2026-07-06 14:58:21 -03:00