Fix: Fleet was silently stuck on stale Claude model IDs
The problem
apra-fleet, and its vendored apra-pm workflow, hardcoded dated Claude model IDs (e.g. claude-sonnet-4-6) for the cheap/standard/premium tiers. As a result, even after Anthropic released Claude Sonnet 5, the fleet kept dispatching the old Sonnet 4.6 model for every task. This was confirmed via a live end-to-end run that showed stale model usage despite the new model being available.
The fix
- Replaced pinned dated model IDs with the bare Claude model-family aliases (
haiku/sonnet/opus). - Both the Claude CLI and
settings.json'sdefaultModelresolve these aliases to the current model generation automatically, so no code change is needed when a new model ships. - Verified end-to-end: after updating the CLI on the runners,
execute_promptwith thestandardtier resolved toclaude-sonnet-5.
Why this matters
- Immediate: Claude Sonnet 5 can now actually be used by the fleet.
- Future-proof: subsequent releases (Sonnet 6, Opus 5, etc.) will be picked up automatically via the alias mechanism, with no further hardcoded-ID hunting or patching across the codebase.
Vendored dependency
The vendored apra-pm submodule was updated to pull in the equivalent upstream fix: Apra-Labs/apra-pm#16.
What's Changed
Full Changelog: v0.3.3...v0.3.4