v13.5.7
parruda/swarmv13.5.7Jun 13, 2026by thedotmack
AI Summary
Fixes a critical issue where stale Claude CLI binaries could silently kill all observations by improving binary detection and capability probing.
Key Highlights
- Probes every candidate for capability instead of just existence
- Prefers the newest capable version and fails loud on errors
- Self-heals on CLI updates without worker restart
- Captures 2KB stderr tail from SDK children
New Features
- CLI capability probing and version validation
Full Release Notes
## What's Fixed ### Stale Claude CLI can no longer silently kill every observation (#2911) If an abandoned npm-global `claude` binary sat earlier in PATH than your current install, every Observer spawn died instantly at flag parsing — worker healthy, zero observations, nothing in the logs. The resolver now: - **Probes every candidate for capability**, not just existence: each CLI is tested with `--permission-mode dontAsk --version`, the exact flags claude-mem passes on every agent spawn. Binaries that reject them (older than the 2.1.x line) are skipped up front with a clear warning. - **Prefers the newest capable version** — PATH order only breaks ties, so a stale binary can't shadow a current one. - **Fails loud, never silent**: an explicit `CLAUDE_CODE_PATH` that's too old throws with the version and the remedy; if every CLI found is too old, the error names each path and version. - **Self-heals on CLI updates**: successful resolutions are cached 15 minutes, failures are never cached — updating your CLI is picked up on the next observation without a worker restart. - **Keeps a 2KB stderr tail** from SDK children, included in exit warnings (and read on `close`, so it's never truncated) — a CLI dying at flag parsing now says why at default log level. ### Build - Bundle-size budgets are now advisory warnings instead of hard build failures.