182 Commits
Author SHA1 Message Date
musistudio cfe7d530d1 Update model catalog for 3.1.0 2026-09-10 14:11:51 +08:00
musistudio 39e4da3a03 fix(meta): enforce output token floor and verify tool IDs (#1781) 2026-09-09 20:33:56 +08:00
musistudio bc630ffc21 fix(claude-code): default to helper auth and honor provider limits (#1779) 2026-09-09 20:28:29 +08:00
musistudio b229bd86d3 fix(search): recognize Cowork WebSearch declarations (#1766) 2026-09-09 20:25:09 +08:00
musistudio c7e9a4cb4b fix(opencode): supply required session headers (#1780) 2026-09-09 20:25:09 +08:00
musistudio b1fd1e242f fix(gemini): honor selected protocols and API key auth (#1778) 2026-09-09 20:25:09 +08:00
musistudio 9f45399bc7 perf(app): avoid repeated eager executable discovery (#1776) 2026-09-09 20:12:07 +08:00
musistudio 687b84f242 perf(routing): reuse provider identity sets (#1777) 2026-09-09 20:09:07 +08:00
musistudio 09d41b0a21 perf(providers): cache bounded catalog lookups (#1775) 2026-09-09 20:07:50 +08:00
musistudio 82d2f52738 fix(claude-app): remove deprecated configuration keys (#1772) 2026-09-09 20:06:04 +08:00
musistudio 37ae4f51e4 fix(claude-app): preserve preferences on restore (#1768) 2026-09-09 20:04:49 +08:00
musistudio b0d59afe08 Refactor routing configuration and improve provider support 2026-09-09 19:43:16 +08:00
musistudio 2b57c6078f Merge branch 'feat/ai-gateway' into dev/3.1
# Conflicts:
#	packages/core/src/gateway/core-runtime/upstream-header-sanitizer.ts
2026-09-02 20:24:42 +08:00
musistudio 923c742103 Add overview statistics reset with persistent reset tracking 2026-09-02 19:40:54 +08:00
musistudio 4bf550824d Disable streaming replies for Weixin iLink 2026-09-02 19:29:25 +08:00
musistudio 4afd350eef Implement comprehensive application updates 2026-09-02 18:37:11 +08:00
musi 474dccb0e0 Merge pull request #1736 from BetterAndBetterII/fix/preserve-cowork-egress-hosts
fix: preserve coworkEgressAllowedHosts when rewriting Claude App config
2026-09-01 22:35:15 +08:00
musi c3231f84d7 Merge pull request #1723 from gtapps/fix/1722-responses-tool-strictness
fix(gateway): opt OpenAI Responses tools out of implicit strict mode
2026-08-30 10:46:26 +08:00
musi 51ab4ecafa Merge pull request #1718 from diogomcd/feat/codex-explicit-context-window
feat: allow explicit context window overrides for local Codex providers
2026-08-30 10:45:50 +08:00
Gabriel Tavares 197a8a604f fix(gateway): stamp Responses tool strictness only for Anthropic conversions
Native /v1/responses clients omit strict as API semantics; forcing false opted them out of strict tool schemas.
2026-08-30 01:19:28 +01:00
Yuzhong Zhang dc82dc9e47 fix: preserve coworkEgressAllowedHosts when rewriting Claude App config
Merge existing configLibrary JSON before writing gateway fields so CCR
restarts no longer wipe sandbox egress allowlists.

Fixes #1735
2026-08-29 13:28:08 +00:00
Diogo Macedo d5638fb4f3 fix: honor pinned context windows in Claude App routes with a shared percent helper 2026-08-27 19:20:43 -03:00
Diogo Macedo 49a8b5bd78 fix: remove the hardcoded imported Codex context-window cap 2026-08-27 19:19:34 -03:00
musi 46e3232913 Merge pull request #1699 from krajcik/fix/gateway-preload-undici-major-mismatch
fix(gateway): pair dispatchers with bundled undici fetch on undici major mismatch (Node >= 25)
2026-08-27 22:35:35 +08:00
musi 44e3a52990 Merge pull request #1715 from diogomcd/fix/responses-unsupported-metadata
fix: skip session affinity body fields for Codex Responses upstreams
2026-08-27 22:25:18 +08:00
musi e7ff249367 Merge pull request #1711 from diogomcd/fix/invalidate-claude-gateway-model-cache
fix: invalidate Claude gateway model discovery cache when the profile allowlist changes
2026-08-27 22:19:55 +08:00
krajcik 98b30c2510 refactor(gateway): defer dispatcher pairing to ai-gateway 1.0.18 2026-08-26 15:35:41 +03:00
Gabriel Tavares 54f57a35d5 fix(gateway): opt OpenAI Responses tools out of implicit strict mode
Claude Code omits tool.strict, so Responses promotes optional fields to required and models emit both Monitor command and ws.
2026-08-25 23:30:35 +01:00
Diogo Macedo 7c1c0d49b4 feat: respeita Entry mode dos perfis no sync da config do app Claude 2026-08-25 16:17:27 -03:00
Diogo Macedo 92d771feb6 fix: honor pinned context windows through metadata merges and effective percent 2026-08-25 15:20:36 -03:00
Diogo Macedo 7a2b4c3a75 feat: respect explicit user context windows over imported Codex caps 2026-08-25 13:03:59 -03:00
musi 99f24806c6 update sponsor 2026-08-25 22:03:48 +08:00
Diogo Macedo 23592a893b fix: contain Claude model discovery cache invalidation failures in the claude-code profile status 2026-08-24 12:06:31 -03:00
Diogo Macedo 6040d66f37 fix: hash generated Claude discovery and bootstrap payloads in the model cache fingerprint 2026-08-24 11:51:46 -03:00
Diogo Macedo c15b668910 fix: skip session affinity body fields for codex responses upstreams 2026-08-24 10:41:34 -03:00
musistudio 19e5d4909e Release 3.0.22 2026-08-24 20:16:17 +08:00
musistudio f2360ac046 Merge branch 'main' into dev/3.1 2026-08-24 20:02:57 +08:00
musi 17c8744de9 Merge pull request #1695 from songkuan-zheng/fix/fusion-vision-validate-image-inputs
fix(fusion-vision): validate and repair image inputs before forwarding
2026-08-24 20:02:20 +08:00
musistudio 70e7fd1a80 Secure gateway preload file permissions 2026-08-24 19:29:15 +08:00
musistudio 9e7d4f782c Implement router enhancements 2026-08-24 19:02:41 +08:00
pacocartones 6c98ea2adf fix(media): release artifact response body on early download failures
GatewayMediaExecutor.download() left the fetch Response body un-read and un-cancelled on several early-exit paths: a terminal non-ok HTTP status, an oversized declared content-length (declaredLength > maxApiArtifactBytes), and a mid-stream writeSync failure in the download loop. In each case the underlying undici connection/socket is leaked, so repeated failed downloads accumulate open connections and exhaust the pool.

Cancel the response body before throwing on those paths, and cancel the reader in the write-error handler, matching the cancellation already done on the retry branch and the in-loop size-limit branch.
2026-08-24 04:28:06 +00:00
Diogo Macedo b931866671 fix: invalidate gateway model discovery cache when profile allowlist changes 2026-08-23 15:26:17 -03:00
musi 1347c868b4 Merge pull request #1691 from dylanpulver/fix/responses-session-affinity
Forward session id as prompt_cache_key on openai_responses
2026-08-22 18:34:25 +08:00
musistudio ccd00632ac Update project files 2026-08-22 16:12:46 +08:00
musistudio d515556574 Fix profile-specific model routing and gateway shutdown 2026-08-22 10:18:18 +08:00
kskada acf75d1280 Add Claude Code regression test for local agent auth provider hook 2026-08-21 16:29:58 +03:00
musistudio 46daaad92e Resolve Claude Code routes with one-million-context model suffixes 2026-08-20 16:45:54 +08:00
songkuan-zheng 3dab369ce3 test(fusion-vision): regression coverage for data-URL base64, local SVG, label restriction 2026-08-20 04:13:13 +00:00
musi 6e1a9617ff Merge pull request #1672 from pacocartones/fix/sse-utf8-chunk-boundary
fix(gateway): SSE transforms corrupt multi-byte characters split across chunks
2026-08-20 11:23:31 +08:00
krajcik 59420662bd fix(gateway): pair dispatchers with bundled undici fetch on major mismatch
Node >= 25 ships undici 8 as its built-in fetch while CCR bundles undici 7.
A dispatcher created by one undici major fails inside the other's fetch with
UND_ERR_INVALID_ARG ("invalid onError method"), so every gateway upstream
request fails with 502 "All target providers failed" (stage upstream_connect)
regardless of provider or proxy settings.

The generated gateway-proxy-preload.cjs already intercepts global fetch, but it
passed dispatcher-carrying calls straight to the runtime's built-in fetch and
injected bundled dispatchers into it. Route every call that carries or receives
a bundled dispatcher through the bundled undici's own fetch when the runtime
and bundled undici majors disagree; keep the previous behavior when they match.
2026-08-19 23:37:11 +03:00