All 1383 entries from this cycle are listed below, one line each — descriptions are
trimmed to fit GitHub's 125,000-character release body. Full wording, context and links:
CHANGELOG.md.
Living section — regenerated 2026-07-19 from all 306 cycle commits (bump 2c62333 → tip). Bullets carry the merged PR and its author; direct pushes listed separately. Finalized at the v3.8.49 release.
✨ New Features
-
feat: generalize ensureThinkingBudget to all providers +… (#6979) — @rafaumeu
-
feat(6922): effort-tier aliases for glm-5.2 & mimo-v2.5 on… (#6987) — @rafaumeu
-
feat(providers): curated OpenRouter embeddings catalog + specialty merge… (#6994)
-
feat(quota): opt-in auto-ping to keep Codex quota windows warm (#6995)
-
feat(providers): add Agnes AI native provider support (#7035) — @HouMinXi
-
feat(sse): allow disabling
:comment heartbeats via… (#7036) — @xier2012 -
feat(perf): add performance.mark/measure to SSE pipeline +… (#7045) — @oyi77
-
feat(providers): add Dahl free inference provider (#7062) — @growab
-
feat(ci): boot-smoke the packed npm tarball (check:pack-boot,… (#7086)
-
feat(ci): hotfix fast-lane + tests-only E2E skip (WS3.1) (#7088)
-
feat(ci): continuous release-green — on-push quick gate + 3x/day… (#7089)
-
feat(ci): duration-balanced E2E shards via LPT bin-packing (WS4.1) (#7090)
-
feat(ci): TypeScript 7 native shadow for typecheck:core (WS4.2,… (#7091)
-
feat(release): npm staged publishing + pre-publish boot-smoke (WS1.3) (#7092)
-
feat(release): post-publish verifier — clean-container install + boot… (#7109)
-
feat(ci): Mergify merge queue + manual-train fallback runbook… (#7112)
-
feat(ci): Windows leg for Electron prepare smoke (WS1.5) (#7113)
-
feat(ci): Codecov patch coverage (informational) + fix missing… (#7114)
-
feat(sidecar): support conditional provider manifest refresh (#7130) — @KooshaPari
-
feat(homolog): real-environment E2E homologation suite (npm run… (#7133)
-
feat(usage): add Codex reset credit picker (#7154) — @JxnLexn
-
feat(ci): Trunk Flaky Tests uploads for vitest + Playwright E2E… (#7175)
-
feat(ci): Trunk Flaky Tests upload on the fast-path vitest job… (#7205)
-
feat(kiro): register GPT-5.6 Sol/Terra/Luna model family (#7209)
-
feat(dashboard): show Codex plan label in provider and quota views (#7210)
-
feat(dashboard): add reorder connections by availability button (#7211)
-
feat(dashboard): add 180D and 365D usage/cost analytics periods (#7213)
-
feat(api): add Vary: Accept-Encoding to token-authenticated /v1*… (#7217)
-
feat(api): expose GET /api/usage/model-latency-stats (#7218)
-
feat(dashboard): add compression-mode selector to Context & Cache combos… (#7219)
-
feat(sse): route GitHub Copilot Claude models through native… (#7223)
-
feat(mitm): add Antigravity reasoning-effort overrides (#7228)
-
feat: replace free-text model inputs with hidePaid-aware… (#7229)
-
feat: editable ComfyUI base-URL field + per-connection… (#7232)
-
feat(sse): add optional-enum null-omission idiom for codex… (#7233)
-
feat(sse): preserve tools/tool_choice for tool-bearing requests… (#7235)
-
feat(api): accept x-goog-api-key header for client-facing auth (#7236)
-
feat(sse): add native xAI Grok Imagine video generation provider (#7238)
-
feat: add Type filter and easiest-first sort to Free Provider… (#7240)
-
feat(cli): add Grok Build CLI tool setup (~/.grok/config.toml) (#7241)
-
feat(provider): add Chenzk API OpenAI-compatible gateway (#7246)
-
feat(providers): let custom connections opt into prompt-cache capability (#7257)
-
feat(db): include xp_audit_log in automatic retention/prune (#7260)
-
feat(api): structured X-Routing-Fallback-Reason header for relay… (#7262)
-
feat(compression): support RTK TOML schema v1 filters (#7281) — @JxnLexn
-
feat: add principal-scoped CCR MCP lifecycle (#7282) — @JxnLexn
-
feat(issue-agent): surface RecordedTriageTimeoutError as 504 (#7315) — @KooshaPari
-
feat(incident-response): structured incident response templates (#7334) — @KooshaPari
-
feat(providers): add xAI OAuth PKCE provider (#7399) — @fenix007
-
feat(models): advertise Claude reasoning-effort variants in /v1/models (#7497) — @thepigdestroyer
-
feat(kimi): sync Code, Web, and Moonshot providers (#7531) — @backryun
-
feat(resilience): guard OmniRoute peer routing loops (#7555) — @isiahw1
-
feat: add Mixedbread AI as embeddings provider (#7595)
-
feat(providers): add Rev AI speech-to-text provider (#7596)
-
feat: add Freepik (Magnific Mystic) image generation provider (#7597)
-
feat(sse): add DeepInfra as a video-generation provider (#7598)
-
feat(providers): add Felo chat-aggregator provider (#7599)
-
feat(sse): add Notion AI Web (Unofficial/Experimental) provider (#7600)
-
feat: add FreeTheAi as OpenAI-compatible gateway provider (#7602)
-
feat: add Gladia as an async speech-to-text provider (#7603)
-
feat: add EdgeTTS audio-tts provider (#7605)
-
feat(video): add Novita AI as video-generation provider (#7606)
-
feat: add Segmind image+video provider (#7608)
-
feat: add Microsoft Designer as image provider (#7609)
-
feat: per-model default reasoning_effort + no-think none on… (#7631)
-
feat(sse): per-model upstream header-response timeout override (#7632)
-
feat(dashboard): in-product guidance for prompt compression engines (#7634)
-
feat(usage): add TTFT/E2E-latency/tokens-per-second to model latency… (#7635)
-
feat: import providers from CSV/JSON file (#7636)
-
feat: confirm before removing a single connection (#7640)
-
feat(sse): honor excluded models in no-auth auto-combo candidate… (#7646)
-
feat(providers): add g4f.space no-key gateway… (#7647)
-
feat: rate-limit queue admission control (maxQueueDepth + 15s… (#7649)
-
feat(sse): generalize session affinity TTL to all providers (#7650)
-
feat: OpenRouter quota tracking (key/credits + free-window… (#7651)
-
feat(sse): quota tracking for AgentRouter, v0 (Vercel), FreeModel… (#7653)
-
feat(providers): Speechmatics STT, gTTS, VibeProxy preset (#6659, #6667,… (#7655)
-
feat(api): route Google AI Studio Imagen through… (#7656) — @danscMax
-
feat(auth): OIDC as optional dashboard admin login gate (password… (#6973) — @mikolaj92
-
feat(api): add pagination params to 8 DB modules + recharts… (#7046) — @oyi77
-
feat(proxy): operator-level proxy subscriptions (Karing-style) —… (#7299) — @xier2012
-
feat(grok-cli): align with official Grok Build client (#7358) — @backryun
-
feat(providers): Complete GHE Copilot OAuth provider implementation (#7546) — @hppsc1215
-
feat(guardrails): add CredentialMaskerGuardrail for API key/secret… (#7683) — @Securiteru
-
feat(perplexity): refresh provider integrations (#7687) — @backryun
-
feat(providers): notion-web live model discovery via getAvailableModels (#7696) — @artickc
-
feat(providers): add proactive cf_clearance/User-Agent hint to grok-web… (#7713)
-
feat: add live gRPC-web quota fetcher for grok-cli (#7714)
-
feat(api): add opt-in auto-sync scheduler for free-proxy sources (#7716)
-
feat(dashboard): show proxy name in badge, sort saved-proxy picker,… (#7720)
-
feat(cli): add auth export command for decrypted provider… (#7724)
-
feat(oauth): accept full ChatGPT session JSON for Codex manual import (#7725)
-
feat(sse): add nvidia NIM local RPM budget + concurrency cap (#7726)
-
feat(gemini-web): emulate OpenAI tool calling via the webTools prompt shim (#7727)
-
feat(services): introduce pluggable service-provider contract, migrate… (#7730)
-
feat(mitm): root-CA + per-host leaf certs for AgentBridge static… (#7731)
-
feat(providers): add hailuo-web (MiniMax web) chat provider (#7734)
-
feat: browser login for Grok Build provider (#7735)
-
feat(routing): wire interceptFetch tool interception into the chat… (#7736)
-
feat(sse): add X-OmniRoute-Decision routing trace header (#7765)
-
feat(providers): zai-web live model discovery with local-catalog fallback (#7766)
-
feat(api): sync upstream reasoning.supported_efforts into… (#7767)
-
feat(dashboard): pin Kimi providers first in category + official… (#7775)
-
feat(chaos+ponytail): parallel chaos-mode dispatch + ponytail output … (#7781) — @Moseyuh333
-
feat(perf): IC2 — cache provider connections by ID + lazy-decrypt… (#7787) — @oyi77
-
feat(quality): gate the free-tier headline so it can never silently… (#7798)
-
feat(providers): expose an explicit tier override for any provider… (#7838)
-
feat(routing): read-only auto/* candidate transparency + per-API-key… (#7839)
-
feat(catalog): map unmapped free tiers, add navy + aihorde, surface… (#7840)
-
feat(providers): add OpenRouter speech-to-text (audio transcription)… (#7861) — @Tasogarre
-
feat(qwen): add Qwen3.8 Max Preview catalogs [Part 2/3] (#7874) — @backryun
-
feat(providers): add 5 free-tier providers (ainative, aion, sealion,… (#7887)
-
feat(vnc-session): persistent noVNC browser login for web-cookie providers (#7892) — @Capslockb
-
feat(sse): add PromptQL playground provider (unofficial) (#7911) — @artickc
-
feat(cline): align ClinePass catalog and request protocol (#7914) — @backryun
-
feat: narrow mcp:connect scope + per-key HTTP tool-scope… (#7967)
-
feat: provider tab account search + mirrored top pagination (#7968)
-
feat: canonical numeric helpers + tier-1 (analytics) migration (#7969)
-
feat(sse): add HyperAgent (hyperagent.com) unofficial web provider (#7994) — @artickc
-
feat: copilot-m365-web tone-selected model variants (#7997)
-
feat(media): Adobe Firefly image + video generation provider (#8006) — @artickc
-
feat(compression): select model-aware tokenizers (#8009) — @JxnLexn
-
feat(compression): add Responses tool-output engine (#8010) — @JxnLexn
-
feat(dashboard): Kimi sponsor banner, Kimi Coding preset, official… (#8039)
-
feat(dashboard): make Codex quota card windows reflect reality (#8054) — @insoln
-
feat(compression): teach the model the CCR retrieve protocol on first… (#8063)
-
feat(compression): per-model/endpoint compression exclusion filter (#8064)
-
feat(providers): add CLOVA Studio, InternLM and Ant Ling API-key… (#8077) — @alvaretto
-
feat(codex): support reference image edits (#8122) — @xiaoyaner0201
-
feat(providers): add weekly quota tracking for grok-web (#8127) — @apoapostolov
-
feat(providers): add Sarvam AI, Writer Palmyra and PLaMo API-key… (#8161) — @alvaretto
-
feat: native Fish Audio TTS provider on /v1/audio/speech (#8164)
-
feat: zh-CN terminology glossary + consistency gate +… (#8166)
-
feat(providers): add Typhoon (Thailand) and Inception Mercury diffusion… (#8170) — @alvaretto
-
feat(sse): restrict auto-combo no-auth pool to allowlist… (#8183)
-
feat(sre): add tcp-close-analyzer.py for debugging… (#8208) — @hartmark
-
feat(settings): configurable model catalog cache TTL (#8219) — @oyi77
-
feat(github-models): refresh catalog and compatibility (#8225) — @backryun
-
feat(github): refresh Copilot model catalog (#8226) — @backryun
-
feat: classify grok-web Cloudflare anti-bot blocks + gated… (#8241)
-
feat(providers): weekly quota for xAI OAuth (Grok) (
xai-oauth/xao)… (#8471) — @allanvb -
feat(sse): every completion response now carries an… — @chirag127
-
feat(ws): the live-dashboard WebSocket server now auto-starts… — @ianriizky
-
feat(sse): configurable per-model upstream… (#6354)
-
feat(dashboard): Replace free-text model inputs in the Routing (web… (#6540)
-
feat(compression): new omniglyph engine (context-as-image) — renders… (#6556 #6661)
-
feat(sse): rate-limit request queue admission control —… — @chirag127
-
feat(sandbox): the skill sandbox gained a container-provider… — @KooshaPari
-
feat(oauth): accept the full ChatGPT session JSON (not… (#6636)
-
feat(sse): add 5 no-key g4f.space gateway providers —… — @chirag127
-
feat(sse): add DeepInfra as a video-generation provider… (#6653)
-
feat(providers): add Freepik (Magnific Mystic) API-key… (#6654)
-
feat(providers): add Rev AI speech-to-text provider… (#6655)
-
feat(providers): add Segmind as an image + video generation provider… (#6656)
-
feat(providers): add Gladia as an async speech-to-text… (#6657)
-
feat(video): add Novita AI as a video-generation… (#6658)
-
feat(providers): add Speechmatics as an STT provider — async batch… (#6659)
-
feat(providers): add Mixedbread AI as an embeddings… (#6660)
-
feat(providers): add Felo (felo.ai) as a free, no-signup, no-API-key… (#6666)
-
feat(providers): add gTTS (Google Translate TTS) as a free, no-signup… (#6667)
-
feat(sse): add EdgeTTS (Microsoft Edge "Read Aloud") as a free,… (#6668)
-
feat(providers): add FreeTheAi as an OpenAI-compatible… (#6670)
-
feat(sse): add Microsoft Designer as an unofficial… (#6672)
-
feat(providers): add Hailuo Web (
hailuo-web) — a free,_token-based… (#6673) -
feat(cli): new
omniroute auth exportcommand dumps DECRYPTED… (#6683) -
feat(mitm): the AgentBridge static MITM server (
server.cjs) can… (#6684) -
fix(sse): skip
thinkingConfigfor Gemma models on the… — @chy1211 -
feat(xai): route xAI clients to Grok's native
/v1/responses… — @ryanngit -
feat(models): add a Settings → AI "Model Overrides" UI plus… — @xz-dev
-
feat(api): add
Vary: Accept-Encodingto token-authenticated… — @chirag127 -
feat(sse): add Notion AI Web (Unofficial/Experimental)… (#6758)
-
feat(dashboard): add per-routing-combo compression-mode override to the… (#6760)
-
feat(resilience): operator-configurable account rotation policy — a new… — @artickc
-
feat(sse): preserve
tools/tool_choicefor tool-bearing… — @chirag127 -
chore(cursor): add Grok 4.5 effort/fast model IDs: (#6774 ). — @andrewmunsell
-
feat(codex): Codex provider model discovery now fetches the live… — @JxnLexn
-
feat(cursor): register the Opus 4.8, Fable 5, and Sonnet 5 model… — @andrewmunsell
-
Changelog fragments (
changelog.d/): PRs now add their changelog entry as a new fragment… -
feat(proxy): add a latency-optimized proxy rotation strategy that… — @iamraydoan
-
feat(db): include
xp_audit_login the automatic… (#6801) -
feat(fusion): the fusion judge may now draw on its own knowledge and… — @chirag127
-
feat(dashboard): search box on the Playground's raw model
<select>—… (#6811) -
feat(usage): Antigravity/agy quota widget now surfaces the… (#4017 #6818)
-
feat(codex): Codex CLI compatibility shim — the Responses API… (#3697 #6820)
-
Z.ai Web (free web-session provider): new
zai-webweb-cookie provider drives the free… (#6823) -
feat(dashboard): import multiple, possibly different… (#6836)
-
feat(compression): update the vendored GCF codec behind the… (#6837)
-
feat(sse): OpenRouter quota tracking — a dedicated fetcher polls… (#6842)
-
feat(sse): live gRPC-web quota fetcher for Grok Build (
grok-cli)… (#6844) -
feat(sse): add dual-window quota tracking for the… (#6845)
-
feat(sse): add a static local RPM budget (default… (#6846)
-
feat(sse): add quota tracking for the
agentrouter… (#6850) -
feat(providers): Add GPT-5.6 support across OpenAI API, Codex, and… (#6862) — @backryun
-
chore(providers): Align emitted Claude Code identity headers, bridge… (#6862) — @backryun
-
feat(api): add a structured
X-Routing-Fallback-Reason… (#6872) -
feat(api): new GET /api/usage/model-latency-stats management… (#6873)
-
feat(providers): add a
vibeproxy-openaiprovider-node preset to `POST… -
feat(usage): add… (#6875)
-
feat(sse): per-model default
reasoning_effort… (#6879) -
feat(providers): let a custom/openai-compatible connection opt into… — @andrea-kingautomation
-
feat(dashboard): add a Type filter (No Signup / OAuth Login / API Key)… (#6915)
-
feat(providers): expose an editable base-URL field on the ComfyUI… (#6928)
-
feat(providers): refresh the curated OpenRouter embeddings catalog… (#6976)
-
feat(quota): Add opt-in auto-ping to keep Codex quota windows warm —… (#6977)
-
feat(oauth): Add a one-click browser (PKCE) login for Grok Build… (#7013)
-
feat(sse): Add optional-enum
null-omission idiom for… (#7023) -
feat(auth): accept the
x-goog-api-keyheader for client-facing… — @QRcode1337 -
feat(sse): add a local dual-window (5h + 7d,…
-
feat(api): opt-in scheduled auto-sync for free-proxy sources… — @chirag127
-
feat(kiro): register the GPT-5.6 Sol/Terra/Luna model family (272k… — @SemonCat
-
feat(dashboard): show the Codex subscription plan label in provider… — @CarmeloCampos
-
feat(dashboard): add a "Reorder" button to provider connections that… — @fzrilsh
-
feat(dashboard): add 180D and 365D periods to the Cost Explorer range… (#7213)
-
feat(sse): GitHub Copilot Claude models now route through… — @yidecode
-
feat(mitm): Antigravity MITM model mappings now support an optional… — @trfi
-
feat(sse): add native xAI Grok Imagine video generation provider —… — @anndev-69
-
feat(cli): add Grok Build CLI tool setup — writes a… — @rixzkiye
-
feat(provider): add Chenzk API OpenAI-compatible gateway. (thanks… — @CahyokPutraDev99
-
feat(dashboard): add a per-operator "hide this quota row" toggle to the… — @nguyenha935
-
feat(sse): session affinity (
X-Session-Id/x-codex-session-id… — @tenshiak -
feat(sse):
gemini-webnow honors the OpenAItoolsarray by… (#7286) -
feat(eval): added a router-eval harness (
npm run eval:router,… — @KooshaPari -
feat(services): introduce a
ServiceProviderPlugincontract… (#7333) -
feat(routing): wire
interceptFetchinto the chat… -
feat(dashboard): confirm before removing a single… (#7361)
-
feat(providers): Add a first-class xAI OAuth PKCE provider for… (#7399) — @fenix007
-
feat(dashboard): surface in-product guidance for the Settings → Prompt… (#7530)
-
feat(providers): Complete GHE Copilot OAuth provider implementation with… (#7546)
-
feat(providers): grok-web's add-connection dialog now… (#7567)
-
feat(providers): register
lmstudioin the embedding provider registry… (#7601) — @ekinnee -
feat(sse): honor a no-auth provider connection's… (#7622)
-
feat(dashboard): proxy-assignment UX quality-of-life fixes — the… — @tenshiak
-
feat(providers):
zai-web(chat.z.ai) now wires live… — @andrea-kingautomation -
feat(perplexity): Refresh Perplexity Web model mappings and Search API… (#7687) — @backryun
-
Generic OpenAI-compatible model sync now captures a… (#6879)
-
feat(dashboard): Kimi (Moonshot AI) official-partnership highlight on… (#7775)
-
feat(providers): let any provider connection — built-in… (#7818)
-
feat(routing): add a read-only `GET… (#7819)
-
feat(providers): copilot-m365-web tone-selected model… (#7872)
-
feat(shared): Add canonical numeric coercion helpers (
toNumber,… (#7879) -
feat(mcp): add a narrow
mcp:connectAPI-key scope for… (#7895) -
feat(dashboard): provider tab account search… (#7937)
-
feat(sse): classify grok-web Cloudflare anti-bot blocks… (#8019)
-
Teach the model the CCR retrieve protocol (marker →… (#8033)
-
Add a per-model/endpoint compression exclusion filter:… (#8034)
-
feat(i18n): zh-CN terminology glossary + consistency gate + 提供商→提供者… (#8038)
-
feat(dashboard): The Codex quota card no longer shows latent, never-used… (#8051)
-
feat(providers): native Fish Audio TTS provider on… (#8099)
-
feat(codex): add bounded multi-reference PNG/JPEG/WebP image editing… (#8122) — @xiaoyaner0201
-
refactor(sse): classify SSE critical-path empty catches… (#8142)
-
feat(db): persist caller session tag into call_logs for… (#8249)
-
feat(api): quota-aware fallback routing for web-fetch… (#8297)
-
feat(providers): map upstream reasoning-level metadata… (#8347)
-
feat(providers): weekly quota for xAI OAuth (Grok) (
xai-oauth/xao)… (#8471) — @allanvb -
feat(jobs):
backup auto enableschedule is now… (#8513) -
feat(ci): automate ratchet shrink-banking so file-size/complexity… (#8612) — @MumuTW
-
feat(providers): live monthly credit quota for Firecrawl (`GET… (#8759) — @allanvb
-
feat(search): add Firecrawl to
POST /v1/searchsupported providers… (#8814) — @allanvb -
feat(adobe-firefly): reference-image attach for generate + OpenAI…
-
Homologation suite: new
npm run homologruns the full… -
feat(mcp): add a read-only Local Corpus context source with…
-
feat(providers): notion-web live model discovery via…
-
Provider connections can now be shown or hidden…
-
docs(i18n): rewrite Russian README as a full native…
-
Providers: adds the Xiaomi MiMo Token Plan provider and a… (#8861)
-
feat(opencode-plugin): auto-discover models while running + force sync (#8101) — @RaviTharuma
-
feat(combo): enforce provider and model family invariants (#8304) — @RaviTharuma
-
feat(cli): replace ANTHROPIC_SMALL_FAST_MODEL with Fable default (#8343) — @leszek3737
-
feat: read INITIAL_PASSWORD env var during setup (#8439) — @linhdmn
-
feat(providers): add missing opencode-go reasoning effort variants (#8441) — @Prudhvivuda
-
feat(combos): add select all / unselect all in Browse Catalog (#8526) — @JoshimOfficial
-
feat(cli-tools): add all Hermes Agent auxiliary model roles (#8543) — @leszek3737
-
feat(ci): block stale UI translations when an English value is… (#8574)
-
feat(providers): flatten multi-turn history for gemini-web (#8607) — @Prudhvivuda
-
feat(sse): relay upstream 4xx error bodies verbatim on the… (#8622)
-
feat: Claude Code discovery aliases (surface non-Claude… (#8666)
-
feat(dashboard): copy-paste settings.json block for Claude Code discovery (#8722)
-
feat(quality): temporary relax of complexity/file-size ratchets for… (#8767)
-
feat(db): let the migration runner scan extra namespaced… (#8770)
-
feat(api): prompt-cache health summary endpoint and analytics tab (#8827)
⚡ Performance
-
perf(db): project columns + composite index in… (#6918) — @oyi77
-
perf(db): add jitter to stagger due-on-restart connections (#6919) — @oyi77
-
perf(startup): warm model catalog cache at module init (#6920) — @oyi77
-
perf(db): add temp_store=MEMORY pragma to SQLite init (#6921) — @oyi77
-
perf(db): cap modelLockouts eviction at 1000 entries (#6923) — @oyi77
-
perf: wrap ComboCard, HeroSection in React.memo (#7070) — @oyi77
-
perf: Date.now hoist, hasActiveDeltaValue hoist, buffer.split… (#7066) — @oyi77
-
perf(memory): mitigate event-loop starvation under 3000+ provider… (#7719) — @oyi77
-
perf: reduce long-context request copies (#7862) — @RaviTharuma
-
perf: lazy provider init, P2C quota cache, structuredClone… (#7893) — @oyi77
-
perf(api): singleflight version lookups (#8301) — @RaviTharuma
-
perf(api): skip the full catalog build for quota-exclusive keys (#8771)
🐛 Bug Fixes
-
fix: add re-entrancy guard to token health check sweep (#6917) — @oyi77
-
fix(grok): strip reasoningEffort for grok cli models (#6938) — @CitrusIce
-
fix(6954,6953): preserve system role + strip empty-signature thinking… (#6982) — @rafaumeu
-
fix(6980): classify Cloudflare AI neuron exhaustion as… (#6983) — @rafaumeu
-
fix(dashboard): hide disabled provider connections from combo builder (#6984)
-
fix(providers): cap grok-cli tools at 200 for cli-chat-proxy (#6986)
-
fix(6848): auto-cleanup for telemetry tables causing OOM (#6988) — @rafaumeu
-
fix(models): preserve direct-model combo metadata (#6993) — @JxnLexn
-
fix: DDG circuit breaker + null content validation (#7001) — @rafaumeu
-
fix(models): preserve chat-capable image model rows (#7004) — @xz-dev
-
fix(codex): preserve GPT-5.6 reasoning contract (#7012) — @xz-dev
-
fix(base-red): align least-used combo tests with executionKey usage… (#7015)
-
fix: infer bare models from active synced catalogs (#7028) — @guanbear
-
fix(auggie): update model registry to match v0.32.0 CLI model IDs (#7032) — @oyi77
-
fix(sse): register ollama-cloud in USAGE_FETCHER_PROVIDERS (#7041) — @alltomatos
-
fix(quality): read cognitiveComplexity= machine line in… (#7042) — @alltomatos
-
fix(providers): sanitize Claude native output_config.effort (#7050) — @xier2012
-
fix(combo): treat maxInputTokens as an input-only cap in the… (#7052) — @xier2012
-
fix(antigravity): collect native part.functionCall into tool calls (#7053) — @xier2012
-
fix(responses): map mid-conversation system turns to developer role (#7056) — @xier2012
-
fix(combo): least-used sorts by per-account executionKey (#7059) — @xier2012
-
fix(providers): AgentRouter model import applies Claude Code wire image… (#7060) — @xier2012
-
fix(translator): preserve thinking.budget_tokens: 0 in Claude->Gemini (#7061) — @xier2012
-
fix(cloudflare-relay): avoid invalid regex syntax in generated worker (#7063) — @SeaXen
-
fix(dashboard): strip browser-extension attrs before hydration (#7073) — @MrFadiAi
-
fix(relay): bound Bifrost stream lifetime (#7093) — @KooshaPari
-
fix(sse): recognize xiaomi-tokenplan mimo as a thinking-mode model (#7098)
-
fix(codex): strip regex lookaround from tool schema patterns (#7100)
-
fix(openai): strip reasoning_effort when GPT-5.x models carry… (#7101)
-
fix(compression): Headroom SmartCrusher skips developer-role messages… (#7102)
-
fix(providers): surface a warning on 404 model_not_found in… (#7103)
-
fix(executors): forward X-Session-ID/X-Title agent metadata headers (#7104)
-
fix(cli): verify better-sqlite3 native binary is actually loadable (#7105)
-
fix(sse): sanitize non-ok Antigravity streaming error body (port… (#7106)
-
fix(providers): add MiniMax image-generation provider (#7108)
-
fix(sse): handle space-separated arg name/value in Composer tool… (#7116)
-
fix(cli): remove MITM DNS spoof entries before killing server… (#7117)
-
fix(dashboard): include never-tested connections in combo builder… (#7118)
-
fix(api): check Vercel SSO-protection PATCH response on relay… (#7119)
-
fix(combos): reject oversized fusion panels before fan-out (port… (#7120)
-
fix(combo): detect empty content_block in streaming SSE peek (#7121)
-
fix(oauth): resolve Kiro AWS SSO cache client credentials by… (#7122)
-
fix(tests): vitest UI suite back to green (69 fails triaged — WS6.1) (#7127)
-
fix(auto): use p95 fallback in speed factors (#7128) — @KooshaPari
-
fix(models): update Anthropic model contextLength to 1M (#7129) — @HouMinXi
-
fix(ci): raise dast-smoke timeout 12->25min (build alone eats up… (#7139)
-
fix(compression): lazy-load typescript in RTK codeStripper so prod-lean… (#7164) — @alltomatos
-
fix(providers): accept m365.cloud.microsoft for copilot-m365-web token (#7166) — @xier2012
-
fix(executors): disable parallel tools for Codex Responses Lite (#7171) — @fenix007
-
fix(tests+providers): env-dependent tests exposed by GH-hosted runners (#6634… (#7174)
-
fix(combo): reject known context overflow without exhausting… (#7177) — @JxnLexn
-
fix: add static.cloudflareinsights.com to CSP script-src (#7178) — @oyi77
-
fix: extend turbopack ignoreIssue suppression to compression… (#7180)
-
fix: recognize Ollama Cloud session usage-limit 429 as… (#7181)
-
fix: preserve relayAuth for pool-referenced relay proxies (#7182)
-
fix: wire adaptive context-budget dial into settings schema… (#7183)
-
fix(providers): DuckDuckGo VQD 429 misclassified as 503 (#7185)
-
fix(db): cap OOM probe-failure cycle in getDbInstance() (#7186)
-
fix: stop opencode-go quota lookup defaulting to Z.AI… (#7187)
-
fix(providers): refresh OpenCode (oc) free-tier model catalog (#7188)
-
fix: include proxyId when testing a saved registry proxy (#7189)
-
fix: sanitize non-Latin1 chars in combo diagnostic headers (#7190)
-
fix: raise main server keepAliveTimeout/headersTimeout above… (#7191)
-
fix: route zai-web (and other registry-entry web-cookie… (#7192)
-
fix(providers): reject chat requests for cloud-agent-only jules provider (#7193)
-
fix: restore mobile grid-cols-1 fallback on quota page card… (#7194)
-
fix: wire modelAliases fetch into HermesAgentToolCard (#7195)
-
fix: surface real claude-web error body for non-SSE 400s (#7196)
-
fix(dashboard): agent bridge dns toggle uses POST, not PUT (#7197)
-
fix: stop duplicating text in Gemini Web streamed responses (#7198)
-
fix: filter hidden custom models out of legacy combo model… (#7199)
-
fix(dashboard): implement missing handleToggleSource on Free Pool tab (#7200)
-
fix: honor combo-level proxy assignments from the registry (#7201)
-
fix(ci): run quality gates on Mergify merge-queue draft PRs… (#7202)
-
fix: add dashboard-scoped typecheck gate covering… (#7203)
-
fix(guardrails/chat): stop Vision Bridge hijacking credentialed models to… (#7204) — @artickc
-
fix(translator): preserve Gemini thought parts as reasoning_content on… (#7206)
-
fix(translator): register openai response projection for gemini clients (#7207)
-
fix(cli): fast-path --version to skip full CLI bootstrap (#7208)
-
fix: honor PROVIDER_LIMITS_SYNC_SPACING_MS for local/API-key… (#7214)
-
fix(api): bulk-add API keys no longer overwrite existing… (#7234)
-
fix(sse): route the public OpenAI GPT-5.6 family through the… (#7242)
-
fix(providers): honor configured proxy on Grok Build egress (#7244)
-
fix(nvidia): expand NIM chat model catalog (#7247)
-
fix(sse): reconstruct Claude-format content in synthetic bypass… (#7248)
-
fix(build): isolate Windows HOME/AppData during next build (#7249)
-
fix(cli): omniroute dashboard respects PORT env when --port is… (#7252)
-
fix(sse): project non-streaming JSON back to the… (#7255)
-
fix(combo): fall back on Responses SSE failures (#7256) — @rushsinging
-
fix(routing): resolve nested combo-ref panel members in fusion… (#7259)
-
fix(usage): reset logs and show provider names in analytics (#7264) — @SeaXen
-
fix(sse): silence noisy proxy-failure log on caller-initiated… (#7266)
-
fix(codex): normalize nested Responses output content (#7269) — @JxnLexn
-
fix(combo): derive session stickiness key from Responses API… (#7277) — @alltomatos
-
fix(antigravity): wrap Pro fallback chain in try/catch for timeout… (#7290) — @HouMinXi
-
fix(logs): show saved provider names in request/provider log views (#7294) — @SeaXen
-
fix(stream): reconcile encrypted Codex reasoning visibility without… (#7304)
-
fix(build): packed tarball boot crash — server-ws timeout import… (#7308)
-
fix(skills): register cli-skill-collector in the agent-skills… (#7310)
-
fix(db): tolerate unavailable virtual table modules in stats (#7313) — @megamen32
-
fix(router-eval): retained-optimization gate cleanup (#7318) — @KooshaPari
-
fix(ci): Coverage job timeout 10->20min (lcov reporter pushed it… (#7342)
-
fix(electron): normalize hashed standalone externals (#7353) — @tianrking
-
fix(db): stop a 'latest' path segment from disabling backups and… (#7359) — @danscMax
-
fix(branding): regenerate raster favicons — white mark was shipped… (#7390) — @vzts
-
fix(test): skip real DNS writes in MITM dynamic-import test (#7398) — @HouMinXi
-
fix(antigravity): streaming passthrough for non-streaming clients (#7408) — @HouMinXi
-
fix(build): align engines.node with SUPPORTED_NODE_RANGE (#7490) — @alltomatos
-
fix(api): await params in Agent Bridge DNS route (Next.js 16) (#7492) — @alltomatos
-
fix(dashboard): show Obsidian context source card (#7500) — @DKotsyuba
-
fix(ci): fetch full base history in pr-test-policy (shallow… (#7501)
-
fix(sse): preserve chat quota across mixed windows (#7504) — @webmasterarbez
-
fix(oauth): surface sanitized device-code error instead of a… (#7511) — @danscMax
-
fix(oauth): repair qwen + codebuddy-cn device-code endpoints (#7517) — @danscMax
-
fix(mitm): strip trailing assistant prefill to prevent upstream… (#7520) — @chirag127
-
fix(codex): Test probe uses a ChatGPT-account-supported model (#7524)
-
fix(codex): validate refresh_token on import before persisting (#7525)
-
fix(codex): non-stream chat 502 'Response body is already used'… (#7526)
-
fix(oauth): surface tunnel hint when Codex OAuth runs on a remote… (#7527)
-
fix(sse): preserve custom tool output images (#7540) — @loulanyue
-
fix(combo): failover when upstream SSE is truncated mid-lifecycle (#7545) — @Chewji9875
-
fix(dashboard): prefer public endpoint URLs (#7547) — @nguyenha935
-
fix(cli): refresh runtime detection accurately (#7552) — @nguyenha935
-
fix(ui): improve React Flow dark theme (#7553) — @nguyenha935
-
fix(i18n): treat MISSING sync placeholders as absent in EN… (#7556)
-
fix(cli): Windows cert check/uninstall key off the real CA… (#7557)
-
fix(sse): feed compression pipeline the authoritative vision… (#7560)
-
fix(dashboard): providers model-name filter matches live/synced catalog (#7561)
-
fix(db): pre-init sql.js WASM ahead of any getDbInstance()… (#7562)
-
fix(dashboard): resolve costs page 500 from out-of-scope t() in… (#7564)
-
fix(dashboard): surface rate-limit warning on 429 chat-probe (#7565)
-
fix(sse): lazy-load playwright in claudeTurnstileSolver (#7566)
-
fix(sse): combo failover for OpenAI streams truncated without… (#7568)
-
fix(cli): reuse win32-aware locateCommand in tool-detector (#7569)
-
fix(codex): #7536 check content-type before touching response.body… (#7570)
-
fix(sse): stop dropping tool_search and leaking OpenAI-only… (#7571)
-
fix(api): resolve provider display name and dedup byModel on… (#7573)
-
fix(mitm): route Claude Code standalone MITM traffic (#7574) — @dongwook-chan
-
fix(sse): stop per-byte enumeration of binary image bytes in log… (#7576)
-
fix(sse): split effort/reasoning suffix off pinned cursor model… (#7577)
-
fix(chatgpt-web): recognize update_content.messages[] celsius WS frames (#7578)
-
fix(sse): 401 model-not-supported lockout + sticky… (#7580)
-
fix(antigravity): allow cloudcode envelope through messages guard (#7582) — @dongwook-chan
-
fix(sse): sanitize empty-signature thinking blocks + hoist… (#7583)
-
fix(sse): honor per-model targetFormat override for… (#7584)
-
fix(sse): clamp glm-4.6v max_tokens to the 32768 ceiling (#7585)
-
fix(cli): log Codex Responses WebSocket history/usage per logical… (#7588)
-
fix(providers): derive static model catalogs for search providers from… (#7589)
-
fix(stream-readiness): bump timeout for heavy Claude-format reasoning replicas (#7612) — @herjarsa
-
fix(translator): synthesize tool call chunks from response.completed… (#7613) — @ekinnee
-
fix(embeddings): add lmstudio to embedding provider registry (#7614) — @ekinnee
-
fix(combo): auto-clear stale session pins and emit recovery hints… (#7625) — @herjarsa
-
fix(providers): unify connection and routing flows (#7629) — @nguyenha935
-
fix(db): dedupe bulk-imported proxies by full credential tuple (#7644) — @alltomatos
-
fix(api): allow text-to-image on dual-modality models + revive… (#7648) — @danscMax
-
fix(stryker): add Microsoft Designer test to tap.testFiles (#7659)
-
fix(dashboard): cut UI import chain from connection persist module (CI… (#7677)
-
fix(perplexity-web): stop empty-content responses from live schematized SSE (#6955) — @artickc
-
fix(dashboard): make quota cards container responsive (#7027) — @xz-dev
-
fix(nvidia): restore GLM-5.2 reasoning on NIM (#7296) — @backryun
-
fix(i18n): complete Vietnamese dashboard localization and runtime… (#7493) — @nguyenha935
-
fix(providers): migrate muse-spark-web from GraphQL to WebSocket… (#7528) — @Ajeesh25353646
-
fix(combo): expose computed context_length via /api/combos for… (#7633) — @herjarsa
-
fix(api): enumerate tiered auto combo endpoints in… (#7662) — @ekinnee
-
fix(dashboard): topology reflects connection health + clears finished… (#7672) — @danscMax
-
fix(kimi-coding): capture and replay reasoning for thinking-mode turns (#7673) — @xz-dev
-
fix(ci): merge-train --fast mirrors test:unit subdir allowlist (#7688)
-
fix(sse): start credential-health sweep at boot so stale web… (#7689) — @danscMax
-
fix(cursor): discover models via official CLI command (#7692) — @makcimbx
-
fix(quota): fix antigravity/agy multi-model quota skipping in combos (#7695) — @irvandikky
-
fix(usage): preserve account identity history (#7700) — @xz-dev
-
fix(db): update proxies on password rotation (#7707) — @floze-the-genius
-
fix(providers): correct Chutes registry baseUrl (#7708)
-
fix(routing): strip prompt_cache_key for NVIDIA NIM (#7709)
-
fix(providers): degrade Arena (lmarena) cookie validation redirect to… (#7710)
-
fix(claude-web): unify Turnstile/executor/fast-path User-Agents behind… (#7711)
-
fix(sse): authenticate CLIProxyAPI fallback/passthrough legs with… (#7712)
-
fix(sse): proactively refresh Grok Build OAuth token before… (#7715)
-
fix(providers): classify ambiguous Mistral 401 instead of hard auth… (#7718)
-
fix(security): bump adm-zip >=0.6.0 + exact host matching in mitm DNS… (#7732)
-
fix(icons): fall back to Stepfun Mono when Color component is… (#7743) — @Dan-ex-hub
-
fix(stream): suppress
</think>close marker for Responses API… (#7747) — @xz-dev -
fix(sse): wire settings.wildcardAliases into model resolution (#7748)
-
fix(authz): classify forge/jcode CLI settings routes as LOCAL_ONLY (#7749)
-
fix(routing): honor eye-icon hidden models for no-auth providers in… (#7750)
-
fix(sse): persist rotated Gemini web-session cookies via… (#7751)
-
fix(docs): heal release-green docs drift + eslint any-suppression… (#7755)
-
fix(mcp): copy undici into dist/node_modules to prevent… (#7756)
-
fix(packaging): move fumadocs-mdx to devDependencies (#7757)
-
fix(ci): build API-only smoke workflows backend-only to fix… (#7758)
-
fix(cli): load DATA_DIR/server.env as fallback for .env on… (#7759)
-
fix(cli): split outboundUrlGuard's DB helpers so setup-opencode… (#7760)
-
fix(notion-web): production-ready labels, multi-workspace, inference,… (#7768) — @artickc
-
fix(kimi): expose K3 reasoning effort levels (#7776) — @xz-dev
-
fix(compression): apply compression combo assignments to routing combos (#7779) — @ekinnee
-
fix(i18n): regenerate Polish UI locale from English (#7782) — @leszek3737
-
fix(combo): retry transient errors in pipeline strategy (#7794) — @AndrianBalanescu
-
fix(quality): register nvidia-quota-phase1 and… (#7796)
-
fix(stream): synthesize terminal finish_reason chunk when upstream… (#7804) — @AndrianBalanescu
-
fix(plugins): 5 bugs on the plugin path (3 Windows-only, 2… (#7806) — @tmone
-
fix(cli): register ESM alias resolver for @/ paths under global… (#7808) — @rafaumeu
-
fix(auth): gate invalid-key check on isRequireApiKeyEnabled for… (#7810) — @AndrianBalanescu
-
fix(ci): repair release regressions exposed by clean runs (#7812) — @backryun
-
fix(rerank): add voyage format adapter for request/response… (#7813) — @AndrianBalanescu
-
fix(antigravity): attempt onboarding when projectId is empty (#5193… (#7815) — @rafaumeu
-
fix(stream): emit terminal SSE frames on mid-stream upstream failure (#7816) — @AndrianBalanescu
-
fix(sse): strip orphaned tool_use before antigravity/Vertex… (#7822)
-
fix(translator): sanitize tool_result.tool_use_id symmetrically with… (#7823)
-
fix(oauth): require chatgptUserId agreement for Codex account dedup (#7825)
-
fix(db): purge in-memory key-health state when a provider… (#7826)
-
fix(compression): keep a retrievable preamble instead of a bare CCR marker (#7827)
-
fix(db): log fatal boot-time SQLite driver-cascade failure… (#7828)
-
fix(docker): repair tls-client-node native binary after… (#7829)
-
fix(auth): restore TICK_MS in tokenHealthCheck (ReferenceError on… (#7830)
-
fix(cli): fix Windows CLI detection false negatives (#7753, #7774) (#7831)
-
fix(docs): document CREDENTIAL_REDACTION_ENABLED and… (#7833)
-
fix(dashboard): fix collapsed quota card session/weekly order (#7834)
-
fix(dashboard): mirror connection-row action-icon spacing under RTL (#7835)
-
fix: avoid cmd.exe spawn on Windows by using os.hostname()… (#7841) — @tientien17
-
fix(usage): harden account identity reconciliation (#7843) — @xz-dev
-
fix(cli): use rundll32 instead of cmd.exe for Windows browser… (#7844) — @tientien17
-
fix: add native lifecycle-aware health endpoint (#7852) — @RaviTharuma
-
fix: reserve chat admission before body parsing (#7853) — @RaviTharuma
-
fix: bound quadratic session-dedup memory growth (#7855) — @RaviTharuma
-
fix(compression): enable OmniGlyph for Claude Fable 5 (#7863) — @enjoyer-hub
-
fix(notion-web): add browser fingerprint headers to reduce Cloudflare… (#7864) — @HassiyYT
-
fix(mitm): gate Agent Bridge Repair on sudo password (#7865) — @skutanjir
-
fix(rerank): honor the connection's pinned proxy on rerank calls (#7867)
-
fix(compression): skip CCR on tool outputs to preserve agent loop (#7869) — @herjarsa
-
fix(vision-bridge): reroute auto/ prefix to vision model when images present (#7871) — @herjarsa
-
fix(opencode-plugin): support separate management read token (#7885) — @RaviTharuma
-
fix(sse): CC bridge loses OpenAI-format image input… (#7888)
-
fix(combo): strip boolean reasoning field for opencode-go providers (#7891) — @AndrianBalanescu
-
fix(notion-web): accept OpenAI content-parts arrays in transcript (#7896) — @artickc
-
fix(notion-web): reuse threadId across OpenAI multi-turn (no new chat… (#7900) — @artickc
-
fix(gemini): strip OpenAI "strict" tool-schema keyword for… (#7901) — @Witroch4
-
fix(antigravity): collect native functionCall parts in SSE collector (#7902) — @Witroch4
-
fix(sse): recover invalid Anthropic thinking signatures once (#7906) — @insoln
-
fix(resilience): don't cool down accounts or trip the breaker on client… (#7908) — @insoln
-
fix(dashboard): preserve quota cutoff drafts (#7909) — @hydraxman
-
fix(providers): treat public-host 302 as valid in Gemini Web connection… (#7917)
-
fix(providers): read reasoning_text in Claude-format response translator (#7919)
-
fix(dashboard): safely render structured error objects in Request Logs… (#7920)
-
fix(dashboard): repair monaco deep import broken by 0.56 exports map (#7922)
-
fix(autostart): adopt 9Router VBS startup to suppress console flash on… (#7925) — @tientien17
-
fix(translators): normalize TitleCase tool names for non-Anthropic models (#7926) — @nramabad
-
fix(api): resolve local provider models via dashboard catalog… (#7927) — @ekinnee
-
fix(auto): pool accounts by provider model (#7928) — @adrianaryaputra
-
fix(perplexity-web): multi-step empty content + advanced-quota cooldown (#7930) — @artickc
-
fix(ccr): resolve principal via OMNIROUTE_API_KEY env var on… (#7932) — @ekinnee
-
fix(combo): context-aware fallback ignores model_context_override (#7933) — @tmone
-
fix(i18n): preserve remaining Vietnamese localization (#7935) — @nguyenha935
-
fix(mitm): gate Agent Bridge DNS and Trust Cert on sudo password (#7939) — @skutanjir
-
fix(providers): route iflytek/sparkdesk to Spark's OpenAI-compatible… (#7942) — @FenjuFu
-
fix(sse): preserve parallel_tool_calls for GPT-5.6 delegation… (#7957)
-
fix(providers): copilot-m365-web fails loudly on empty turns +… (#7958)
-
fix(providers): treat unreliable web-cookie /models probe status as… (#7959)
-
fix(api): add amazon-q to the static model catalog (#7960)
-
fix: parse Gemini 429 RetryInfo.retryDelay for model lockout (#7961)
-
fix(quality): tolerate ESLint's trailing unpruned-suppressions text… (#7962)
-
fix(cli): translate missing sqlite bindings error into actionable… (#7963)
-
fix(cli): spawn opencode.cmd shim with shell:true on win32 (#7964)
-
fix(dashboard): correct block-extra-Claude-usage toggle copy to match… (#7965)
-
fix(api): classify /api/acp/agents as loopback-only (#7966)
-
fix(auth): restore configurable HEALTHCHECK_BATCH_SIZE dropped by… (#7970)
-
fix(test): widen ratelimit-admission pollUntil deadline to 10s (#7971)
-
fix(pricing): clarify disabled automatic sync status (#7972) — @RaviTharuma
-
fix(combo): exempt content_filter from empty-content detection (#7973) — @HouMinXi
-
fix(embeddings): support secure multimodal inputs (#7978) — @RaviTharuma
-
fix(resilience): cap exactCooldownMs against maxCooldownMs (#7980) — @ekinnee
-
fix(electron): derive macOS Helper name from execPath to remove 2nd… (#8002)
-
fix(chatcore): report string-reason client aborts as 499, not 502 (#8011) — @Long-Feeds
-
fix(models): drop generic catalog siblings of specialty surfaces (#8021) — @RaviTharuma
-
fix(models): stop inventing chat capabilities for specialty surfaces (#8022) — @RaviTharuma
-
fix(capabilities): resolve models.dev specialty rows across provider keys (#8023) — @RaviTharuma
-
fix(models): attach models.dev pricing to GET /v1/models entries (#8025) — @RaviTharuma
-
fix(grok-cli): require full auth.json on OAuth paste import (#8027) — @RaviTharuma
-
fix(grok-cli): sanitize function_call_output before Grok Build dispatch (#8030) — @RaviTharuma
-
fix(sse): bound forwarded response headers (#8041) — @insoln
-
fix(sse): replace spoofable .includes() PromptQL issuer check… (#8042)
-
fix(sse): bound Codex SSE peek read with per-read timeout (#8043)
-
fix(cli): stop double-prefixing combo model ids in opencode… (#8047)
-
fix(antigravity): scope 404 model-not-found lockout to exact model +… (#8050) — @AndrianBalanescu
-
fix: repair pre-existing red gates on the release/v3.8.49 tip (#8055)
-
fix(oauth): honor connectionId on token refresh so email-less… (#8062) — @insoln
-
fix: classify Google quota exhaustion responses (#8071) — @rafaumeu
-
fix(providers): refresh duckduckgo-web catalog to current Duck.ai wire… (#8079)
-
fix(security): decouple request PII redaction from injection mode (#8102) — @RaviTharuma
-
fix(providers): discover live AGY models (#8123) — @adevwithpurpose
-
fix(guardrails): align INPUT_SANITIZER request masking gate (#8124) — @RaviTharuma
-
fix(providers): refresh Baidu ERNIE and Qianfan website URLs (#8128) — @TrackCrewGalore
-
fix(stream): add logging to empty catch blocks in stream error… (#8143) — @chirag127
-
fix(sse): stop Codex/Responses sanitizer turning system image_url… (#8147)
-
fix(db): register SIGHUP handler and stop force-killing server… (#8148)
-
fix(providers): add missing poe registry baseUrl entry (#8149)
-
fix(routing): anchor quota cache on globalThis for cross-chunk… (#8150)
-
fix(responses): close namespace round-trip for Responses-Chat… (#8151) — @RCrushMe
-
fix(oauth): warn instead of silently opening unreachable localhost… (#8152)
-
fix(db): stop closing the sql.js singleton in getDbInstance()… (#8153)
-
fix(sse): run compression pipeline per turn in Codex Responses WS… (#8154)
-
fix(cli): merge node bin dir into CLI healthcheck PATH for codex… (#8156)
-
fix(sse): anonymous fingerprint fallback for keyless Pollinations… (#8157)
-
fix(cli): surface the real spawn error in process supervisor (#8158)
-
fix: strip internal reasoning placeholder from user-visible… (#8162) — @Dingding-leo
-
fix(combos): expose synced reasoning-effort variants in Combo… (#8165) — @Dingding-leo
-
fix(windows): add windowsHide to all child process spawns (#8167) — @Dingding-leo
-
fix(cursor): bridge native tools to client calls (#8171) — @makcimbx
-
fix(security): bound JWT-extraction regexes to prevent polynomial… (#8173)
-
fix: log pending request counter decrement failures (#8179) — @rafaumeu
-
fix: suppress sql.js build warning via non-analyzable… (#8184) — @rafaumeu
-
fix: align INPUT_SANITIZER_ENABLED default to true across… (#8185) — @rafaumeu
-
fix(combo): skip remaining same-provider targets on 401/403 auth… (#8195) — @rafaumeu
-
fix(compression): make memo key model-independent for non-vision engines (#8196) — @rafaumeu
-
fix(resilience): add max/step to NumberField for provider cooldown inputs (#8203) — @rafaumeu
-
fix(providers): fix Azure AI Foundry multi-model discovery and… (#8206) — @not-knope
-
fix(logs): stop the async-EPIPE log-flood loop at its ignition… (#8207) — @Tasogarre
-
fix(sse): surface OpenRouter mid-stream error chunks instead of a… (#8210) — @hartmark
-
fix(sse): Gemini malformed function-call handling + tool_choice… (#8211) — @hartmark
-
fix(sse): tool-incapable provider handling (AI Horde + Responses… (#8212) — @hartmark
-
fix(sse): Gemini TPM/RPD quota classification + combo… (#8213) — @hartmark
-
fix(services): resolve and record a real pid when adopting a service (#8218) — @seanford
-
fix(memory): resolve remote embedding dimensions for reindex (#8220) — @Prudhvivuda
-
fix(dashboard): correct machine-translated Korean UI strings in ko.json (#8224) — @MichaelYcJo
-
fix(devin-cli): refresh shared model catalog (#8227) — @backryun
-
fix(claude-web): align session transport and fallback (#8230) — @backryun
-
fix: restore OAuth auto-refresh for gemini-cli connections (#8232) — @seanford
-
fix: normalize Codex URLs and dashboard regressions (#8233) — @nguyenha935
-
fix(api): narrow claudeClassifierCompat auto trigger so… (#8236)
-
fix(gemini): drop HARM_CATEGORY_CIVIC_INTEGRITY from the default… (#8238)
-
fix(backend): word-boundary-safe tool-result truncation in lite… (#8239)
-
fix(providers): filter unsupported family-fallback candidates against… (#8240)
-
fix(translator): synthesize tool call chunks from
response.completed… (#180 #3980) -
fix(api): Vercel Relay deploy now checks the Deployment… (#1037) — @ricatix
-
fix(oauth): resolve Kiro AWS SSO cache client credentials by… — @XCrag
-
fix(combo): streaming Claude responses whose content block opens… (#1382) — @heishen6
-
fix(codex): strip regex
patternlookaround (lookahead/lookbehind)… (#7100) — @evinjohnn -
fix(cli):
stopMitm()now removes /etc/hosts DNS-spoof entries… — @dionisius95 -
fix(sse): Cursor Composer/Auto tool calls that separate the arg… — @way-art
-
fix(dashboard): the "Custom Models" add/edit form now has a "Vision… — @nguyenphi37
-
fix(combos): fusion combos now reject an oversized panel (>40 models… — @fontvu
-
fix(providers): the OpenAI-compatible "Check" validation flow now… — @advane204f
-
fix(dashboard): include never-tested custom provider connections in the… — @fajarbossit
-
fix(executors): forward agent-supplied
X-Session-ID/X-Title… (#7104) — @chitholian -
fix(sse): Antigravity streaming requests that hit a non-ok… — @Duongkhanhtool
-
fix(providers): MiniMax Text-to-Image now works — a
minimax… — @felipeleite -
fix(cli): the runtime self-heal now verifies a cached… (#2493) — @mrprohack
-
fix(openai): strip
reasoning_effort/reasoningfor GPT-5.x models… — @techsolutionmta -
fix(providers): preserve relayAuth for… (#5716)
-
fix(providers): wire the Devin cloud-agent provider… (#6142)
-
fix(providers): refresh Baidu ERNIE + Qianfan provider website URLs to… (#6271) — @TrackCrewGalore
-
fix(providers): honor a provider-level proxy assigned… (#6272)
-
fix(api): merge tool_call continuation deltas that… (#6276)
-
fix(providers): modernize the
lmarenaprovider for the Arena.ai… (#6280) — @backryun -
fix(providers): web-provider model discovery updated — qwen-web uses… — @janeza2
-
fix(logs): the request-log detail modal no longer reopens by… — @xz-dev
-
fix(providers): update SenseNova Token Plan support — register the… — @xz-dev
-
fix(providers): give v0-vercel-web its own alias so its… (#6343)
-
fix(providers): route AgentRouter key validation… (#6377)
-
fix(db): stop legacy log-archive migration from…
-
fix(docs): document Turbopack build memory tradeoff and… (#6409)
-
fix(compression): surface silently-dropped…
-
fix(providers): honor the
max_tokencapability… (#6524) -
fix(dashboard): the onboarding tier-flow diagram rendered broken — its… — @ianriizky
-
fix(routing): the
autocombo's no-auth candidate pool now honors a… (#6557) -
fix(sse): server-tool literal names (e.g.
web_search) are… — @MikeTuev -
fix(sse): sanitize non-Latin1 characters before… (#6612)
-
fix(api): recognize OpenRouter… (#6623)
-
fix(db): share one in-flight sql.js load across… (#6628)
-
fix(db): unwrap lone named-parameter objects before… (#6802)
-
fix(db): break probe-failed/restore loop on large storage.sqlite: (#6632 ). — @KooshaPari
-
fix(ci): exclude check-test-masking.test.ts's own… (#6634)
-
fix(routing): recognize Kimi-style "exceeded model… (#6637)
-
fix(cli): Claude Code installed via WinGet is now detected on… — @enjoyer-hub
-
fix(providers): removed obsolete/defunct providers from the catalog… — @backryun
-
fix(sse): requests rejected before
handleChatCore… (#6698) -
fix(providers): reject chat-completions requests for… (#6699)
-
fix(sse): unwrap bare
{function:{…}}tools so OpenAI-shape… — @samir-abis -
fix(oauth): stop merging distinct Codex OAuth logins that share an… — @lucasjustinudin
-
fix(codex): detect "model at capacity"/overloaded errors embedded… — @ryanngit
-
fix(volcengine): clamp
max_tokensto the VolcEngine Ark endpoint cap… — @whale9820 -
fix(antigravity): surface aborted/malformed Gemini tool calls (e.g.… — @anhdiepmmk
-
fix(routing): the reasoning-token headroom buffer clamps to the… (#6714) — @xz-dev
-
fix(api):
omniroute health(andhealth components/`health… (#6677 #6717) -
fix(startup): webpack build broke on case-insensitive filesystems… (#6718)
-
fix(build): Turbopack production build emitted an "Overly broad… (#6582 #6720)
-
fix(providers): Codex Desktop requests to
gpt-5.3-codex-sparkfailed… (#6651 #6721) — @alltomatos -
fix(providers): the provider quota card's weekly/session bars re-sorted… (#6687 #6722)
-
fix(i18n): pt-BR was missing 194 UI keys present in
en.json— a… (#6695 #6723) -
fix(startup):
omniroute --mcpcrashed at Node ESM link time with… (#6559 #6725) -
fix(providers): Kiro sent the adaptive-thinking… (#6576 #6726)
-
fix(translator): Cursor's local Subagent tool call is no longer… — @like3213934360-lab
-
fix(translator): GLM 5.2 (and other OpenAI-compatible upstreams that… — @itiwant
-
fix(resilience): OmniRoute didn't respect an exhausted Ollama Cloud (or… (#6638 #6731)
-
fix(resilience): a combo step "pinned" to one fingerprint account… (#6696 #6732)
-
fix(api): Responses passthrough emitted event-only SSE frames (no… (#6561 #6735)
-
fix(compression):
/api/compression/preview's top-level… (#6488 #6741) -
fix(resilience): account selection could pick an account already out of… (#6686 #6742)
-
fix(api):
reasoning_content(extended-thinking text) was… (#6662 #6743) -
fix(api): the compression config PUT schema now accepts… — @alltomatos
-
fix(api): raised the provider
apiKeylength cap for… — @alltomatos -
fix(routing): fusion combos no longer silently drop
combo-refpanel… (#6764) -
fix(ci): publish electron-updater
latest*.yml… (#6766) -
fix(i18n): translate hardcoded Portuguese dashboard strings to English (#6761, #6768): (#6769 ). — @chirag127
-
fix(providers): strip redundant node prefix when… (#6772)
-
fix(providers): scope nvidia NIM 404s to the single… (#6773)
-
fix(codex): bump the default Codex CLI client identity from… (#6780) — @quanturbo
-
fix(ci): the blocking "Impacted unit tests (TIA)" step… (#6788)
-
fix(translator): read PDF/video
file_dataattachments on the… — @Witroch4 -
fix(providers): ensure DeepSeek Web SSE emits [DONE] after FINISHED: (#6791 ). — @Pitchfork-and-Torch
-
fix(api): the compression config
PUTschema… — @Pitchfork-and-Torch -
fix(electron): materialize Turbopack hashed-module symlinks during packaging (#6724, #6594): (#6794 ). — @huohua-dev
-
fix(cursor): send the Agent CLI build id as… — @andrewmunsell
-
fix(cli): waitForServer() no longer reports ready from… (#6800)
-
fix(sse): de-flake timing-sensitive combo… (#6803)
-
fix(codex): strip include from compact responses requests: (#6805 ). — @yinaoxiong
-
fix(dashboard): surface Claude extraUsage credits in… (#6806)
-
Request count by provider & date: Dashboard → Analytics now shows a dedicated table of… (#6812) — @tjengbudi
-
fix(resilience): an Ollama Cloud (or any apikey-category provider)… (#3709 #6817)
-
fix(providers): an explicit
thinking.budget_tokens: 0is now honored… — @alltomatos -
fix(bootstrap): filter empty
process.envvalues before spawning… — @AndrianBalanescu -
fix(providers): classify upstream
404responses asMODEL_NOT_FOUND… — @AndrianBalanescu -
fix(db): cap the sql.js OOM-during-probe path in… (#6632 #6835)
-
fix(mcp): de-duplicate
TOTAL_MCP_TOOL_COUNTby tool… (#6854) -
fix(usage): xAI's exact provider-reported
cost_in_usd_ticksno… (#6856) — @KooshaPari -
fix(plugin): the
@omniroute/opencode-plugindynamic provider hook… (#6859) -
fix(sse): apply cliproxyapiModelMapping at CLIProxyAPI… (#6876)
-
fix(sse): defer
response.completeduntil a trailing… (#6906) -
fix(cli): ship
head-response-guard.cjsinto the standalone… (#6908) -
fix(sse): wire the shared quota-fetch throttle into… (#6911)
-
fix(sse): rename client-sent
max_completion_tokensto… (#6912) -
fix(providers):
PROVIDER_LIMITS_SYNC_SPACING_MSnow… (#6916) -
fix(sse): classify LAN embeddings providers (10/8,… (#6925)
-
fix(sse): Qwen Web executor no longer sends `[object… (#6927)
-
perf(api): relay chat-completions routes now thread the… (#6930)
-
fix(sse):
normalizeCodexMessageContentPartnow… (#6932) -
fix(sse): omit removed
attachmentsfield from Muse… (#6935) -
fix(dashboard): label audio/embeddings/image compatible… (#6936)
-
fix(api): model-list discovery for LAN-local… (#6939)
-
fix(providers):
openai->geminitransform now maps… (#4170) — @rafaumeu -
fix(sse): escape backslash before brackets in ChatGPT-web… (#6944) — @brick30llc-ctrl
-
fix(oauth): tokenHealthCheck now lowercase-normalizes… (#6947)
-
fix(sse): make Codex Responses tool-arg normalization… (#6951)
-
fix(sse): drop internal commentary-phase Responses… (#6952)
-
fix(sse): stop forwarding empty-signature thinking… (#6953)
-
fix(sse):
perplexity-web's defaultpplx-auto/pplx-sonar… — @artickc -
fix(combos): embeddings-only and rerank-only models (e.g. JinaAI,… (#6975)
-
fix(combos): when 2+ distinct model ids from the same provider would… (#6957)
-
fix(dashboard): the combos builder now hides provider connections the… — @attid
-
fix(providers): cap grok-cli tools at 200 per request, matching xAI's… — @gitcommit90
-
fix(providers): DuckDuckGo AI Chat executor propagates… (#6996)
-
fix(providers): refresh OpenCode (
oc) free-tier model… (#6998) -
fix(api): raise the main server's… (#7003)
-
fix(compression): wire the adaptive context-budget… (#7005)
-
fix(usage): stop opencode-go quota lookup from… (#7022)
-
fix(providers): Auggie (Augment CLI) model registry updated to the real… — @oyi77
-
fix(ci): add a dashboard-scoped typecheck gate covering… (#7033)
-
fix(cli):
omniroute dashboard(no--portflag) now respects… — @kaon0388v1 -
fix(build): extend the Turbopack
ignoreIssue… (#7051) -
fix(providers): web-cookie… (#7058)
-
fix(resilience): recognize Ollama Cloud's 5-hour… (#7071)
-
fix(dashboard): restore mobile single-column fallback… (#7072)
-
fix(dashboard): include proxyId when testing a saved… (#7080)
-
fix(sse): xiaomi-tokenplan
mimomodels (e.g.mimo-v2.5-pro)… (#7098) — @xxue-z -
fix(dashboard): align onboarding tier descriptions and localize the… (#7125) — @Wibias
-
fix(sse): claude-web now surfaces the real upstream error body… (#7134)
-
fix(db): honor combo-level proxy assignments from the… (#7149)
-
fix(dashboard): wire modelAliases fetch into… (#7151)
-
fix(dashboard): filter hidden custom models out of the… (#7156)
-
fix(dashboard): Agent Bridge DNS toggle now sends POST… (#7157)
-
fix(dashboard): implement missing
handleToggleSource… (#7161) -
fix(sse): stop duplicating text in Gemini Web streamed… (#7163)
-
fix(executors): Codex Responses Lite requests force serial tool calls… (#7171) — @fenix007
-
fix(translator): preserve Gemini thinking-mode
thought:trueparts as… — @warelik -
fix(translator): register the missing OpenAI→Gemini response projection… — @warelik
-
fix(cli):
omniroute --versionnow fast-paths before the tsx/esm… — @Jordannst -
fix(ci): build dast-smoke and nightly API-only smoke… (#7226)
-
api: bulk-add API keys no longer overwrite existing provider… — @asynx6
-
fix(sse): feed the compression pipeline the… (#7237)
-
fix(sse): route the public OpenAI GPT-5.6 family (
gpt-5.6,… — @Jordannst -
fix(providers): honor a configured proxy on Grok Build egress — the… — @ryanngit
-
fix(nvidia): expand NIM chat model catalog with newly-observed… — @spacesky-cell
-
fix(sse): synthetic bypass responses for Claude-format clients no… — @KunN-21
-
fix(build): isolate Windows HOME/AppData during next build. (thanks… — @KunN-21
-
fix(dashboard): providers model-name filter now matches… (#7250)
-
fix(docs): correct stale
/api/versionand… (#7253) -
fix(sse): project non-streaming JSON responses back to… (#7255) — @warelik
-
fix(i18n): treat
__MISSING__:sync-script… (#7258) -
fix(authz): classify /api/cli-tools/forge-settings and… (#7263)
-
fix(sse): lazy-load playwright in claudeTurnstileSolver… (#7265)
-
fix(sse): stop logging a caller-initiated request abort/timeout… — @TuyulSpam
-
fix(sse): classify 401 "model X is not supported" as… (#7268)
-
fix(dashboard): resolve `ReferenceError: t is not… (#7272)
-
fix(cli): Windows MITM root-CA check/uninstall keyed… (#7275)
-
fix(cli): reuse cliRuntime's win32-aware… (#7279)
-
fix(dashboard): connection Test surfaces a rate-limit… (#7284)
-
fix(sse): combo failover now detects OpenAI-shape… (#7285)
-
fix(db):
getDbInstance()now guarantees sql.js WASM has… -
fix(sse): split effort/reasoning suffix off pinned… (#7289)
-
fix(sse): hoist client-injected
systemmessages to… (#7293) -
fix(sse): treat Uint8Array/Buffer as opaque binary in… (#7297)
-
fix(cli): load DATA_DIR/server.env as a fallback for… (#7302)
-
fix(rerank): Honor the connection's pinned proxy on rerank calls, so… (#7350) — @kamenkadmitry
-
fix(electron): Normalize hashed Turbopack external imports in packaged… (#7353) — @tianrking
-
fix(chatgpt-web): recognize
update_content.messages[]… (#7357) -
fix(sse): clamp glm-4.6v max_tokens to the 32768… (#7364)
-
fix(sse): honor per-model targetFormat override for… (#7364)
-
fix(sse): combo session stickiness now releases a… (#7387)
-
fix(cli): log Codex Responses WebSocket history/usage… (#7388)
-
fix(embeddings): remove the non-existent… — @kamenkadmitry
-
fix(providers): expose a base-URL override for… (#7447)
-
fix(build): align
engines.nodesupported range… (#7446) -
fix(i18n): replace machine-bulk-filled Vietnamese UI… (#7493)
-
fix(db): stop closing the single sql.js singleton… (#7494)
-
fix(sse): stop stream readiness from treating a… (#7503)
-
Fixed the Codex connection Test button always… (#7521)
-
The Codex account import (`POST… (#7522)
-
The PKCE OAuth start… (#7523)
-
fix(providers): search providers now expose a static… (#7529)
-
fix(sse): map
tool_searchto a Chat function tool… (#7532) -
fix(sse): gate
verbosity/prompt_cache_keyon OpenAI… (#7533) -
fix(api): Usage page "by provider" table now shows the… (#7534)
-
fix(api): Usage page "model usage" table no longer… (#7535)
-
fix(codex): non-stream Codex (ChatGPT-account) chat no… (#7536)
-
fix(sse): preserve
input_imageparts in array-valued Codex… (#7540) — @loulanyue -
fix(providers): stop reporting Arena (lmarena) cookie… (#7542)
-
fix(combo): streaming combo failover now fails over when an… (#7545) — @Chewji9875
-
fix(dashboard): Public and managed tunnel endpoints now take precedence… (#7547) — @nguyenha935
-
fix(claude-web): unify Turnstile solver, executor and… (#7548)
-
fix(cli): fall back to the node:sqlite driver cascade… (#7586)
-
fix(api): expose Responses-API-format (OpenAI/Codex)… (#7587)
-
grok-cli: OAuth paste-import now requires the full… (#7610)
-
fix(sse): proactively refresh Grok Build's expiring… (#7610)
-
grok-cli: sanitize Responses
function_call_output.outputvalues… (#7611) -
fix(translator): guard against double-emission when
response.completed… -
fix(routing): strip
prompt_cache_keyfor NVIDIA NIM —… (#7617) -
fix(routing): honor eye-icon hidden models for no-auth… (#7620)
-
fix(providers): correct Chutes registry baseUrl from… (#7621)
-
fix(providers): unify connection status across… (#7629)
-
fix(providers): classify Mistral ambiguous 401 (quota… (#7638)
-
fix(sse): route CLIProxyAPI fallback/passthrough legs… (#7645)
-
fix(packaging): move fumadocs-mdx from dependencies to… (#7661)
-
GET /api/combos/auto now enumerates template variants…
-
fix(sse): persist rotated Gemini web-session cookies… (#7676)
-
fix(dashboard): mirror connection-row action-icon… (#7680)
-
fix(cli): split
outboundUrlGuard.ts's DB/feature-flag… (#7682) -
fix(sse): wire settings.wildcardAliases into model… (#7693)
-
fix(mcp): copy undici into dist/node_modules to prevent… (#7701)
-
fix(translator): sanitize
tool_result.tool_use_idsymmetrically with… (#7705) -
fix(db): bulk proxy imports now update an existing proxy when… (#7707) — @floze-the-genius
-
fix(oauth): stop Codex OAuth completion from collapsing… (#7737)
-
fix(db): purge in-memory API-key health/rotation state… (#7740)
-
perf(db): the 5 provider-connection/node call sites 's IC2… (#7787 #7744) — @oyi77
-
fix(compression): CCR no longer collapses a whole… (#7746)
-
fix(sse): strip orphaned tool_use blocks before… (#7752)
-
fix(cli): resolve Windows CLI detection false negatives…
-
fix(dashboard): keep session/weekly quota rows in a… (#7764)
-
fix(db): log the fatal boot-time SQLite driver-cascade… (#7773)
-
fix(sse): Claude-Code-compatible bridge (AgentRouter and any CC… (#7777) — @beingshafin
-
perf(db):
getProviderConnectionsnow reads from a shared… (#7787) — @oyi77 -
fix(docs): document CREDENTIAL_REDACTION_ENABLED and… (#7793)
-
fix(combo): retry intermediate pipeline-strategy steps… — @AndrianBalanescu
-
fix(docker): repair tls-client-node native binary after… (#7802)
-
fix(runtime): Apply refreshed request-queue settings, restore… (#7812)
-
fix(oauth): attempt Antigravity onboarding inline when… (#7814)
-
fix(api): add amazon-q to the static model catalog so… (#7820)
-
fix(sse): preserve parallel_tool_calls for GPT-5.6… (#7821)
-
fix(quality): tolerate ESLint's trailing… (#7837)
-
fix(test): widen ratelimit-admission pollUntil deadline… (#7842)
-
fix(cli): Windows
omniroute dashboardbrowser fallback uses… (#7844) -
fix(dashboard): Request Logs detail modal no longer… (#7845)
-
fix(backend): stop
buildClientRawRequestdeep-cloning… (#7847) -
fix(sse): copy the combo attempt body shallowly instead… (#7847)
-
fix(sse): estimate the combo fallback-compression… (#7847)
-
fix(providers): Copilot reasoning_text now surfaces in… (#7856)
-
fix(providers): treat a non-401/403 response from the… (#7857)
-
fix(providers): copilot-m365-web now fails loudly on a…
-
fix(providers): Gemini Web connection test now accepts… (#7859)
-
fix(cli): translate missing better-sqlite3 native… (#7868)
-
fix(auth): restore
HEALTHCHECK_BATCH_SIZEenv-var… (#7875) -
fix(opencode-plugin): the official
@omniroute/opencode-pluginnow accepts… (#7884) — @RaviTharuma -
fix(dashboard): Provider Quota cutoff inputs preserve unsaved values… (#7889)
-
fix(sse): Anthropic requests that reject a completed historical… (#7906)
-
Chat Core: client aborts that reject the upstream fetch with a raw…
-
fix(resilience): Client-aborted requests are now treated as client… (#7907)
-
fix(cli): spawn the win32
opencode.cmdshim with… (#7913) -
fix(dashboard): correct "Block extra Claude usage"… (#7918)
-
fix(autostart): Windows auto-start no longer flashes a console window —… (#7925)
-
fix(providers): perplexity-web now detects the… (#7930) — @artickc
-
fix(sse): parse Gemini 429 RetryInfo.retryDelay /… (#7940)
-
fix(electron): resolve macOS Helper by binary name to… (#7941)
-
fix(providers): iFlytek Spark (
iflytek,sparkdesk) now target the… (#7942) — @FenjuFu -
fix(api): classify
/api/acp/agentsas loopback-only… (#7948) -
fix(cli): stop double-prefixing combo model ids in the… (#7976)
-
fix(providers): route noauth opencode-zen connections… (#7993)
-
fix(providers): refresh duckduckgo-web free model… (#8000)
-
fix(providers): repoint the zai-web executor at… (#8014)
-
fix(sse): bound the Codex SSE peek/passthrough body… (#8020)
-
fix(sse): replace spoofable
.includes()PromptQL… (#8029) -
fix(providers): path-shaped multimodal model ids (e.g.… (#8032) — @Prudhvivuda
-
fix(cli): merge Node's own bin dir into the CLI… (#8036)
-
fix(sse): Bound forwarded upstream response headers so large… (#8041) — @insoln
-
fix(db): register SIGHUP handler and stop force-killing… (#8045)
-
fix(oauth): warn instead of silently opening an… (#8046)
-
fix(sse): run the prompt-compression pipeline per turn in the… (#8052)
-
fix(oauth): Refreshing the token on an email-less OAuth connection… (#8059)
-
fix(routing): anchor quota routing cache on globalThis… (#8065)
-
fix(providers): add the missing
poeREGISTRY entry so built-in Poe… (#8082) -
fix(translator): set
status: "completed"on… (#8083) -
fix(sse): give keyless Pollinations image requests the… (#8085)
-
fix(sse): stop Codex/Responses sanitizer from turning… (#8089)
-
fix(cli): surface the real spawn error… (#8091)
-
fix(antigravity): preserve request/tool fidelity, make credits modes… (#8098) — @nguyenha935
-
fix(dashboard): clamp provider-cooldown min/max ms to… (#8107)
-
fix(providers): filter unsupported family-fallback… (#8134)
-
fix(providers): classify HTTP 400 model-unavailable as… (#8136)
-
fix(backend): word-boundary-safe tool-result truncation… (#8169)
-
fix(api): narrow claudeClassifierCompat auto trigger so… (#8189)
-
fix(providers): carve cookie-auth providers out of… (#8200)
-
fix(gemini): drop HARM_CATEGORY_CIVIC_INTEGRITY from… (#8231)
-
fix(dashboard): Normalize Codex client URLs, restore the analytics… (#8233) — @nguyenha935
-
fix(providers): classify per-model-quota 403 and…
-
fix(providers): reconcile Kimi K3 vision metadata when synced… (#8250) — @Prudhvivuda
-
fix(providers): the Providers page Learn more button now opens the… (#8284) — @KaynXu
-
fix(api): fold namespace into the flattened Chat tool… (#8295)
-
fix(runtime): sanitize Muse Spark fetch failures before logging and… (#8298) — @backryun
-
fix(sse): Combo middleware preserves OpenAI Responses request… (#8310) — @ridho9
-
fix(api): accept the current compatible-provider… (#8326)
-
fix(api): stop leaking the internal provider UUID in… (#8327)
-
fix(dashboard): show custom provider_nodes providers in… (#8328)
-
fix(api): stop the 2000-token safety buffer from… (#8331)
-
fix(backend): keep combo routing from dispatching image… (#8332)
-
fix(sse): strip third-party-agent signals from the… (#8350)
-
fix(i18n): Restore brand/model proper nouns (Claude, OpenAI,… — @ikelvingo
-
fix(api): estimate inline base64 image tokens instead… (#8368)
-
fix(backend): stop prompt-cache affinity from silently… (#8370)
-
fix(api): accept a missing status query-param on GET… (#8374)
-
fix(resilience): treat an unreachable-proxy… (#8376)
-
fix(backend): make disabling the global per-key proxy… (#8385)
-
fix(dashboard): persist compression engine detail… (#8388)
-
fix(plugins): fire registered+active plugin hooks… (#8395)
-
fix(resilience): cap the connection cooldown after a… (#8396)
-
fix(api): reach synced model_capabilities rows for… (#8429)
-
fix(providers): stop marking a multi-quota-window… (#8431)
-
fix(backend): compute AgentBridge diagnose… (#8466)
-
fix(providers): OpencodeExecutor honors Extra API Keys rotation via… (#8467) — @Prudhvivuda
-
fix(sse): stop combo's "all targets failed" response… (#8486)
-
fix(backend): capability filters fail closed when every combo target… (#8488) — @Prudhvivuda
-
fix(providers): persist a runtime-discovered… (#8491)
-
fix(cli):
backup create/backup auto enable—… (#8512) -
fix(dashboard): Endpoint/API base URL display honors… (#8514) — @rqzbeh
-
fix(client): Absolute
fetch("/api/...")and… (#8515) — @rqzbeh -
fix(cli): create
~/.cache(and setXDG_CACHE_HOME)… (#8519) -
fix(api): surface a non-blocking warning + startup scan… (#8530)
-
fix(kiro): support profileless Builder ID quota, preserve CLI auth… (#8565) — @nguyenha935
-
fix(test): isolate
context-managerunit tests on a… (#8568) -
fix(quality):
check:file-size --updatenow removes baseline entries… (#8589) — @MumuTW -
fix(sse): restore Task-Aware Routing config from… (#8604) — @MumuTW
-
fix(sse): task-aware routing defaults use
auto/*intents… (#8605) — @MumuTW -
fix(providers): keep registered OpenCode Go effort aliases in the… (#8610)
-
fix(resilience): report local request-queue expirations as… (#8613)
-
fix(docker): Honor
OMNIROUTE_BASE_PATHbehind reverse-proxy… (#8615) — @DinonowDev -
fix(resilience): recover a wedged local request limiter after an… (#8616)
-
fix(providers): Kimi Coding billing-cycle quota errors now recover… (#8632) — @glazec
-
fix(oauth): show GitLab Duo OAuth app / env setup instructions in… (#8688)
-
fix(sse): combo compression-limit resolution falls back to… (#8716) — @DinonowDev
-
fix(db): fall back to Node's built-in SQLite driver when… (#8724) — @epsilonode
-
fix(resilience): keep missing request resources such as Files API ids… (#8756) — @wilsonicdev
-
fix(api):
GET /v1/modelsno longer rebuilds the whole catalog… (#6408 #8833) -
GHE Copilot: OpenAI-native models now route to
<gheUrl>/responses… (#8835) — @hppsc1215 -
CLI:
omniroute launchno longer truncates pass-through… (#8837) — @sumanxg -
Providers: Codex GPT-5.6 Sol/Terra/Luna report the current… (#8838) — @TitoTFP
-
Antigravity: a token refresh now recovers a missing
projectId… (#8842) — @HouMinXi -
CI:
check:tracked-artifactsraises thegit ls-files… (#8844) -
OAuth:
ANTIGRAVITY_OAUTH_CLIENT_TYPE=weblets a remote… (#8845) — @HouMinXi -
fix(executors): Vertex AI now routes current-generation Claude models… (#8852) — @wgordon17
-
CLI:
omniroute launch-codexno longer corrupts the codex… (#8856) — @sumanxg -
Providers: AGY model sync now discovers newly announced chat…
-
fix(security): bound JWT-extraction regexes in…
-
Fixed every non-streaming Codex (ChatGPT-account) chat…
-
Logging: a broken stdout/stderr pipe no longer drives a… (#8181)
-
docs: correct three stale references caught by the…
-
Fix the Turbopack
next buildbreaking with "Module… -
Fix
mitm-dnsConfigunit tests failing when the suite… (#6122) -
muse-spark-web: the WebSocket 401 auth-failure message…
-
Harden the Notion web provider thread-session cache…
-
fix(security): OIDC login gate now requires…
-
Build: the packed tarball boots again — #7191's…
-
Packaging: new
check:pack-bootgate packs the real npm tarball,… -
Packaging: pack-artifact closure tests now cover EVERY npm-shipped…
-
fix(cli): CLI detection now refreshes stale cached results,…
-
fix(docker): Podman deployment guidance now distinguishes local… (#8497)
-
fix(ui): Theme React Flow controls correctly in dark mode,…
-
fix(plugins): the generated plugin host script is now deleted…
-
fix(compression): the Headroom SmartCrusher tabular-compaction guard now… — @SingCJ
-
Skills: register
cli-skill-collectorin the agent-skills… -
fix(responses): Make Responses API to Chat Completions downgrades…
-
fix(stream): Responses API clients (
/v1/responses) no longer… (#4633) -
fix(security): bump adm-zip to ^0.6.0 (dev transitive…
-
chore(deps): bump fast-uri≥3.1.3, hono≥4.12.27,…
-
chore(deps): bump dompurify≥3.4.12,…
-
fix(quality): register the two covering unit tests…
-
fix(auth): restore the TICK_MS constant dropped by…
-
fix(guardrails/chat): do not whole-request-reroute…
-
Providers: yuanbao-web no longer forwards a foreign single cookie…
-
Antigravity: the shared token-refresh service now recovers a missing… (#8860) — @HouMinXi
-
Adobe Firefly:
gpt-imagerequests now defaultdetailLevelto… (#8863) — @artickc -
Combos: deleting a provider connection now clears the combo… (#8865) — @HouMinXi
-
Auto routing:
auto/<family>combos (auto/glm,auto/gemini,… (#8866) — @rafaeldrincon -
fix(oauth): wire Test Connection for xAI OAuth (
xai-oauth/… (#8862) — @allanvb -
Logs: a failed
auto/<family>request no longer writes every… (#8867) — @rafaeldrincon -
fix(usage): correct token/request counting for 30D/90D/YTD/ALL… (#7300) — @growab
-
fix(notion-web): use Chrome TLS impersonation for runInferenceTranscript (#8159) — @artickc
-
fix(bifrost): send v-prefixed transport version, not bare semver (#8194) — @seanford
-
fix(resilience,translator): three release/v3.8.49 base-red regressions + eslint… (#8254)
-
fix(sse): export PROVIDER_BREAKER_FAILURE_STATUSES — fix… (#8258)
-
fix(providers): limit Gemini CLI to legacy OAuth refresh (#8275) — @backryun
-
fix(cli): resolve claude.cmd on Windows in omniroute launch (#8283) — @Dingding-leo
-
fix(resilience): skip terminal connections in token health check sweep (#8286) — @Dingding-leo
-
fix(sanitizer): strip zero-width chars from Anthropic-native streaming… (#8287) — @Dingding-leo
-
fix(i18n): re-sync and complete es-ES translations with latest… (#8289) — @Dragost
-
fix(antigravity): add missing gemini-3.6-flash pricing rows to ag OAuth… (#8290) — @HouMinXi
-
fix(dashboard): stop sidebar RSC prefetch storms (#8292) — @RaviTharuma
-
fix(backend): add structure-aware chat admission (#8296) — @RaviTharuma
-
fix(providers): adapt Kimi nonstream requests internally (#8302) — @RaviTharuma
-
fix(mcp): keep POST SSE responses uncompressed (#8303) — @RaviTharuma
-
fix(api): enforce image generation API key auth (#8306) — @fenix007
-
fix(cpa): isolate credential-pool failures (#8308) — @RaviTharuma
-
fix(sse): suppress by default on Chat Completions (#8309) — @Prudhvivuda
-
fix(translator): cap thinking budget on explicit budget_tokens path (#8312) — @HouMinXi
-
fix(providers): classify HTTP 400 model-unavailable as MODEL_NOT_FOUND… (#8319)
-
fix(providers): carve cookie-auth providers out of terminal 401… (#8321)
-
fix(api): fold namespace into the flattened Chat tool name so… (#8322)
-
fix(providers): route noauth opencode-zen connections through their… (#8324)
-
fix(security): remove quadratic trailing-slash trim in Alibaba… (#8333)
-
fix(memory): self-heal upsertVector/deleteVector from a raced… (#8337) — @hartmark
-
fix(sse): stop stripInternalReasoningPlaceholder from eating… (#8341) — @hartmark
-
fix(compression): rank codex-responses in adaptive-ladder maps (#8381)
-
fix(sse): gate reasoning-placeholder strip to chunks that contain… (#8382)
-
fix(resilience): terminal-skip spares the recoverable GitHub Copilot… (#8389)
-
fix(sse): re-export PROVIDER_BREAKER_FAILURE_STATUSES for the… (#8390)
-
fix(sse): family auto-combos include any backend that serves the… (#8391)
-
fix(sse): cap exact cooldowns only when synthetic — verified… (#8393)
-
fix(devin-cli): update ACP JSON-RPC protocol for Devin CLI 3000.2.x… (#8425) — @MumuTW
-
fix(auth): exclude local CLI providers from tokenHealthCheck… (#8426) — @MumuTW
-
fix(oauth): add devin-cli and agy entries to OAUTH_TEST_CONFIG (#8427) — @MumuTW
-
fix(dashboard): preserve connection health visual on last routed… (#8428) — @MumuTW
-
fix(cursor): bridge native TodoWrite completions (#8432) — @makcimbx
-
fix(guardrails): Vision Bridge describe-fallback ignores unreachable… (#8433) — @guhcostan
-
fix(sse): record tool calls into shared state for… (#8462) — @hartmark
-
fix(oauth): actionable guidance for LAN-origin loopback mismatches… (#8463)
-
fix(hyperagent): sticky thread for agentic tool loops (Claude Code) (#8470) — @artickc
-
fix: combo input-bound, Responses->Chat image strip,… (#8476) — @herjarsa
-
fix(sse): call the real abort-signal helper in the Gemini… (#8485) — @backryun
-
fix(providers): honor Extra API Keys rotation in OpencodeExecutor (#8493) — @Prudhvivuda
-
fix(backend): fail closed when capability filters empty the combo pool (#8494) — @Prudhvivuda
-
fix(providers): resolve native vision for path-shaped multimodal model… (#8495) — @Prudhvivuda
-
fix(hyperagent): default 1M context for fable/opus/sonnet (#8496) — @artickc
-
fix(notion-web): mint fresh thread for new OpenAI sessions with same… (#8511) — @artickc
-
fix(db): classify compressionDetailNormalizers as db-internal in… (#8534) — @MumuTW
-
fix(sse): label HTTP 499 disconnects as client_disconnected (#8552) — @DinonowDev
-
fix(resilience): honor comboCooldownWait for every combo strategy (#8559) — @DinonowDev
-
fix(backend): add error.code to synthOpenAIErrorChunk for guard… (#8570) — @marceli1404
-
fix(video): validate Veo AI Free artifacts before success (#8581) — @brunnolouzada
-
fix(routing): exclude locked-out models from auto-combo candidates (#8586) — @Prudhvivuda
-
fix(api): prevent silent lost updates on concurrent settings… (#8587) — @Prudhvivuda
-
fix(auto-combo): short-circuit expandAutoComboCandidatePool when… (#8598) — @mikeiagents
-
fix(auth): tag internal/loopback-origin failed logins in the audit… (#8606) — @Prudhvivuda
-
fix(providers): declare explicit OpenCode plugin feature-flag defaults (#8608) — @Prudhvivuda
-
fix(ci): use webpack fallback for Node 26 compat build to stop… (#8611) — @Prudhvivuda
-
fix(claude): classify native subscription quota 429 (#8628) — @costaeder
-
fix(windows): request shell when spawning bare qoder binary name on… (#8633) — @Dingding-leo
-
fix(middleware): declare withInjectionGuard's context parameter optional (#8644) — @backryun
-
fix(providers): handle space-separated search queries via… (#8660) — @maxmad64bis
-
fix(dashboard): broken icon allignment in
SegmentedControl.tsx(#8679) — @0x2f0 -
fix(providers): deprecate Monster API provider (fixes #8676) (#8691) — @Dingding-leo
-
fix(quality): register the #8494 covering test in stryker… (#8692)
-
fix(sse): clamp max_tokens to the model output cap on every path (#8698)
-
fix(executors): pass TimeoutError reason to controller.abort() in 7… (#8699)
-
fix(api): serve /v1/models stale-first and sanitize its error… (#8703)
-
fix(sse): stop thrashing the provider prompt cache for… (#8705)
-
fix: repair five base-red failures on release/v3.8.49 (#8706)
-
fix(oauth): show GitLab Duo setup before authorize error (#8710) — @DinonowDev
-
fix: hydration mismatch, duplicate React keys, and missing… (#8723) — @Mananz90
-
fix(sse): hide synthetic OpenAI startup reasoning (#8729) — @rinseaid
-
fix(guardrails): check feature flag helper in PIIMasker to honor DB… (#8730) — @Dingding-leo
-
fix(sse): report a stream that completes without any content (#8732) — @backryun
-
fix(plugins): delete the generated host script synchronously so… (#8749) — @MumuTW
-
fix(sse): update ANTHROPIC_PING heartbeat data payload to… (#8762) — @Dingding-leo
-
fix(cloudflare-ai): sync missing free catalog models (fixes #8725) (#8763) — @Dingding-leo
-
fix(bedrock): preserve additionalModelRequestFields in converse… (#8764) — @Dingding-leo
-
fix(docs): use correct kebab-case CLI flags in OpenCode guide… (#8766) — @swingtempo
-
fix(db): repair the extra-migration-dirs test and env contract… (#8773)
-
fix(electron): use NEXT_DIST_DIR when stripping stale native modules (#8794) — @NBN-N3
-
fix(resilience): add UND_ERR_SOCKET to PROXY_UNREACHABLE_ERROR_CODES (#8795) — @Dingding-leo
-
fix(combo): fail open when strict context filter empties… (#8798) — @DinonowDev
-
fix(resilience): honor Cloudflare 1010 retryable:false — skip… (#8800) — @DinonowDev
-
fix(dashboard): restore Usage Model Breakdown column sorting (#8802) — @DinonowDev
-
fix(api): treat cx/* and codex/* as equivalent API-key model… (#8805) — @Prudhvivuda
-
fix(sse): pass real response payload into plugin onResponse hooks (#8806) — @Prudhvivuda
-
fix(types): export web executor types from their module (#8810) — @backryun
-
fix(types): preserve reasoning policy record shapes (#8811) — @backryun
-
fix(types): preserve compression detail config shapes (#8812) — @backryun
-
fix(types): declare virtual chaos combo config (#8815) — @backryun
-
fix(types): type memory skills injection logger (#8816) — @backryun
-
fix(types): align web fallback contracts (#8819) — @backryun
-
fix(types): declare idempotency input contracts (#8820) — @backryun
-
fix(reasoning): sanitize streamed K3 think tags (#8821) — @rinseaid
-
fix(types): normalize Kie transcription results (#8824) — @backryun
-
fix(dashboard): surface quota pool delete failures instead of failing… (#8829)
-
fix(autoCombo): normalize -free suffix in task fitness lookups (#8636) — @Dingding-leo
-
fix(sse): split the reasoning-decision guards so the error arm… (#8641) — @backryun
-
fix(openai-to-claude): skip empty reasoning_content string deltas (#8642) — @Dingding-leo
-
fix(autoCombo): match longest pattern first in lookupStaticFitnessTable (#8651) — @Dingding-leo
-
fix(providers): sync search query to URL query param (#8652) — @Dingding-leo
-
fix(maritalk): refresh supported model catalog (#8663) — @backryun
-
fix(agentSkills): scope command slice before nested subcommands to… (#8667) — @Dingding-leo
-
fix(guardrails): ensure request PII masking respects DB feature flag… (#8715) — @Dingding-leo
-
fix(reasoning): sanitize Kimi Code K3 think tags (#8721) — @rinseaid
-
fix(sse): clamp out-of-range Gemini thinking_budget and learn the… (#8726) — @fuko2935
-
fix(providers): support multi-token search in provider filter (#8731) — @Dingding-leo
-
fix(api): stop JSON.stringify-ing messages before estimateTokens… (#8740)
-
fix(quality): let --update remove baseline entries that already fit… (#8741) — @MumuTW
-
fix: escape angle brackets in i18n messages to prevent… (#8747) — @SteeleHu
-
fix(dashboard): the /home quick-start cards no longer prefetch — #8292…
-
fix(dashboard): Request Logs detail no longer crashes on a structured…
-
fix(dashboard): the logs detail modal stops reopening on first close…
📚 Docs
-
docs(quality): codify retry policy per runner + release-level drift… (#7107)
-
docs(troubleshooting): document Avast/AVG README.md false positive (#7295)
-
docs(perf): add per-endpoint p50/p95/p99 latency + cost budget… (#7336) — @KooshaPari
-
docs: refresh revoked Discord invite + WhatsApp Brasil link (#7604)
-
docs(readme): animated SVG for the 4-tier auto-fallback cascade (#7615)
-
docs: sync provider count to 259 (unblocks docs-counts strict… (#7616)
-
docs(readme): animate pool + combo ASCII blocks as SMIL SVG diagrams (#7626)
-
docs(readme): animate CLI command list + compression flow as SMIL SVGs (#7637)
-
docs(readme): replace free-tier budget mockup with animated SMIL card (#7665)
-
docs(readme): standardize all README tables to full content width (#7666)
-
docs: fix three stale references failing the fabricated-docs… (#7728)
-
docs(readme): unified animated card system — audited v3.8.49 numbers,… (#7769)
-
docs(readme): add Kimi (Moonshot AI) official supporter section (#7770)
-
docs(getting-started): reorder Verify It Works before IDE/CLI setup + add… (#7790) — @swingtempo
-
docs(readme): audit every number against the live code + refresh… (#7795)
-
docs(readme): evolve supporter section into sub2api-style Sponsors… (#7799)
-
docs(readme): contributors 360+ -> 350+ (audited) (#7803)
-
docs(i18n): refresh Polish README and fix relative links (#7807) — @leszek3737
-
docs: add general Web Cookie provider setup guide (#7881) — @arpit-jaiswal-dev
-
docs(guides): document Kaspersky PDM behavioral false positive on the… (#7923)
-
docs: document npm install ERESOLVE/peer/deprecated warnings… (#7988) — @Dingding-leo
-
docs: fix Docker IPv6 connection reset with -p 127.0.0.1 bind… (#7989) — @Dingding-leo
-
docs(readme): Kimi partner tracking links (aff=omniroute) +… (#8028)
-
docs: add AgentRouter multi-provider routing troubleshooting (#8049) — @leninejunior
-
docs(security): correct prompt-injection severity table +… (#8113) — @rafaumeu
-
docs(ops): publish public branching and release model (#8129) — @c4usal
-
docs(i18n): full Russian README rewrite (#8217) — @MonteNegroX
-
docs(readme): re-audit numbers, fix table scroll, refresh contributors (#8243)
-
docs(db): propose pluggable persistence boundary (#8261) — @xiaoyaner0201
-
docs(db): add reproducible SQLite coupling inventory (#8262) — @xiaoyaner0201
-
docs: add public ROADMAP (3.8.5x rail -> 3.9.0 LTS -> 4.0… (#8348)
-
docs: sync env-var contract (chaos panel, notion TLS, grok… (#8362)
-
docs: one golden path across PR template, CONTRIBUTING,… (#8380)
-
docs(claude-code): document unprefixed model IDs and the Ambiguous model… (#8410) — @dvirarad
-
docs(podman): clarify Podman Machine deployment (#8569) — @shixi-li
-
docs(env): document NEXT_PUBLIC_OMNIROUTE_BASE_PATH and… (#8690) — @MumuTW
-
docs(codex): document session affinity and stream idle for long tasks (#8709) — @DinonowDev
-
docs: replace outdated Polish docs with translation from… (#8823) — @leszek3737
-
docs: restore the Polish API_REFERENCE removed by #8823 (#8831)
🧪 Tests & Quality
-
test(build): derive pack-artifact closures for all npm-shipped… (#7081)
-
test(dashboard): dedicated regression guard for #6815 density guarantee (#7291)
-
test(ci): make #6634 selfref guard hermetic — read file from… (#7327)
-
test(ci): mock route bridge surfaces error message, not raw stack (#7354)
-
test(ci): static body in codex e2e mock route bridge (CodeQL #737) (#7558)
-
test(ci): exact-line assert in grok-build config test (CodeQL… (#7628)
-
test(codex): cover image tool output replay (#7704) — @dongwook-chan
-
test(security): exact SAN-entry match in mitm leaf-cert test (CodeQL… (#7824)
-
test: verify keepalive interval cleanup on disconnect,… (#8190) — @rafaumeu
-
test: realign catalog snapshot tests to current deliberate… (#8386)
-
test: hermetic notion thread-session mocks + drop duplicated… (#8392)
-
test(e2e): contract test for the full provider journey (#8444) — @HoneyTyagii
-
test(sse): repair two base-red gates on release/v3.8.49 (#8490) — @backryun
-
test(context): isolate context-manager suite from local DATA_DIR (#8596) — @DinonowDev
🔧 Chores / CI
-
chore(release): gate the sync-back push on release-green --quick (WS0.3) (#7083)
-
chore(ci): gate hygiene — secrets baseline 0, semgrep drop,… (#7099)
-
chore(ops): runner-box janitor + operations runbook (WS3.3) (#7115)
-
chore(ci): promote test:vitest:ui to blocking (suite green after… (#7147)
-
chore(ci): stop dependabot proposing typescript majors —… (#7306)
-
chore(release): script the 0a.0b PR re-home with a verified read-back (#7312)
-
chore(quality): tighten the coverage ratchet to the CI's real numbers (#7326)
-
chore(ci): make the Electron Windows leg advisory with bash stderr… (#7340)
-
chore(deps): bump actions/setup-node from 6 to 7 (#7348)
-
chore(deps): bump codecov/codecov-action (#7350)
-
ci(release-green): add a main-green arm to detect when main goes red (#7355)
-
chore(deps): bump github/codeql-action/analyze from 4.37.0 to 4.37.1 (#7641)
-
chore(deps): bump github/codeql-action/init from 4.37.0 to 4.37.1 (#7642)
-
chore(quality): register #6672 test in stryker tap.testFiles (base-red… (#7652)
-
chore(release): merge-train box-speed suite + --fast mode (#7670)
-
chore: [defer] fix embedded CLIProxyAPI config handling (#6877) — @professional-ALFIE
-
chore: [defer] fix(grok): align responses tool-call shape for… (#6937) — @CitrusIce
-
chore: [needs-vps] feat(dashboard): add per-operator quota row… (#7251)
-
chore: [defer] feat(combo): universal cooldown-aware retry &… (#7301) — @ViFigueiredo
-
chore: Completing Arabic language (#7686) — @mustafa-phd
-
chore: IC2: Cache provider connections by ID + provider nodes (#7744) — @oyi77
-
chore: [Emergency Fix] fix(build): repair release build… (#7772) — @backryun
-
chore: [Part 1/3]refactor(qwen): replace legacy Qwen Code and… (#7866) — @backryun
-
chore: [Part 3/3] feat(qwen): add regional Alibaba and Qwen… (#7882) — @backryun
-
chore: Preserve supported Responses behavior in Chat… (#7894) — @JxnLexn
-
chore: Restore Responses API custom tool calls (#7905) — @JxnLexn
-
chore: Hide internal reasoning replay placeholders (#7912) — @JxnLexn
-
chore(deps): bump js-yaml, brace-expansion, shell-quote, tar… (#7915)
-
chore: i18n(zh-TW): complete Traditional Chinese (Taiwan)… (#8024) — @lunkerchen
-
chore: i18n: bring 40 locales to full parity with en.json (#8031) — @nguyenha935
-
chore(deps): resolve 7 open Dependabot alerts via npm overrides (#8066)
-
chore(deps): resolve 3 more Dependabot alerts (dompurify,… (#8069)
-
chore(dashboard): reframe Kimi partnership as "Open Source Friends" (#8117)
-
chore(quality): fix 2 pre-existing lint/suppression drift issues (#8209) — @hartmark
-
chore: add K3banner-1.png banner asset (#8242)
-
chore(quality): rebaseline accountFallback+combo for #8252 own-growth… (#8252) — @RaviTharuma
-
optimize(chaos+ponytail): i18n ponytail, dedupl dispatch, provider diversity (#8264) — @Moseyuh333
-
chore(deps): bump next to 16.2.11 (9 security advisories) (#8265)
-
chore: Add Alibaba-family media model support (#8266) — @backryun
-
chore: Clicking a provider card hitting back loses scroll… (#8349) — @swingtempo
-
chore: feat(log): Added new visual scrolling log page (#8354) — @hartmark
-
chore: [BUG] enforceOutputTokenBudget ignores combo-resolved… (#8378) — @RCrushMe
-
chore(ci): cancel superseded runs, skip DAST on docs-only PRs,… (#8379)
-
chore(quality): drop stale muse-spark-web allowlist entry + sync… (#8383)
-
chore: i18n(zh-TW): translate missing Reasoning Routing strings (#8423) — @MumuTW
-
chore(deps): bump codecov/codecov-action from 5.5.5 to 7.0.0 (#8452)
-
chore(deps): bump github/codeql-action/analyze from 4.37.1 to 4.37.3 (#8453)
-
chore(deps): bump ossf/scorecard-action from 2.4.3 to 2.4.4 (#8454)
-
chore(deps): bump github/codeql-action/init from 4.37.1 to 4.37.3 (#8455)
-
chore(deps): bump actions/setup-python from 6 to 7 (#8456)
-
chore(sse): drop deprecated baseUrl from open-sse tsconfig for TS… (#8473) — @backryun
-
refactor(sse): resolve open-sse utils/translator type diagnostics for… (#8483) — @backryun
-
refactor(sse): declare the executor execute() result contract (#8489) — @backryun
-
refactor(sse): stop three executors shadowing BaseExecutor.buildHeaders (#8498) — @backryun
-
refactor(sse): narrow three result unions via type predicates (#8499) — @backryun
-
refactor(sse): restore three executor types the runtime already relied… (#8520) — @backryun
-
refactor(dashboard): clear file-size base-red by extracting provider-card… (#8524) — @MumuTW
-
refactor(guardrails): narrow the documented void return at the dispatch site (#8525) — @backryun
-
refactor(sse): type the rerank response adapter's options parameter (#8528) — @backryun
-
refactor(sse): retag the designer-web result unions with string… (#8531) — @backryun
-
refactor(sse): declare the multipart/gRPC frame bodies as… (#8533) — @backryun
-
chore(ci): resync stale no-explicit-any suppression count for… (#8544) — @MumuTW
-
chore(usage): decompose services/usage.ts into per-provider usage/*… (#8545) — @MumuTW
-
chore(validation): decompose providers/validation.ts into validation/*… (#8546) — @MumuTW
-
chore(token-refresh): decompose services/tokenRefresh.ts into tokenRefresh/*… (#8547) — @MumuTW
-
chore(combo): extract pure error predicates and quota status helpers… (#8548) — @MumuTW
-
chore(i18n): normalize zh-TW terminology and sync stale README… (#8554) — @MumuTW
-
refactor(sse): stop isClaudeEventPayload claiming a narrowing it never… (#8557) — @backryun
-
chore(quality): rebaseline file-size for inherited base growth (#8561) — @fenix007
-
chore(deps): patch js-yaml + postcss for 2 high Dependabot alerts (#8572)
-
refactor(tls): update TLSClient instantiation to use… (#8583) — @DinonowDev
-
refactor(sse): peel the bare Response off handleChatCore's union in… (#8647) — @backryun
-
refactor(sse): guard the KIE task-id and callback-url reads at their… (#8661) — @backryun
-
refactor(sse): declare the ArrayBuffer backing on media byte producers (#8665) — @backryun
-
merge: resolve conflicts for #7904 local corpus context… (#8685) — @terrafirmbot-source
-
chore(quality): update baselines after v3.8.49 merge-train (#8686)
-
chore: Dependabot updates (#8695) — @justdoGIT
-
chore: Create AMIT (#8727) — @amitgolan60-coder
-
chore(ci): add release PR build gate (#8735) — @ekinnee
-
chore: Stabilize Notion web sessions and JSON output (#8751) — @0xheycat
-
deps: bump electron from 43.1.1 to 43.2.0 in /electron (#8782)
-
deps: bump the production group across 1 directory with 18… (#8793)
-
refactor(sse): retag the Adobe Firefly IMS token-check union (#8638) — @backryun
-
refactor(db): let the provider-nodes cache keep the row type it… (#8639) — @backryun
-
refactor(sse): use the shared ApiKeyMetadata in reasoningRouting… (#8643) — @backryun
-
refactor(sse): narrow three media-generation result unions (#8645) — @backryun
-
refactor(sse): declare the semantic-cache read path's parameters (#8646) — @backryun
🔀 Other
-
[needs-vps] fix(electron): materialize Turbopack… (#6794) — @huohua-dev
-
[codex] Keep mode-pack weights consistent in auto… (#7008) — @KooshaPari
-
Explain effective auto-combo scoring weights (#7087) — @KooshaPari
-
[needs-vps] fix(dashboard): add vision-capability… (#7124)
-
[needs-vps] fix(dashboard): align onboarding tier… (#7125) — @Wibias
-
Use OpenAI chunks for early chat keepalives (#7136) — @KooshaPari
-
Fix Codex Responses compression analytics (#7273) — @JxnLexn
-
Add cache-aligned Live Zone compression (#7280) — @JxnLexn
-
Fix routed target request parameters (#7323) — @JxnLexn
-
deps: bump electron from 43.1.0 to 43.1.1 in /electron (#7349)
-
deps: bump the development group with 8 updates (#7351)
-
deps: bump the production group across 1 directory with… (#7352)
-
Add per-connection Provider Quota visibility (#7360) — @JxnLexn
-
Stream model health probes for slow providers (#7377) — @JxnLexn
-
Refresh NVIDIA free metadata and detect catalog drift (#7378) — @JxnLexn
-
Reject invalid output token budgets (#7379) — @JxnLexn
-
Honor provider proxies for The Old LLM Vercel blocks (#7380) — @JxnLexn
-
Restore proxy navigation and sidebar accordion state (#7381) — @JxnLexn
-
Expose proxy controls for no-auth providers (#7419) — @JxnLexn
-
Add reasoning-based model and effort routing (#7607) — @JxnLexn
-
refactor(sse): extract per-provider token-refresh functions from… (#7817)
-
deps: bump the production group with 8 updates [bot] (#7897) — @dependabot
-
deps: bump the development group with 5 updates [bot] (#7898) — @dependabot
-
refactor(antigravity): align official clients and callable catalog (#8013) — @backryun
-
refactor(compression): extract resolveHeadroomDetail to keep… (#8058)
-
deps: bump next from 16.2.10 to 16.2.11 [bot] (#8235) — @dependabot
🩹 Direct release-branch fixes (no PR — authorized base-red sweep, 2026-07-18)
- fix(base-red): full-suite realignment after the 102-PR merge campaign:…
- chore(release-branch): cycle maintenance pushed directly to
release/v3.8.49… - test(ui): the
vitest:uisuite was red across the whole cycle…
📝 Maintenance
- Merge-train script: (
scripts/release/merge-train.sh): batch-validates N… (#6784) - release:
list-uncovered-commits.mjsnow unions the CHANGELOG… (#6857 #6878) - chore(ci): stop dependabot from proposing
typescriptmajors —… - maintenance(quality): re-baseline
file-sizefor two legitimately-grown… - fix(i18n): backfill the four
usage.*quota-visibility keys #7251… - docs(codex): document session affinity (
sessionAffinityTtlMs) and… (#7287) - test(dashboard): restore dedicated regression coverage for #6815's… (#7291)
- Antivirus false-positive note: (
docs/guides/TROUBLESHOOTING.md): documents why… - chore(release): add
scripts/release/rehome-open-prs.mjs— the Phase… (#7307) - Add an advisory production build to the PR-to-release…
- docs: Add
docs/INCIDENT_RESPONSE.md— a non-security… (#7334) — @KooshaPari - docs: Add
docs/PERF_BUDGETS.md— per-endpoint p50/p95/p99… (#7336) — @KooshaPari - README tier-cascade diagram animated: (
docs/diagrams/tier-cascade.svg): the ASCII 4-tier… (#7615) - Docs provider-count sync: (
README.md,AGENTS.md,CLAUDE.md): provider-count… (#7616) - README animated diagrams: (
docs/diagrams/pool-fair-share.svg,… (#7615) - docs(ops): publish public branching/release model (
release/*=… (#7627) — @c4usal - README animated diagrams, round 3: (
docs/diagrams/cli-terminal.svg,… - README: replaced the free-tier budget preview mockup… (#7665)
- README: standardized all 28 tables to the same full… (#7666)
- Realigned 13 test files that had drifted red on the… (#7690)
- README: unified animated card system — numbers audited… (#7769)
- chore(quality): fix two release-tip base-reds blocking every fresh PR…
- fix(i18n): backfill the six
providers.tierOverride*keys #7838… - chore(quality): regenerate the provider translate-path golden snapshot…
- chore(quality): prune a stale ESLint suppression for…
- Extract
resolveHeadroomDetail()from the… - chore(quality): rebaseline complexity (2130→2183) and… (#3501 #8566) — @MisileLab
- refactor(sse): extract combo dispatch prelude… (#8582) — @MumuTW
- chore(quality): bank completed file-size shrinks into… (#8585) — @MumuTW
- refactor(sse): extract combo target resolution into… (#8592) — @MumuTW
- Source-scanner negative guards: (
tests/unit/source-scanner-guards.test.ts): hard gate… (#8619) — @MumuTW - chore(skills): regenerate
skills/cli-backup-sync/SKILL.mdso it… (#8657) — @MumuTW - chore(quality): extract pure provider input parsers to…
- Realign the Antigravity non-streaming 429-retry test…
- chore(quality): restore no-explicit-any severity to…
- chore(base): pt-BR/en i18n keys for #6909…
- chore(base): re-export relayProbeStats from localDb…
- fix(tests): realign the disabled-compression combo…
- CI:
pr-test-policyfetches the base branch with full… - ci: unit fast-path sharding doubled 2→4 (halves the… (#6781 #6691 #6693)
- CI: Codecov patch-coverage on every PR diff (informational…
- Classify upstream dispatches by host instead of URL…
- chore(combo): extract 8 pure error predicates and quota status…
- CI: raise the Coverage job timeout 10→20min — the lcov… (#7114)
- CI: raise the dast-smoke job timeout 12→25min — the CLI…
- chore(validation): decompose…
- chore(token-refresh): decompose…
- chore(usage): decompose
open-sse/services/usage.ts… - docs: routing-strategy count reconciled to 18 across… (#6663) — @chirag127
- CI: E2E matrix shards are now duration-balanced (LPT…
- CI: the new Electron Windows prepare-bundle leg (WS1.5) is…
- CI: the Electron Package Smoke job now runs a Windows leg…
- Quality gates hygiene (WS6/D3 + WS1.7): gitleaks baseline zeroed — the 3 frozen…
- fix(oauth): register
ghe-copilotin the OAuth… - fix(dashboard): add the ghe-copilot entry to the…
- chore(perf): add
npm run bench:heap-body— a… - CI: hotfix fast-lane — PRs labeled
hotfix(owner-applied,… - chore(ci): resync the stale
no-explicit-any… - chore(release): merge-train runs the box-tuned…
- chore(release): merge-train
--fastnow classifies changed tests with… - CI: quality.yml draft guards now also match Mergify…
- Merge queue (D5): reviewed PRs now merge through the Mergify queue…
- Release: npm publishing is now STAGED by default — the workflow…
- chore(release): v3.8.47 pre-flight — relocate #6943…
- Docs:
QUALITY_GATES.mdnow codifies the per-runner test… - chore(quality): owner-approved ratchet rebaseline for…
- docs(readme): fix stale counts — 18 routing strategies (adds the…
- Rebaseline the cyclomatic-complexity ceiling (2059 →…
- CI: release-green validation is now continuous — every code…
- chore(ci): fix two shared base-reds on the release tip that…
- docs: refresh
llm.txtto the current project state (248… - Strengthen the
compareRouterEvalRunsregression test… - Ops:
scripts/ops/runner-janitor.sh+… - chore(security): scrub hardcoded live-instance credentials (API key +…
- Tests: the #6634 self-reference test now fetches
origin/main… - Register 5 covering unit tests (account-fallback…
- chore(quality): register microsoft-designer-web-6672…
- Release tooling:
sync-next-cycle.mjsnow runs `validate-release-green… - Rebaseline
testFrozenfor… - chore(quality): tighten the coverage ratchet to the CI's real numbers…
- chore(quality): split
open-sse/services/tokenRefresh.ts(2249 lines,… - chore(quality): re-pin the file-size ceilings touched…
- chore(quality): re-pin the
chatCore.tsfile-size… - chore(quality): align the pack-artifact expected-path…
- chore(quality): re-pin the
apiKeys.tsand… - CI: Playwright E2E and both vitest suites now emit JUnit…
- CI: the fast-path Vitest job (every PR) now also emits…
- CI: TypeScript 7 (native compiler, GA 2026-07-08) now runs…
- maintenance(quality): clear v3.8.49 owner-PR-campaign base-reds on…
- Release tooling: new
scripts/release/verify-published.mjs <version>—… - CI: promote
test:vitest:uito a blocking gate — the suite… (#7127) - chore(tests): fix all 70 failing
test:vitest:uitests…
🙌 Contributors
| Contributor | PRs / Issues |
|---|---|
| @0x2f0 | #8679 |
| @0xheycat | #8751 |
| @adevwithpurpose | #8123 |
| @adrianaryaputra | #7928 |
| @advane204f | direct commit / report |
| @Ajeesh25353646 | #7528 |
| @allanvb | #8471, #8759, #8814, #8862 |
| @alltomatos | #6703, #6715, #6756, #6757, #6759, #6813, #6819, #6821, #7041, #7042, #7164, #7277, #7490, #7492, #7644 |
| @alvaretto | #8077, #8161, #8170 |
| @amitgolan60-coder | #8727 |
| @andrea-kingautomation | #7678 |
| @andrewmunsell | #6774, #6779, #6795 |
| @AndrianBalanescu | #6828, #6829, #7794, #7804, #7810, #7813, #7816, #7891, #8050 |
| @anhdiepmmk | direct commit / report |
| @anndev-69 | direct commit / report |
| @apoapostolov | #8127 |
| @arpit-jaiswal-dev | #7881 |
| @artickc | #6763, #6955, #7204, #7696, #7768, #7896, #7900, #7911, #7930, #7994, #8006, #8159, #8470, #8496, #8511, #8863 |
| @Arul- | #7878 |
| @asynx6 | direct commit / report |
| @attid | #6984 |
| @backryun | #6280, #6675, #6862, #7296, #7314, #7358, #7531, #7687, #7772, #7812, #7866, #7874, #7882, #7914, #8013, #8225, #8226, #8227, #8230, #8266, #8275, #8298, #8464, #8473, #8483, #8485, #8489, #8490, #8498, #8499, #8520, #8525, #8528, #8531, #8533, #8557, #8638, #8639, #8641, #8643, #8644, #8645, #8646, #8647, #8661, #8663, #8665, #8732, #8810, #8811, #8812, #8815, #8816, #8819, #8820, #8824 |
| @beingshafin | direct commit / report |
| @brick30llc-ctrl | #6944 |
| @brunnolouzada | #8581 |
| @c4usal | #7627, #8129 |
| @CahyokPutraDev99 | direct commit / report |
| @Capslockb | #7892 |
| @CarmeloCampos | direct commit / report |
| @Chewji9875 | #7545 |
| @chirag127 | #6022, #6593, #6643, #6644, #6646, #6650, #6769, #6771, #6804, #7079, #7520, #8143 |
| @chitholian | direct commit / report |
| @chy1211 | direct commit / report |
| @CitrusIce | #6937, #6938 |
| @costaeder | #8628 |
| @Dan-ex-hub | #7743 |
| @danscMax | #7359, #7511, #7517, #7648, #7656, #7672, #7689 |
| @dependabot | #7897, #7898, #8235 |
| @Dingding-leo | #7988, #7989, #8162, #8165, #8167, #8283, #8286, #8287, #8633, #8636, #8642, #8651, #8652, #8667, #8691, #8715, #8730, #8731, #8762, #8763, #8764, #8795 |
| @DinonowDev | #8552, #8559, #8583, #8596, #8615, #8709, #8710, #8716, #8798, #8800, #8802 |
| @dionisius95 | direct commit / report |
| @DKotsyuba | #7500 |
| @dongwook-chan | #7574, #7582, #7704 |
| @Dragost | #8289 |
| @Duongkhanhtool | direct commit / report |
| @dvirarad | #8410 |
| @ekinnee | #7601, #7613, #7614, #7662, #7779, #7927, #7932, #7980, #8735 |
| @enjoyer-hub | #6647, #7863 |
| @epsilonode | #8724 |
| @evinjohnn | direct commit / report |
| @fajarbossit | direct commit / report |
| @felipeleite | direct commit / report |
| @fenix007 | #7171, #7399, #8306, #8561 |
| @FenjuFu | #7942 |
| @floze-the-genius | #7707 |
| @fontvu | direct commit / report |
| @fuko2935 | #8726 |
| @fzrilsh | direct commit / report |
| @gitcommit90 | #6986 |
| @glazec | #8632 |
| @growab | #7062, #7300 |
| @guanbear | #7028 |
| @guhcostan | #8433 |
| @hartmark | #8208, #8209, #8210, #8211, #8212, #8213, #8337, #8341, #8354, #8462 |
| @HassiyYT | #7864 |
| @heishen6 | direct commit / report |
| @herjarsa | #7612, #7625, #7633, #7869, #7871, #8476 |
| @HoneyTyagii | #8444 |
| @HouMinXi | #7035, #7129, #7290, #7398, #7408, #7973, #8290, #8312, #8842, #8845, #8860, #8865 |
| @hppsc1215 | #7546, #8835 |
| @huohua-dev | #6794 |
| @hydraxman | #7909 |
| @iamraydoan | #6798 |
| @ianriizky | #6072, #6538 |
| @ikelvingo | #8355 |
| @insoln | #7906, #7908, #8041, #8054, #8062 |
| @irvandikky | #7695 |
| @isiahw1 | #7555 |
| @itiwant | direct commit / report |
| @janeza2 | #6308 |
| @Jordannst | direct commit / report |
| @JoshimOfficial | #8526 |
| @justdoGIT | #8695 |
| @JxnLexn | #6776, #6993, #7154, #7177, #7269, #7273, #7280, #7281, #7282, #7323, #7360, #7377, #7378, #7379, #7380, #7381, #7419, #7607, #7894, #7905, #7912, #8008, #8009, #8010 |
| @kamenkadmitry | #7350, #7425 |
| @kaon0388v1 | #7049 |
| @KaynXu | #8284 |
| @KooshaPari | #6611, #6632, #6856, #7008, #7087, #7093, #7128, #7130, #7136, #7315, #7318, #7334, #7336 |
| @KunN-21 | direct commit / report |
| @leninejunior | #8049 |
| @leszek3737 | #7782, #7807, #8343, #8543, #8823 |
| @like3213934360-lab | direct commit / report |
| @linhdmn | #8439 |
| @Long-Feeds | #8011 |
| @loulanyue | #7540 |
| @lucasjustinudin | direct commit / report |
| @lunkerchen | #8024 |
| @makcimbx | #7692, #8171, #8432 |
| @Mananz90 | #8723 |
| @marceli1404 | #8570 |
| @maxmad64bis | #8660 |
| @megamen32 | #7313 |
| @MichaelYcJo | #8224 |
| @mikeiagents | #8598 |
| @MikeTuev | #6586 |
| @mikolaj92 | #6973 |
| @MisileLab | #8566 |
| @MonteNegroX | #8217 |
| @Moseyuh333 | #7781, #8264 |
| @MrFadiAi | #7073 |
| @mrprohack | direct commit / report |
| @MumuTW | #8423, #8425, #8426, #8427, #8428, #8524, #8534, #8544, #8545, #8546, #8547, #8548, #8554, #8582, #8585, #8589, #8592, #8604, #8605, #8612, #8619, #8657, #8690, #8741, #8749 |
| @mustafa-phd | #7686 |
| @NBN-N3 | #8794 |
| @nguyenha935 | #7493, #7547, #7552, #7553, #7629, #7935, #8031, #8098, #8233, #8565 |
| @nguyenphi37 | direct commit / report |
| @not-knope | #8206 |
| @nramabad | #7926 |
| @oyi77 | #6917, #6918, #6919, #6920, #6921, #6923, #7032, #7045, #7046, #7066, #7070, #7178, #7719, #7744, #7787, #7893, #8219 |
| @Pitchfork-and-Torch | #6747, #6791 |
| @professional-ALFIE | #6877 |
| @Prudhvivuda | #8032, #8220, #8250, #8309, #8441, #8467, #8488, #8493, #8494, #8495, #8586, #8587, #8606, #8607, #8608, #8611, #8805, #8806 |
| @QRcode1337 | #7034 |
| @quanturbo | #6780 |
| @rafaeldrincon | #8866, #8867 |
| @rafaumeu | #6813, #6979, #6982, #6983, #6987, #6988, #7001, #7808, #7815, #8071, #8113, #8179, #8184, #8185, #8190, #8195, #8196, #8203 |
| @RaviTharuma | #7852, #7853, #7855, #7862, #7885, #7972, #7978, #8021, #8022, #8023, #8025, #8027, #8030, #8101, #8102, #8124, #8252, #8292, #8296, #8301, #8302, #8303, #8304, #8308 |
| @RCrushMe | #8151, #8378 |
| @ricatix | direct commit / report |
| @ridho9 | #8310 |
| @rinseaid | #8721, #8729, #8821 |
| @rixzkiye | direct commit / report |
| @rqzbeh | #8514, #8515 |
| @rushsinging | #7256 |
| @ryanngit | direct commit / report |
| @samir-abis | direct commit / report |
| @seanford | #8194, #8218, #8232 |
| @SeaXen | #7063, #7264, #7294 |
| @Securiteru | #7683 |
| @SemonCat | direct commit / report |
| @shixi-li | #8569 |
| @SingCJ | direct commit / report |
| @skutanjir | #7865, #7939 |
| @spacesky-cell | direct commit / report |
| @SteeleHu | #8747 |
| @sumanxg | #8837, #8856 |
| @swingtempo | #7790, #8349, #8766 |
| @Tasogarre | #7861, #8207 |
| @techsolutionmta | direct commit / report |
| @tenshiak | #7274, #7643 |
| @terrafirmbot-source | #8685 |
| @thepigdestroyer | #7497 |
| @tianrking | #7353 |
| @tientien17 | #7841, #7844, #7925 |
| @TitoTFP | #8838 |
| @tjengbudi | #4009 |
| @tmone | #7806, #7933 |
| @TrackCrewGalore | #6271, #8128 |
| @trfi | direct commit / report |
| @TuyulSpam | direct commit / report |
| @ViFigueiredo | #7301 |
| @vzts | #7390 |
| @warelik | direct commit / report |
| @way-art | direct commit / report |
| @webmasterarbez | #7504 |
| @wgordon17 | #8852 |
| @whale9820 | direct commit / report |
| @Wibias | #7125 |
| @wilsonicdev | direct commit / report |
| @Witroch4 | #6753, #6762, #6790, #7901, #7902 |
| @XCrag | direct commit / report |
| @xiaoyaner0201 | #8122, #8261, #8262 |
| @xier2012 | #7036, #7050, #7052, #7053, #7056, #7059, #7060, #7061, #7166, #7299 |
| @xxue-z | #7098 |
| @xz-dev | #6323, #6330, #6714, #6727, #7004, #7012, #7027, #7673, #7700, #7747, #7776, #7843 |
| @yidecode | direct commit / report |
| @yinaoxiong | #6805 |
| @diegosouzapw | maintainer |