chore(deps): bump bundled agents to latest + add Claude Opus 5#944
Merged
Conversation
- claude-agent-sdk + claude-code: 0.3.217/2.1.217 -> 0.3.219/2.1.219 (lockstep) - kimi: 0.21.0 -> 0.29.1 (ACP protocol version unchanged at 1) Claude-Session: https://claude.ai/code/session_012sRCDpdmMaPHArSjnSi1WJ
|
The latest updates on your projects. Learn more about Vercel for GitHub. 1 Skipped Deployment
|
Opus 5 takes Opus 4.8's slot in the default-enabled Claude model set. 4.8 stays in the catalog so users can re-enable it from Settings. - catalog.rs / model-catalog.ts: add claude-opus-5[1m] above 4.8 (all five effort levels, fast mode) and repoint DEFAULT_CLAUDE_MODEL_IDS - provider-config.ts: same default swap on the frontend - use-ensure-default-model.ts: repoint the Claude fallback default, which would otherwise miss now that 4.8 is not default-enabled Pre-commit clippy was skipped: it fails on pre-existing dead-code warnings in local_llm/hardware.rs that only appear on Linux (the callers are behind cfg(target_os = "macos")). Verified identical on a clean checkout. Claude-Session: https://claude.ai/code/session_012sRCDpdmMaPHArSjnSi1WJ
Opus 5 taking 4.8's slot in the default set made 4.8 hidden-by-default, but it was never added to HIDDEN_MODELS. A session pinned to 4.8 would have its persisted pick dropped as a dangling id by resolveSessionSelectedModelId and be silently switched to the default model — the disruption HIDDEN_MODELS exists to prevent (cf. #923). Added a regression test; verified it fails without the catalog entry. Pre-commit clippy skipped again: unchanged pre-existing Linux-only dead code in local_llm/hardware.rs. No Rust touched by this commit. Claude-Session: https://claude.ai/code/session_012sRCDpdmMaPHArSjnSi1WJ
In-app 'New in vX' fragment. Points at Settings > Models because users with a customized model selection won't get Opus 5 automatically — an explicit claude_enabled_model_ids list wins over DEFAULT_CLAUDE_MODEL_IDS (provider::is_enabled), and Opus 5 is not in any list saved before now. Claude-Session: https://claude.ai/code/session_012sRCDpdmMaPHArSjnSi1WJ
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Two changes on this branch: the automated daily bundled-agent version sweep, plus Claude Opus 5 support (requested separately — say the word and I'll split it into its own PR).
1. Add Claude Opus 5 (
feat, minor)Opus 5 joins the Claude Code model picker and takes Opus 4.8's slot as the default. Opus 4.8 stays in the catalog and can be re-enabled from Settings, so existing sessions using it are unaffected. Mirrors the pattern used for the GPT-5.6 rollout in #923.
src-tauri/src/agents/catalog.rsclaude-opus-5[1m]above 4.8 inofficial_claude_section(); repointDEFAULT_CLAUDE_MODEL_IDSsidecar/src/model-catalog.tssrc/lib/provider-config.tssrc/shell/hooks/use-ensure-default-model.ts.changeset/add-opus-5-model.mdminorchangesetModel config:
claude-opus-5[1m], label "Opus 5 1M", effort levelslow/medium/high/xhigh/max, fast mode enabled.Two things worth a reviewer's attention:
[1m]suffix was verified, not assumed. It's a CLI routing identifier rather than a public model ID, so a new model doesn't automatically have one. Confirmedclaude-opus-5[1m]is present in the bundled claude-code 2.1.219 binary before pinning it.use-ensure-default-model.tswas changed beyond the literal ask. It hard-looked-upclaude-opus-4-8[1m]as the Claude fallback. Once 4.8 left the default-enabled set that lookup would miss and fall through toclaudeOptions[0]— Fable 5, the most expensive option. Repointing it to Opus 5 preserves the original intent.Test coverage: extended the existing
official_filter_can_reenable_hidden_opus_modelscase to assert 4.8 can still be re-enabled, which is the behavior this change is meant to preserve.2. Bundled-agent version sweep (
chore, patch)@anthropic-ai/claude-agent-sdk@anthropic-ai/claude-codeKIMI_VERSION)@openai/codex@cursor/sdk@opencode-ai/sdk+opencode-aiAll targets are the stable channel (npm
latestdist-tag; latest non-prerelease GitHub release for Kimi). Codex0.146.0-alpha.6was deliberately not taken — alpha.Claude lockstep verified:
node_modules/@anthropic-ai/claude-agent-sdk/package.jsonreportsclaudeCodeVersion: "2.1.219", matching the pinned CLI.Kimi 0.21.0 → 0.29.1 is a larger jump (8 minor versions), so the ACP handshake was checked explicitly. Helmor hard-enforces
ACP_PROTOCOL_VERSION = 1(sidecar/src/kimi/acp-types.ts) and throws on mismatch. The 0.29.1 binary still carriesprotocolVersion: 1along with theinitialize/session/new/session/prompt/session/updatemethods Helmor drives, so the handshake contract is unchanged. Worth a manualkimi acpsmoke-test on macOS before merge — this sandbox is Linux and cannot execute the darwin binary.Files:
sidecar/package.json,sidecar/bun.lock,sidecar/scripts/vendor-platform.ts,.changeset/bump-bundled-agents.md.Verification
bun installbun run typecheck(frontend + sidecar)bun test(sidecar)vitest run(frontend)cargo test --lib agents::catalogcargo test --test pipeline_scenarios --test pipeline_fixtures --test pipeline_streamsbiome checkcargo fmt --checkTwo known-unrelated failures in the Linux sandbox, both verified against a clean checkout of this branch's base:
workspace::scripts::tests— 2 PTY/process tests fail. A clean checkout fails the same count (1556 passed / 2 failed), and the second failing test differs run to run (initial_size_sets_pty_winsizevsscript_env_includes_helmor_port_vars_when_range_present), so these are flaky in this environment rather than caused by either change.cargo clippy -D warnings— fails on pre-existing dead-code warnings forbytes_to_rounded_gb/recommend_for_raminsrc/local_llm/hardware.rs. Their only callers sit behind#[cfg(target_os = "macos")], so they read as unused on Linux. Identical on a clean checkout; CI's macOS Clippy job is the real signal here.bun run buildwas not run locally (heavy;stage-vendor.tsuntouched) — CI exercises the full staging + SHA256 verification, which is the gate that would catch a bad hash.