# mvirt 0.29.11

migrations: no
wire: unchanged
floor: undeclared
rev: a2c590eee89c1414c6b64f96ad9360142ee25ed1
meta-migrations: yes
  meta migration 4 cell-push-ledger

mvirt 0.29.11

A planned reboot hands its NAT anchors over for real, the platform sees a
degraded transit, and the meta-plane can run more than one replica.

- node: the planned-shutdown hand-over (#400) now triggers from logind's
  PrepareForShutdown under a delay inhibitor (InhibitDelayMaxSec=30s on
  nodes); `systemctl is-system-running` returned empty during a real reboot
  on 0.29.10, so it never fired. Effective from the roll AFTER this one
  (each host shuts down with its old agent).
- ebpf, node, cplane, console: the anchor of a GRE block probes the tunnel's
  inner peer (1 echo/2 s) and reports a transit verdict ok|degraded|dark with
  loss and RTT into status.failover.transit, with hysteresis and activity-log
  transitions (#421).
- meta: pushes to cells (membership, version, backups) are persisted and
  converged by whichever replica holds the cell's tunnel, with retry and a
  push ledger; tunnel-session ownership guards stale connections (#247).
  Meta migration 4 (cell-push-ledger) — roll the meta image forward only.
- release: release-facts/CI track the meta-plane's own migrations
  (`meta-migrations:` line) (#422).


## Upgrading

Point your flake's `mvirt` input at this release and redeploy the control-plane
host first, then each node in turn:

```
nix run .#colmena -- apply boot --reboot --on <control-plane host>
nix run .#colmena -- apply boot --reboot --on <node>   # one at a time
```

This release adds no migrations, so the control-plane host rolls back the same way
a node does: boot the previous NixOS generation.
