Skip to content

0.49.0 — Every agent pinned to Opus 5.5 at medium

Choose a tag to compare

@mikebronner mikebronner released this 23 Sep 14:34
· 17 commits to main since this release

⚠️ Your existing config does not change on its own

Setup never rewrites ~/.claude-workbench/dev-team-config.json without your say-so. After updating, re-run /workbench-dev-team:setup.

It compares each agent's model and effort against the new pin. For every agent that differs, it shows the current value and the replacement, then asks. Until you answer Replace, dispatch keeps using your old values, because config flags beat agent frontmatter.

📌 What changed

All three agents now ship the same exact pin:

Agent Before Now
Lestrade sonnet / high claude-opus-5-5[1m] / medium
Holmes opus / high claude-opus-5-5[1m] / medium
Watson opus / session effort claude-opus-5-5[1m] / medium

lensModel, fanout, fallback, and maxBudgetUsd are unchanged.

🧭 Why

  • Exact ID, not the opus alias. The alias moves to the next Opus release without anyone approving it.
  • [1m]. It keeps the 1M context window the agents budget their working context against.
  • medium for all three, Holmes included. Anthropic publishes Opus 5.5 guidance on this. At medium, Opus 5.5 beats Opus 5 at high on coding and code review. At the same level, Opus 5.5 also thinks more per turn than Opus 5.

Watch Holmes's bounce and escalation rate after the switch. Raise it to high only if either gets worse.

🔧 How the pin reaches both dispatch paths

  • Interactive. The Agent tool's model parameter accepts aliases only, and it overrides frontmatter. So setup's Step 6a now stamps model into agent frontmatter alongside effort, and the orchestrate skill never passes that parameter.
  • Scheduled. bin/dispatch-agent.sh passes --model and --effort only when the config names them. It keeps no baked-in model default.
  • Deliberate opt-outs. CLAUDE_CODE_SUBAGENT_MODEL with CLAUDE_CODE_SUBAGENT_MODEL_FORCE=1 beats the frontmatter model. CLAUDE_CODE_EFFORT_LEVEL beats --effort on the scheduled path.

🛡️ Hardening found in review

Two Holmes local reviews found six blockers, and all six are fixed:

  • The model validator accepted a value spanning several lines. It now refuses any newline.
  • A wrong-shaped config entry (for example "watson": "opus") is reported for a manual fix, never offered for replacement.
  • A failed config write, including a failed mv, now exits 1 and leaves the file byte-for-byte unchanged.

✅ Tests

New commands/test-config-pin.sh has 28 cases. agents/test-effort-stamp.sh and bin/test-dispatch-agent.sh now enforce the pin for all three agents. Every new guard was broken on purpose, and its test went red. The full suite passes.