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