v13.12.1
commaai/openpilotv13.12.1Jul 23, 2026by thedotmack
AI Summary
This critical update corrects a logic error in the worker-script resolver that caused an infinite restart loop during plugin upgrades, protecting the host machine from process exhaustion.
Key Highlights
- Fixes the infinite worker restart storm caused by mtime-based plugin caching.
- Updates all resolvers to use version ranking instead of modification time.
- Prevents process table exhaustion during plugin upgrades.
Full Release Notes
## Critical fix: worker restart storm Fixes an infinite worker restart loop triggered by plugin upgrades. The worker-script resolver ranked plugin cache directories by **mtime**, so when Claude Code stamped a superseded version dir with `.orphaned_at` (bumping its mtime), every restart respawned the **old** version while hooks on the new version kept demanding a restart — spawning hundreds of processes until the host machine exhausted its process table. All four resolvers (worker successor, MCP launcher, Codex Windows launcher, POSIX hook prelude) now rank cache dirs by **version** — never mtime — skip orphan-stamped dirs, and share one deterministic version oracle with the staleness detector (`checkVersionMatch`), making the restart loop structurally impossible. **Recommended upgrade for all users.** Note: the vulnerable resolver is the one running *during* an upgrade, so machines are protected from the next upgrade onward. Details: #3371