Commit graph

661 commits

Author SHA1 Message Date
musi
86a383f647 Merge branch 'main' into dev/compact
# Conflicts:
#	packages/core/src/config/config.ts
#	packages/core/src/contracts/app.ts
#	packages/core/src/gateway/service.ts
#	packages/core/src/profiles/service.ts
#	packages/core/test/unit/agents/context-archive.test.mjs
#	packages/core/test/unit/gateway/codex-patch-bridge.test.mjs
#	packages/ui/src/pages/home/components/profiles.tsx
#	packages/ui/src/pages/home/shared/profiles.ts
#	tests/main/profile-service.test.mjs
#	tests/main/router-builtins.test.mjs
2026-07-23 09:24:28 +08:00
musi
1eea476484 Support context archive tool continuation for Anthropic Messages 2026-07-23 09:02:31 +08:00
musi
e239ad8fc9 Refactor routing configuration and provider integrations 2026-07-23 07:28:07 +08:00
musistudio
e11bb8bb40 Merge branch 'main' into dev/3.1 2026-07-21 20:11:38 +08:00
musistudio
e75caaa2a2 Update Kimi sponsorship and model details 2026-07-21 20:10:58 +08:00
musi
8154f3ef12
Merge pull request #1548 from camjac251/fix/provider-plugin-runtime-identity
fix(gateway): align provider plugin runtime identity
2026-07-21 20:08:57 +08:00
musi
3d84d7c194
Merge pull request #1547 from camjac251/test/loopback-listener-readiness
test(gateway): wait for loopback listener readiness
2026-07-21 20:06:01 +08:00
musistudio
5dbaafa752 Add manual protocol detection mode for providers 2026-07-21 19:32:24 +08:00
musi
999e335fdc
Merge pull request #1555 from H-TTTTT/fix/issue-1535-fallback-model
test(claude-app): lock in routable discovery default for #1535
2026-07-21 19:29:10 +08:00
musi
2dbfdff2ed
Merge pull request #1573 from camjac251/fix/profile-gateway-transport-retry
fix(profiles): tolerate transient gateway resets
2026-07-21 19:24:50 +08:00
musi
ad96ae7c5b
Merge pull request #1572 from camjac251/fix/usage-activity-local-dates
fix(ui): preserve local usage bucket dates
2026-07-21 19:16:58 +08:00
musi
f1bf639c54 Refactor routing architecture and streamline provider handling 2026-07-21 12:37:11 +08:00
camjac251
933cd9ac34
fix(profiles): tolerate transient gateway resets
Profile launches could fail with HTTP 0 when a healthy local gateway
reset one loopback probe. Prefer the stable health identity, retry
transport failures, and retain the root endpoint fallback.
2026-07-20 15:26:34 -04:00
camjac251
26d9d4cb3f
test(gateway): cover delayed media listeners
Loopback listen callbacks can precede connection readiness on some hosts,
which makes otherwise deterministic media fixtures fail with refused fetches.
Reuse one TCP readiness probe before issuing requests in each affected test.
2026-07-20 14:44:42 -04:00
camjac251
809f54e3de
chore: sync listener tests with main 2026-07-20 14:41:53 -04:00
camjac251
97d37fad04
fix(ui): preserve local usage bucket dates
Daily usage buckets represent local calendar dates, but standard date parsing
interprets their ISO-like form as UTC and shifts them in non-UTC time zones.
Parse date-only buckets directly in local time so heatmap totals stay on the
reported day.
2026-07-20 14:37:19 -04:00
camjac251
16a53bb3a9
fix(gateway): preserve local oauth provider base url
Runtime identity normalization previously ran before local OAuth provider
detection, so display-name matching could no longer select the managed
backend endpoint. Defer identity normalization until after detection and
cover the ordering with a regression test.
2026-07-20 13:10:40 -04:00
camjac251
24e52a64f3
fix(gateway): align provider plugin runtime identity
Provider compilation replaces display and capability aliases with stable
runtime identifiers, but plugin targets and fallback headers could retain
the precompiled names. Normalize both paths so routing and authentication
refer to the provider identity that the gateway actually registers.
2026-07-20 13:09:41 -04:00
musi
f22f2a4c79 chore: release 3.0.15 and cli docker 3.0.7
Some checks failed
Docs / Build (push) Has been cancelled
Docs / Deploy (push) Has been cancelled
2026-07-20 22:30:19 +08:00
musi
fff5c69df3 Merge dev/3.1 into main for v3.0.15 2026-07-20 22:22:45 +08:00
musi
79c3218ed8 update ai-gateway 2026-07-20 22:19:41 +08:00
musi
5d9785ddc3 Preserve explicit models when applying built-in route rewrites 2026-07-20 22:18:28 +08:00
musi
88c07b605a Merge branch 'main' into dev/3.1
# Conflicts:
#	package-lock.json
#	package.json
#	packages/cli/package.json
#	packages/core/package.json
#	packages/core/src/contracts/ipc-channels.ts
#	packages/core/src/gateway/claude-code-router-plugin.ts
#	packages/ui/test/component/layout.test.tsx
2026-07-20 22:09:34 +08:00
musi
ee0c8d08bb
Merge pull request #1569 from H-TTTTT/fix/provider-plugin-bearer-public
fix(opencode): stop forcing Bearer public on public local-agent imports
2026-07-20 22:02:52 +08:00
musistudio
6c1a90889b Refactor router implementation and configuration 2026-07-20 20:21:18 +08:00
musistudio
fcf66919a1 Merge remote-tracking branch 'origin/dev/3.1' into dev/3.1
# Conflicts:
#	README.md
#	README_zh.md
2026-07-20 18:31:04 +08:00
musistudio
ea35ed2eaa Add model summaries to request logs 2026-07-20 15:57:13 +08:00
musistudio
ecdf2fec0f Support xAI video generation and isolate Codex authentication 2026-07-20 15:38:13 +08:00
musistudio
225b3c23df Improve Codex authentication and app-server launch handling 2026-07-20 14:36:26 +08:00
musistudio
42cc9dbd74 Add NVIDIA NIM provider preset and preserve Claude model selection 2026-07-20 11:08:04 +08:00
musistudio
3f8d450366 Refactor routing architecture and update related modules 2026-07-20 10:10:57 +08:00
H-TTTTT
ba3b34e189 fix(opencode): stop forcing Bearer public on public local-agent imports
Public OpenCode imports wrote strict providerPlugins auth with
authorization: Bearer public, which overrode a later real Providers
api_key edit and caused upstream 401s. Put the public token on the
provider api key instead and skip the plugin override.

Fixes #1562
2026-07-20 09:32:17 +08:00
musistudio
5021cc35c0 Enable apply_patch bridging for all non-GPT Codex models 2026-07-20 07:13:53 +08:00
musi
d21950bdbd
Merge pull request #1561 from jesieleo/fix/claude-subagent-model-routing
fix(gateway):网关对子代理模型配置的处理,并规范化 Responses API 请求(@the-next-ai/ai-gateway 升级到 1.0.10)
2026-07-19 22:05:35 +08:00
musi
58899dc594 Merge remote-tracking branch 'origin/dev/3.1' into dev/3.1 2026-07-19 22:01:56 +08:00
musi
5a73d1d65b
Merge pull request #1566 from jesieleo/fix/tray-activity-tooltip-theme
fix(ui): 修复暗色主题显示与托盘同步
2026-07-19 21:59:20 +08:00
musi
2a7f7fbe8d
Merge pull request #1565 from jesieleo/fix/update-dialog-entry
fix(ui): 修复更新入口自动触发下载
2026-07-19 21:52:33 +08:00
musistudio
9fb8a89831 Update routing workflows and supporting configuration 2026-07-19 20:07:40 +08:00
jesieleo
107863919c fix(theme): synchronize dark mode across app and tray 2026-07-19 13:16:29 +08:00
jesieleo
c054086a91 fix(ui): keep update entry from auto-downloading 2026-07-19 11:30:07 +08:00
jesieleo
e298524965 fix: route Claude subagents with latest gateway requests 2026-07-18 17:15:06 +08:00
OpenCode Builder
5c4bc584c7 test(claude-app): lock in routable discovery default for #1535
The hardcoded CLAUDE_APP_FALLBACK_MODEL ("claude-sonnet-4-5") that issue
#1535 reported was already removed in 7b0e203 ("Refine Claude app model
discovery and fallback routing"), so GET /v1/models no longer surfaces the
unroutable bare fallback as the first/default model, and the model registry
now resolves a bare "claude-sonnet-4-5" to its configured provider.

Add a regression test using the issue's exact three-provider config that
asserts both invariants: the discovered default round-trips through the
request rewrite path to a provider-prefixed selector, and a bare fallback id
resolves to a provider rather than falling into model-chain fallback.

Fixes #1535
2026-07-17 10:23:16 +08:00
musi
a9c972cbfc update readme 2026-07-17 08:38:35 +08:00
musistudio
6b5e5a8d00 Merge branch 'main' into dev/3.1 2026-07-16 14:24:26 +08:00
musistudio
f18759aa8f Add ultra effort and refine model reasoning profiles 2026-07-16 11:23:24 +08:00
musi
5b8f64160e Refactor router internals and update related integrations 2026-07-16 09:29:48 +08:00
camjac251
15c7254ab1
chore: sync listener readiness test with main
Upstream moved the regression into the core package and added a
loopback-bind skip. Preserve that handling while keeping the bounded
readiness probes after successful listener startup.
2026-07-15 14:58:40 -04:00
musi
19973394d2 Merge dev/3.1 into main for v3.0.14 2026-07-15 23:00:32 +08:00
musi
4156fdea27 chore: release 3.0.14 and cli docker 3.0.6 2026-07-15 23:00:04 +08:00
musi
9b3339e4e4 Merge branch 'main' into dev/3.1
# Conflicts:
#	packages/core/src/gateway/request/pipeline.ts
#	packages/core/src/observability/request-log-store.ts
#	packages/core/test/integration/observability/request-log-store.test.mjs
#	packages/core/test/unit/agents/gateway-upstream-error-log.test.mjs
#	packages/core/test/unit/agents/provider-model-metadata.test.mjs
2026-07-15 22:08:49 +08:00