controller v0.67.3: startup recreate of boot-stale drive-backed apps

Completes guest-reboot convergence. driveGateLoop runs recreateBootStaleApps once
at startup: deployed drive-backed apps whose drive is present (BoundUnderParent)
and whose containers started recently (fresh guest boot, not a controller-only
restart) are recreated (down+up) onto the re-propagated drive. Paired with agent
v0.35.0's drive re-propagation.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-15 17:40:19 +02:00
parent 3adfa41a09
commit 91a6dcfa75
2 changed files with 88 additions and 1 deletions
+12
View File
@@ -1,5 +1,17 @@
## Changelog
### v0.67.3 — gate: startup recreate of boot-stale drive-backed apps (2026-06-15)
Completes guest-reboot convergence (caught in the live migration). On a guest reboot docker auto-starts
the app containers (restart:unless-stopped) potentially BEFORE the agent re-propagates the drive under
the parent, so they bind the empty fail-closed stable dir and (leaf-bind pinning) never pick up the
later propagation. `driveGateLoop` now runs a one-time `recreateBootStaleApps` at startup (the controller
restarts with the guest): for each deployed drive-backed app whose drive is NOW present
(BoundUnderParent) and whose containers started recently (a fresh boot, not a controller-only restart —
`stackStartedRecently`), it recreates the app (down+up) onto the populated path. Apps whose drive is
still absent are left to the normal stop→return→restart gate. Paired with agent v0.35.0 (the drive
re-propagation).
### v0.67.2 — gate: key "present" on BoundUnderParent (reboot convergence) (2026-06-15)
The drive-absent gate now treats a stable path as usable only when the agent reports it BOUND UNDER THE