963 Commits
Author SHA1 Message Date
musistudio 858189daba chore(release): v3.1.2 v3.1.2 2026-10-08 18:37:56 +08:00
musistudio 26e7b0b72c fix codex worksapce error 2026-10-08 18:19:30 +08:00
musistudio ff3c99aef2 Verify issue reproductions and close remaining regression gaps 2026-09-28 00:03:19 +08:00
musistudio 849aa46df3 Fix recent issue regressions in config, OAuth, routing and observability 2026-09-27 11:34:24 +08:00
musi f2e01bfe0c Merge pull request #1820 from Burlesque1/fix/activity-grid-month-label-height
fix(ui): reserve the month label row's real height in activity grids
2026-09-26 23:00:04 +08:00
musi f60a9d4f90 Merge pull request #1821 from googio/feat/serply-search
feat(fusion): add Serply as a web search provider
2026-09-26 18:14:36 +08:00
musi 5469ecdfc9 Merge pull request #1824 from pomelogo/fix/compact-handoff-keep-tool-result
fix(context-archive): keep trailing tool_result when replacing Claude Code compact prompt
2026-09-26 18:13:58 +08:00
musi 0f7de0eb99 Merge pull request #1827 from diogomcd/fix/opencode-public-free-tier
fix: resolve 403 FreeTierError on public OpenCode Zen providers
2026-09-26 18:13:56 +08:00
Diogo Macedo 5488e6635e fix: make public OpenCode Zen free-tier imports pass the client check 2026-09-25 22:04:14 -03:00
liuzechen c7850e1ce2 fix(context-archive): keep trailing tool_result when replacing Claude Code compact prompt 2026-09-23 14:44:06 +08:00
serply 7c3e6465b2 feat(fusion): add Serply as a web search provider
Adds Serply to the hosted web search providers and the built-in Fusion
web_search MCP tool, alongside Brave, Bing, Google CSE, Serper, SerpAPI,
Tavily and Exa. Configured with SERPLY_API_KEY and an optional
SERPLY_SEARCH_ENDPOINT override, like the other providers.
2026-09-22 22:01:16 -04:00
Burlesque1 99715925ee fix(ui): reserve the month label row's real height in activity grids
The activity grids size their cells from the frame's measured height, but
reserve a hard-coded height for the month label row (10px in the dashboard
widget, 8px in the tray widget). The row actually renders ~20px, and its
`mb-1` margin was never accounted for, so the reservation fell short and
`overflow-hidden` on the frame clipped the bottom row.

Measured on v3.1.1, dashboard widget (dimensions 2x2):

  frame (overflow-hidden)  121.5px available
  month label row          20px + 4px margin
  cells grid               7 x 12px + 6 x 3px gap = 102px
  content total            126px  ->  4.5px clipped

Reserve the label row's measured height plus its bottom margin instead, and
drop the vertical use of `monthLabelGap` (it is a column gap). The same
dimensions then compute cellSize 11 instead of 12, giving 119px of content
in the 121.5px frame - no clipping.

Verified in the running dashboard after a rebuild: content 119px vs frame
122px (3px slack), bottom row fully visible.

Fixes #1800
2026-09-22 15:19:21 +00:00
musi 75e9e750c1 Merge pull request #1812 from ysntony/add-kimi-ai-code-link 2026-09-21 06:07:39 +08:00
Tony Yu 0e4f008101 docs: add international Kimi Code link alongside domestic subscription link
kimi.com/code serves mainland China (WeChat / +86 sign-in, Alipay and WeChat Pay), so international readers cannot sign up or pay there.
Add the kimi.ai/code link (Google sign-in, card payment) to the sponsor banner link row and label both plan sites in the intro paragraph of the English and Chinese READMEs, keeping the same aff value.
2026-09-20 23:39:23 +08:00
musistudio 86dfac1c67 Preserve Codex approval reviewer settings 2026-09-20 11:14:00 +08:00
musistudio e52f037d38 Support DeepSeek cache usage for OpenCode Go 2026-09-18 10:22:55 +08:00
musistudio cb88b31668 Coalesce adjacent unsigned Anthropic reasoning fragments 2026-09-17 20:13:02 +08:00
musistudio b7eb827d65 Reuse shared Windows batch escaping helpers 2026-09-17 20:05:29 +08:00
musistudio 503a8c17ae Translate context-limit errors and resolve API key helper conflicts 2026-09-17 20:00:46 +08:00
musistudio aad384b3cf Refresh routed model header on fallback attempts 2026-09-17 19:47:21 +08:00
musistudio a034b0c51c update models.json 2026-09-17 10:02:45 +08:00
musistudio 471e715c20 chore(release): v3.1.1 v3.1.1 2026-09-16 20:09:27 +08:00
musistudio e6207860c1 Merge remote-tracking branch 'origin/main' into feat/v3.1.1 2026-09-16 19:50:08 +08:00
musi 3d6e5dab42 Merge pull request #1771 from ntdatt812/fix/tsconfig-node-project-inputs
fix(tsconfig): give the node project inputs it can actually have
2026-09-16 19:34:42 +08:00
musi a09fedaa6b Merge pull request #1770 from deymosh/fix/log-body.worker.js
fix(docker): include log body worker in UI build
2026-09-16 19:34:14 +08:00
musi 2257535eb5 Merge pull request #1764 from ntdatt812/chore/tsconfig-baseurl
chore(tsconfig): drop baseUrl so the configs survive TypeScript 7
2026-09-16 19:33:49 +08:00
musi 8eefcca276 Merge pull request #1774 from zeal-up/fix/usage-client-visible-selector-attribution
fix(usage): attribute client-visible provider-prefixed response models to the bare model
2026-09-16 19:18:05 +08:00
musistudio 7a711b9006 Merge branch 'main' into feat/v3.1.1 2026-09-16 11:08:47 +08:00
musi cbe5f7bb3b Merge pull request #1782 from syf2211/fix/ccr-start-daemon-flag-1246
fix(cli): accept --daemon on start and serve commands
2026-09-15 20:17:15 +08:00
musi 175109d4bb Merge pull request #1786 from Aser-Osama/feat/opencode-go-support
feat(opencode): add first-class OpenCode Go local import
2026-09-15 20:11:34 +08:00
musi 8fa1a666ab Merge pull request #1790 from cpruijsen/fix/issue-1787
fix(usage): price routed models instead of rule aliases (#1787)
2026-09-15 19:58:34 +08:00
musi ef02b463a7 Merge pull request #1794 from fszcd/fix/gateway-config-acceptance-timeout
fix(gateway): raise and make configurable the core config-acceptance timeout
2026-09-15 19:48:45 +08:00
musistudio 74eb2df83d Size activity grids to available space 2026-09-15 19:43:26 +08:00
musi 570d0793ce Merge pull request #1773 from zeal-up/fix/aggregate-error-attempt-details
fix(gateway): surface per-attempt failure details in aggregate error messages
2026-09-15 19:35:21 +08:00
musistudio 1691980170 Default Codex app approvals to user review 2026-09-15 19:31:54 +08:00
musistudio 774bfb85b7 Add live token rate tracking and stream metrics 2026-09-14 10:45:53 +08:00
ggbond 35207da958 fix(gateway): raise and make configurable the core config-acceptance timeout (#1761) 2026-09-13 22:12:14 +08:00
Christopher Pruijsen 6922a7130c fix(usage): price routed models instead of rule aliases (#1787) 2026-09-12 04:10:11 +01:00
Aser-Osama 0c070c6201 fix(opencode-go): read account usage from the official usage endpoint 2026-09-12 00:01:56 +03:00
Aser-Osama 3f3bc9be88 fix(opencode-go): harden discovery and session precedence 2026-09-11 05:07:30 +03:00
Aser-Osama e84d6927e5 fix(opencode-go): align credentials and discovered models 2026-09-11 04:09:27 +03:00
Aser-Osama 14df423cd0 fix(opencode-go): support Go provider identity and required session header
OpenCode Go now requires x-opencode-session on requests to
https://opencode.ai/zen/go/v1; without it users receive 400 MissingSessionID
(#1754, #1780). Injecting that header safely requires CCR to know which
provider is really Go, so OpenCode Go is now a distinct local provider from
Zen when reading OpenCode configuration, credentials, and cached catalog
metadata.

- Read opencode and opencode-go entries independently from models.json,
  opencode.json[c], auth.json, and OPENCODE_GO_API_KEY.
- Add x-opencode-session only for the official Go endpoint: explicit
  configuration wins, otherwise forward x-claude-code-session-id or
  x-claude-session-id, then metadata.user_id, then a stable process-level
  fallback; values are sanitized for header safety.
- Keep Zen discovery/import unchanged, including public models, candidate
  ids, fallback models, plugin suffixes, and the model cap.
- Keep Go and Zen separately importable and scope provider model discovery
  to the requested protocol so Go providers only list models that work on
  that protocol.
- Preserve catalog model ids, display names, and protocol classification;
  surface locked Go candidates with actionable guidance; update EN/ZH docs.
2026-09-11 03:49:42 +03:00
musistudio afba89fa37 Refactor router configuration and request handling 2026-09-10 14:47:43 +08:00
musistudio 996c7f0986 Fix release lockfile dependency sync v3.1.0 2026-09-10 14:21:54 +08:00
musistudio cfe7d530d1 Update model catalog for 3.1.0 2026-09-10 14:11:51 +08:00
musistudio 0712db134f chore(release): 3.1.0 2026-09-10 11:53:12 +08:00
musistudio 49fdd1a4a4 fix(claude-design): preserve interactive style questions 2026-09-10 11:20:47 +08:00
syf2211 2f905c327e fix(cli): accept --daemon on start and serve commands
Fixes #1246. Parse --daemon for service commands and route serve/web
through startService when it is set so foreground serve can run in the
background. start and ui already daemonize by default; the flag is now
accepted for backward compatibility with documented usage.

Tests: npm --workspace @musistudio/claude-code-router test (6 passed)
2026-09-10 00:09:52 +00: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