Repository navigation
OpenRig v0.5.2 — test system exercises for real + crash-cart fleet-restore conductor
OpenRig v0.5.2
Summary — Test system exercises for real; crash-cart conductor; reliability fixes
v0.5.2 puts the v0.5.1 test system to work. The reliability fixes in this release were found and validated by scenarios that drive the real product through the same commands a person uses. The headline lands: a crash-cart fleet-restore conductor that takes you from a dead daemon to a truthful cockpit and back to a live fleet with one keystroke.
v0.5.2 contains v0.5.1 in full. One lineage, no divergence.
No new migrations in this release. v0.5.1 already shipped migrations 068-071 (with 068 and 071 as a matched create / drop-if-exists pair, net no-op for any v0.5.0→v0.5.1 upgrade). v0.5.2 stays at migration 071. No CLI-command or flag removals or renames from v0.5.1.
What Shipped
Crash-cart fleet-restore conductor (headline)
Type bare rig at a dead daemon and reach a truthful cockpit — no cryptic error, no silent failure. One Enter restores the fleet kernel-first, adopts any surviving tmux panes (never clobbers them), and presents an exact per-seat remediation walkable in one keystroke. Cancel is honest. Destructive restore is only offered when adoption cannot succeed. Ten build rounds, four independent gates, non-author QA door test.
Daemon event-loop no longer hangs under load
A class of daemon event-loop freeze under load is fixed and measured. If your daemon was going unresponsive under fleet-wide activity, that's this class.
Unattended Claude seat handover
When a Claude seat needs to hand over (compaction, session boundary, explicit handover request), the outgoing seat now writes a recap and submits its packet automatically — the incoming seat picks up with the recap in hand rather than a cold start. Door-proven end-to-end.
rig policy handles adversarial input honestly
Malformed or hostile policy input now produces honest structured errors rather than silent failure or unexpected behaviour. Three review rounds.
Cross-host messages carry their machine of origin
Messages sent across hosts now include the machine they came from, so multi-host coordination reads correctly at the receiving end. Enforced end-to-end via door tests.
Codex model-config drift detector
A new detector for a class of Codex model-config drift that would previously go unnoticed. Caught real cases on landing.
Test-integrity work
- Test runner refuses to run against a dirty tree — a green run now means green source, not accidentally-uncommitted state.
- Hermetic test roots.
- Flaky fixtures isolated.
Governance in code
Plan locks are explicit (chosen when you ask for one), not inherited from ambient state. Wake is opt-in.
Container tar-file hang eliminated at the seam
A class of container tar-file hang is dead by construction — not worked around, but the seam that made it possible is closed.
Known Limitations (5.3 backlog)
Ledgered honestly for the next release cycle. Named so you know what's not yet fixed:
- Reply-hint self-qualify — reply-hints on some cross-host messages address themselves via machine-ID rather than registered host name; using the reply-hint directly may fail with "no registered host X". Substitute the registered host name from
rig host list. Fix in 5.3. rig queue handoff --summarywarns yet the field is unsettable on its own output. Fix in 5.3.rig send --verifydoes not detect staged-unsent for multi-line sends toward Claude seats. Multi-line sends can stage silently.- Claude transcripts thin under fullscreen upsell — upstream fullscreen upsell writes
"tui":"fullscreen"; one accepted prompt can re-flip a fleet. Fix + pin + prevention in 5.3. - Test runners can silently skip on unbuilt trees — a final-gate rule (build CLI + assert zero skips) is adopted for the release ceremony; the product-side fix lands in 5.3.
seat-handovermodel-fidelity real-Codex end-to-end fails identically on main (environment-vs-product distinction unrooted). Isolation fix in 5.3.
Plus a handful of internal debt items ledgered for maintenance.
Behavior + Compatibility
- Migrations — none in this release. v0.5.1 shipped 068-071 (068 CREATE + 071 DROP-IF-EXISTS pair, net no-op for v0.5.0→v0.5.1 upgraders); v0.5.2 stays at 071.
- API surface preserved — no CLI-command or flag removals or renames from v0.5.1.
- v0.5.2 contains v0.5.1 — one lineage, no divergence.
See Also
CHANGELOG.md— the[0.5.2]entry.docs/releases/v0.5.1.md— the prior release (a test system for the product + reliability fixes).- GitHub Release: https://github.com/mvschwarz/openrig/releases/tag/v0.5.2