Skip to content

chore(deps): bump bundled agents to latest + add Claude Opus 5#944

Merged
dohooo merged 4 commits into
mainfrom
automation/bump-bundled-vendors
Jul 24, 2026
Merged

chore(deps): bump bundled agents to latest + add Claude Opus 5#944
dohooo merged 4 commits into
mainfrom
automation/bump-bundled-vendors

Conversation

@dohooo

@dohooo dohooo commented Jul 24, 2026

Copy link
Copy Markdown
Owner

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.

File Change
src-tauri/src/agents/catalog.rs Add claude-opus-5[1m] above 4.8 in official_claude_section(); repoint DEFAULT_CLAUDE_MODEL_IDS
sidecar/src/model-catalog.ts Same entry (kept in sync with the Rust catalog per its own header comment)
src/lib/provider-config.ts Same default swap on the frontend
src/shell/hooks/use-ensure-default-model.ts Repoint the Claude fallback default
.changeset/add-opus-5-model.md New minor changeset

Model config: claude-opus-5[1m], label "Opus 5 1M", effort levels low/medium/high/xhigh/max, fast mode enabled.

Two things worth a reviewer's attention:

  • The [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. Confirmed claude-opus-5[1m] is present in the bundled claude-code 2.1.219 binary before pinning it.
  • use-ensure-default-model.ts was changed beyond the literal ask. It hard-looked-up claude-opus-4-8[1m] as the Claude fallback. Once 4.8 left the default-enabled set that lookup would miss and fall through to claudeOptions[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_models case 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)

Vendor Current Target Notes
@anthropic-ai/claude-agent-sdk 0.3.217 0.3.219 lockstep with claude-code
@anthropic-ai/claude-code 2.1.217 2.1.219 lockstep; SHA256 added (arm64 + x64)
Kimi (KIMI_VERSION) 0.21.0 0.29.1 SHA256 added (darwin-arm64/x64, win32-arm64/x64)
@openai/codex 0.145.0 0.145.0 already current
@cursor/sdk 1.0.24 1.0.24 already current
@opencode-ai/sdk + opencode-ai 1.18.4 1.18.4 already current

All targets are the stable channel (npm latest dist-tag; latest non-prerelease GitHub release for Kimi). Codex 0.146.0-alpha.6 was deliberately not taken — alpha.

Claude lockstep verified: node_modules/@anthropic-ai/claude-agent-sdk/package.json reports claudeCodeVersion: "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 carries protocolVersion: 1 along with the initialize / session/new / session/prompt / session/update methods Helmor drives, so the handshake contract is unchanged. Worth a manual kimi acp smoke-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

Gate Result
bun install pass
bun run typecheck (frontend + sidecar) pass
bun test (sidecar) pass — 418 pass, 1 skip, 0 fail
vitest run (frontend) pass — 1666 pass across 161 files
cargo test --lib agents::catalog pass — 46 pass
cargo test --test pipeline_scenarios --test pipeline_fixtures --test pipeline_streams pass — 119 scenarios + fixtures + stream_replay
biome check clean
cargo fmt --check clean

Two 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_winsize vs script_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 for bytes_to_rounded_gb / recommend_for_ram in src/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 build was not run locally (heavy; stage-vendor.ts untouched) — CI exercises the full staging + SHA256 verification, which is the gate that would catch a bad hash.

- 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
@vercel

vercel Bot commented Jul 24, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated (UTC)
helmor-marketing Ignored Ignored Preview Jul 24, 2026 7:03pm

Request Review

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
@dohooo dohooo changed the title chore(deps): bump bundled agents to latest chore(deps): bump bundled agents to latest + add Claude Opus 5 Jul 24, 2026
claude added 2 commits July 24, 2026 18:47
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
@dohooo
dohooo merged commit 76b21ad into main Jul 24, 2026
15 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants