diegosouzapw
ab47088e8e
Merge remote-tracking branch 'origin/release/v3.8.50' into HEAD
2026-08-07 21:38:35 -03:00
Diego Rodrigues de Sa e Souza
ee0f4298ca
feat(plugins): expose client request headers in plugin context ( #9570 ) ( #9668 )
...
Merge-train validated (tip 6ce4effef8). Vitest failures confirmed as base-red (#9679 ).
2026-08-07 20:54:32 -03:00
Markus Hartung
0082ac5113
fix(openrouter): scope model failures per-model instead of poisoning the whole connection ( #9635 )
...
Merge-train validated (tip 6ce4effef8). Vitest failures confirmed as base-red (#9679 ).
2026-08-07 20:54:29 -03:00
Arnav Rastogi
e224165689
fix(providers): mint a Zed LLM token for zed-hosted model discovery ( #9628 )
...
Merge-train validated (tip 6ce4effef8). Vitest failures confirmed as base-red (#9679 ).
2026-08-07 20:54:26 -03:00
Maxim Seshuk
8da0aa5ba8
fix(standalone): don't await the WebDAV check before Next's listener ( #9580 )
...
Merge-train validated (tip 6ce4effef8). Vitest failures confirmed as base-red (#9679 ).
2026-08-07 20:54:17 -03:00
Maxim Seshuk
7a369ba6e3
feat(audio): add Soniox STT + TTS provider ( #9579 )
...
Merge-train validated (tip 6ce4effef8). Vitest failures confirmed as base-red (#9679 ).
2026-08-07 20:54:14 -03:00
backryun
e60d7f81b8
fix(types): preserve streaming PII choice keys ( #9566 )
...
Merge-train validated (tip 6ce4effef8). Vitest failures confirmed as base-red (#9679 ).
2026-08-07 20:54:11 -03:00
backryun
e62516364c
fix(types): validate Vision Bridge combo names ( #9565 )
...
Merge-train validated (tip 6ce4effef8). Vitest failures confirmed as base-red (#9679 ).
2026-08-07 20:54:08 -03:00
backryun
c4f37ab01b
fix(types): preserve sanitized tool array contracts ( #9564 )
...
Merge-train validated (tip 6ce4effef8). Vitest failures confirmed as base-red (#9679 ).
2026-08-07 20:54:05 -03:00
backryun
250ea5e849
fix(types): validate Azure OpenAI base URLs ( #9563 )
...
Merge-train validated (tip 6ce4effef8). Vitest failures confirmed as base-red (#9679 ).
2026-08-07 20:54:03 -03:00
backryun
8b4240831b
fix(types): narrow chatCore local contracts ( #9562 )
...
Merge-train validated (tip 6ce4effef8). Vitest failures confirmed as base-red (#9679 ).
2026-08-07 20:54:00 -03:00
backryun
4da8ef47c3
fix(types): align stream failure callback contracts ( #9561 )
...
Merge-train validated (tip 6ce4effef8). Vitest failures confirmed as base-red (#9679 ).
2026-08-07 20:53:57 -03:00
Shixi Li
0a1f84f83f
fix(classify): honor upstream retry windows on Gemini free-tier 429s ( #9513 )
...
Merge-train validated (tip 6ce4effef8). Vitest failures confirmed as base-red (#9679 ).
2026-08-07 20:53:54 -03:00
nguyenha935
20a4ab6f55
fix(api): stop rejecting long chat histories by default ( #9494 )
...
Merge-train validated (tip 6ce4effef8). Vitest failures confirmed as base-red (#9679 ).
2026-08-07 20:53:51 -03:00
Bob.Hou
765fd71aea
feat(lib): make MODELS_DEV_SYNC_ENABLED actually control the sync ( #9483 )
...
Merge-train validated (tip 6ce4effef8). Vitest failures confirmed as base-red (#9679 ).
2026-08-07 20:53:47 -03:00
Bob.Hou
29d97ac328
fix(sse): take the Antigravity output ceiling from the model, not a constant ( #9482 )
...
Merge-train validated (tip 6ce4effef8). Vitest failures confirmed as base-red (#9679 ).
2026-08-07 20:53:44 -03:00
Poid-ZA
d22839626b
chore(db): raise sqlite cache_size/mmap_size defaults ( #9467 )
...
Merge-train validated (tip 6ce4effef8). Vitest failures confirmed as base-red (#9679 ).
2026-08-07 20:53:38 -03:00
小妍儿 ✨
6aa9d90067
fix(ui): preserve request log position ( #9452 )
...
Merge-train validated (tip 6ce4effef8). Vitest failures confirmed as base-red (#9679 ).
2026-08-07 20:53:24 -03:00
Bob.Hou
217ac4c829
feat(warmup): proactive Claude warmup scheduler ( #8848 ) ( #9449 )
...
Merge-train validated (tip 6ce4effef8). Vitest failures confirmed as base-red (#9679 ).
2026-08-07 20:53:21 -03:00
Diego Rodrigues de Sa e Souza
2f5df569b5
feat(api): add plugins marketplace install API ( #6752 ) ( #9445 )
...
Merge-train validated (tip 6ce4effef8). Vitest failures confirmed as base-red (#9679 ).
2026-08-07 20:53:18 -03:00
Diego Rodrigues de Sa e Souza
348102a114
feat(api): add response content encoding verification ( #6736 ) ( #9444 )
...
Merge-train validated (tip 6ce4effef8). Vitest failures confirmed as base-red (#9679 ).
2026-08-07 20:53:15 -03:00
Wahyu Hidayatulloh Pamungkas
e6bf92ad65
fix(usage): stop double-counting cache-read tokens in Command Code executor ( #9438 )
...
Merge-train validated (tip 6ce4effef8). Vitest failures confirmed as base-red (#9679 ).
2026-08-07 20:53:12 -03:00
Pixma
99be4474b6
fix(providers): correct Codex GPT-5.6 context limits ( #9432 )
...
Merge-train validated (tip 6ce4effef8). Vitest failures confirmed as base-red (#9679 ).
2026-08-07 20:53:08 -03:00
Diego Rodrigues de Sa e Souza
babc75f058
feat(chatgpt-web): harden prompt-emulated tool contract for thinking models ( #7679 ) ( #9422 )
...
Merge-train validated (tip 6ce4effef8). Vitest failures confirmed as base-red (#9679 ).
2026-08-07 20:53:02 -03:00
Chewji
062d48b1ad
fix(combo): keep operator-defined model order for deterministic strategies ( #9420 )
...
Merge-train validated (tip 6ce4effef8). Vitest failures confirmed as base-red (#9679 ).
2026-08-07 20:53:00 -03:00
Diego Rodrigues de Sa e Souza
74cf860ccc
feat(providers): make video_url passthrough configurable per provider/model ( #9248 ) ( #9419 )
...
Merge-train validated (tip 6ce4effef8). Vitest failures confirmed as base-red (#9679 ).
2026-08-07 20:52:57 -03:00
Diego Rodrigues de Sa e Souza
915b383a71
fix(qoder): surface qodercli stderr in error message instead of generic 502 ( #9319 ) ( #9412 )
...
Merge-train validated (tip 6ce4effef8). Vitest failures confirmed as base-red (#9679 ).
2026-08-07 20:52:54 -03:00
Bob.Hou
c32818e738
test(quota): wait for the hot-path consumption instead of sleeping ( #9365 )
...
Merge-train validated (tip 6ce4effef8). Vitest failures confirmed as base-red (#9679 ).
2026-08-07 20:52:45 -03:00
Milan Soni
696435efa8
fix(routing): normalize time remaining in reset-window strategy ( #9330 ) ( #9353 )
...
Merge-train validated (tip 6ce4effef8). Vitest failures confirmed as base-red (#9679 ).
2026-08-07 20:52:42 -03:00
Bob.Hou
a57e4ab873
fix(auth): let an agy request find the connection it authorized ( #9340 )
...
Merge-train validated (tip 6ce4effef8). Vitest failures confirmed as base-red (#9679 ).
2026-08-07 20:52:38 -03:00
Diego Rodrigues de Sa e Souza
9dd6251361
feat(dashboard): render provider API key registration links ( #9270 ) ( #9336 )
...
Merge-train validated (tip 6ce4effef8). Vitest failures confirmed as base-red (#9679 ).
2026-08-07 20:52:35 -03:00
Diego Rodrigues de Sa e Souza
e3769ba709
feat(providers): accept JSON cookie objects in normalizeSessionCookieHeader ( #9284 ) ( #9335 )
...
Merge-train validated (tip 6ce4effef8). Vitest failures confirmed as base-red (#9679 ).
2026-08-07 20:52:32 -03:00
Diego Rodrigues de Sa e Souza
7fb3b7558a
feat(providers): support max reasoning effort for opencode-zen DeepSeek models ( #9318 ) ( #9334 )
...
Merge-train validated (tip 6ce4effef8). Vitest failures confirmed as base-red (#9679 ).
2026-08-07 20:52:29 -03:00
SAMUEL AUGUSTO GUIMARAES LOPES
236aad07c7
fix(mcp): stop DB init logging from corrupting the stdio JSON-RPC stream ( #9281 )
...
Merge-train validated (tip 6ce4effef8). Vitest failures confirmed as base-red (#9679 ).
2026-08-07 20:52:26 -03:00
SAMUEL AUGUSTO GUIMARAES LOPES
41d2e4e7a1
test(compression): lock in stacked RTK+Caveman savings on redundant tool_result content ( #9278 )
...
Merge-train validated (tip 6ce4effef8). Vitest failures confirmed as base-red (#9679 ).
2026-08-07 20:52:23 -03:00
小妍儿 ✨
12e5c83692
fix(chat): resolve stored combo names before image-model validation ( #8986 ) ( #9027 )
...
Merge-train validated (tip 6ce4effef8). Vitest failures confirmed as base-red (#9679 ).
2026-08-07 20:52:20 -03:00
小妍儿 ✨
9dc8cdbcb1
fix(kiro): keep interleaved tool results grouped without dropping assistant text ( #8903 ) ( #8931 )
...
Merge-train validated (tip 6ce4effef8). Vitest failures confirmed as base-red (#9679 ).
2026-08-07 20:52:13 -03:00
小妍儿 ✨
c73af2761e
fix(providers): expose dual-auth actions for CodeBuddy CN ( #8921 )
...
Merge-train validated (tip 6ce4effef8). Vitest failures confirmed as base-red (#9679 ).
2026-08-07 20:52:10 -03:00
小妍儿 ✨
3f4f2000b6
fix(proxy): isolate registry credentials from autofill ( #8883 )
...
Merge-train validated (tip 6ce4effef8). Vitest failures confirmed as base-red (#9679 ).
2026-08-07 20:52:06 -03:00
小妍儿 ✨
124f64a6c0
fix(cli): default Codex wire API to responses ( #8876 )
...
Merge-train validated (tip 6ce4effef8). Vitest failures confirmed as base-red (#9679 ).
2026-08-07 20:52:03 -03:00
小妍儿 ✨
5d71f47815
fix(opencode): complete generated model limits ( #8869 )
...
Merge-train validated (tip 6ce4effef8). Vitest failures confirmed as base-red (#9679 ).
2026-08-07 20:51:59 -03:00
Diego Rodrigues de Sa e Souza
6c22f8d4c3
fix(api): specialty model catalog ignores hidden OpenRouter model flags ( #9293 )
...
The specialty model catalog loops (image, rerank, audio, moderation, video,
music) in catalog.ts reduced OpenRouter model IDs to only the final path
segment via .split("/").pop() before calling getModelIsHidden(), so stored
hidden flags with full provider-relative paths (e.g. openrouter+google/chirp-3)
were never matched.
Fix: introduce a shared getSpecialtyModelRelativeId helper that strips only
the provider prefix (like the embedding loop already did), and apply it to
all 6 affected specialty loops. Also add a hidden-model guard to the live
OpenRouter catalog path that had no such check at all.
Co-authored-by: diegosouzapw <diegosouzapw@users.noreply.github.com >
2026-08-07 18:09:17 -03:00
Diego Rodrigues de Sa e Souza
a651ffa66a
fix(backend): use accumulated responseBody for provider payload to avoid stale dashboard log viewer data ( #9315 )
...
Co-authored-by: diegosouzapw <diegosouzapw@users.noreply.github.com >
2026-08-07 18:09:12 -03:00
Diego Rodrigues de Sa e Souza
df64220087
fix(web-search): bind each search provider attempt to its connection proxy ( #9201 )
...
* fix(web-search): bind each search provider attempt to its connection proxy (#9201 )
The search path resolved credentials but never resolved the connection
proxy, so the upstream fetch always egressed directly. The connection-test
path already used the proxy correctly, proving the gap was in the
data-plane transport binding.
- Resolve the connection proxy before each upstream attempt using the
existing resolveProxyForConnection(connectionId, apiKeyId, providerId)
precedence chain, then wrap the fetch in runWithProxyContext so the
patched globalThis.fetch routes through the configured proxy.
- Resolve and bind the alternate connection proxy independently during
failover, so the primary account's context never leaks into the fallback.
- Carry connectionId and apiKeyId through SearchHandlerOptions into the
route and executeWebSearch callers.
- Add connectionId to all saveCallLog entries in tryProvider, so the
regular call log identifies the account.
- Emit a sanitized logProxyEvent per real upstream search attempt with
provider, connection ID, proxy level, status, duration, and target
origin/path (no query, API key, or proxy credentials).
- Cover both POST /v1/search and executeWebSearch() consumers (MCP,
internal, skills) since both bypassed the same proxy binding.
* fix(sse): extract search proxy binding into leaf module to fit file-size cap
Move the per-attempt proxy resolution, proxied fetch, sanitized proxy-event
emission, and response handling for web search providers out of
open-sse/handlers/search.ts into a new open-sse/handlers/search/searchProxy.ts,
so the provider-dispatch chokepoint (tryProvider) stays a thin wiring call and
search.ts fits back under the frozen file-size cap (1536 lines).
---------
Co-authored-by: diegosouzapw <diegosouzapw@users.noreply.github.com >
2026-08-07 18:09:08 -03:00
Diego Rodrigues de Sa e Souza
09e4c150c1
fix(credential-health): scheduler never retries failed connections due to static interval comparison ( #9289 )
...
Co-authored-by: diegosouzapw <diegosouzapw@users.noreply.github.com >
2026-08-07 18:09:00 -03:00
Diego Rodrigues de Sa e Souza
6d99a01a0b
fix(catalog): cache getModelsDevPricing() to prevent OOM at startup ( #9300 )
...
Co-authored-by: diegosouzapw <diegosouzapw@users.noreply.github.com >
2026-08-07 18:08:56 -03:00
Diego Rodrigues de Sa e Souza
d92e984fec
fix(providers): bump qwen-web SPA version header from 0.2.66 to 0.2.81 ( #9304 )
...
Co-authored-by: diegosouzapw <diegosouzapw@users.noreply.github.com >
2026-08-07 18:08:52 -03:00
Diego Rodrigues de Sa e Souza
3be585ef41
fix(providers): use prefix regex for web search fallback detector to catch versioned tool types ( #9279 )
...
Co-authored-by: diegosouzapw <diegosouzapw@users.noreply.github.com >
2026-08-07 18:08:44 -03:00
Diego Rodrigues de Sa e Souza
2e71558a0f
fix(providers): modal.com validation returns clear error when Base URL is missing ( #9102 )
...
Modal (modal.com) is bring-your-own-deploy and requires a Base URL pointing to the
user's OpenAI-compatible Modal app. The connect-connection form labels the Base URL
override field as Optional, but the modal validator does not handle the empty case:
when no Base URL is set it passes normalizeBaseUrl('') into validateOpenAILikeProvider,
which builds an empty probe URL and trips parseOutboundUrl, leaking the raw guard
message 'Invalid outbound URL: '.
Fix: guard the empty/whitespace baseUrl case in the modal specialty validator and
return a clear, actionable error message explaining that a Base URL is required.
Add a regression test asserting the fix.
Co-authored-by: diegosouzapw <diegosouzapw@users.noreply.github.com >
2026-08-07 18:08:39 -03:00
Diego Rodrigues de Sa e Souza
771d3e363a
fix: make antigravity and agy equivalent in credential selection ( #9204 )
...
Co-authored-by: diegosouzapw <diegosouzapw@users.noreply.github.com >
2026-08-07 18:08:35 -03:00