§24. Changes from v4.1
planarian @ a924e09 · Spec v4.6 · snapshot main · all versions
- §12: takeover requires confirmed quiescence (jobs cancelled and gone, workers reaped); a drain timeout ends in
RecoveryFailed, never in proceeding; lease transfer is atomic viaflockplus rename; the watchdog triggers onPublished/Promotedtoo and, fromChecking, completes the whole authorized commit path or reverts. - §8/§12: per-transition
HandlerandRecoveryStrategyindependent of tier;Rollbackis a generation operation even at Runtime tier;BindDriveris a device operation withUnbindDevicerecovery; the crash-recovery table branches on strategy. - §9/§12b: transaction-specific
base.nixwith content-hash identities; promotion and restoration idempotent by hash comparison; no shared.prev; GC root created atBuiltand kept through approval; dirty-Git staging defined by Nix-visible bytes. - §12c: length-prefixed CRC’d records with torn-tail handling; checkpoint-then-truncate compaction preserving all live state; filesystem contract for ext4/XFS/btrfs/ZFS with a sentinel fallback.
- §8/§10:
SideEffects::Measurementpermits bounded network/local I/O for Readiness probes;RemoteStateChangestays Diagnostic; external dependencies are units with edges.