# mvirt 0.24.1

migrations: no
wire: unchanged
rev: cb4eab81ff4d220d9f32ae0ce155273099d149d3

mvirt 0.24.1

A patch release that stops the control plane from restarting itself on every
raft leadership change.

What changed

- #340: the `control_plane` item of a node's slice rendered `join_mode` from
  which replica compiled it, so every election flipped the value on the old and
  the new leader's host, and mvirt-node restarted `mvirt-cplane` on both. The
  value is now constant on both sides: the control plane always renders "join",
  and mvirt-node always writes `MVIRT_CPLANE_JOIN_MODE=1`, so an upgraded node
  is stable even against an older leader mid-roll.
- A platform-driven control-plane restart now logs `control-plane placement
  changed` at WARN with the env keys that moved.
- Runbooks: the release roll no longer warns about #340's restarts, and the
  coordinated cold start identifies the last leader by `isLeader` in
  `replica-status.json`.

Upgrade: ordinary host-by-host roll (release.md §C1). No store migration.


## 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.
