# mvirt 0.16.0

migrations: no
wire: unchanged
rev: c03ac2faa6771917ae1e25319cf7917d770c1e9e

0.16.0 — managed databases without wiring them up

The Postgres and Valkey engines have been finished and drilled since ADR-0060 M5
and ADR-0061 M5, but the last step was never automated: a controller only ran if
someone pushed its image somewhere, minted it a service account with the right
two roles, published an offering by hand and pointed the two at each other. Miss
any of it and the Managed services page is empty, with nothing saying what is
missing. That is what every fresh install has looked like.

Both controllers are ADR-0056 system apps now, declared by the control plane
itself (ADR-0056 D9) rather than by a manifest section every installation would
have written identically. The component adapter provisions the offering with a
starting plan ladder, a service account bound to editor + service-provider, and
its API key in a deterministic project secret. The seed fires only on absence,
waits for the infra project's network rather than creating one, and leaves a
component an operator switched off switched off. The offering itself is seeded
project-visible: running a controller is a statement about what the platform
runs, publishing the product one about what the operator sells.

Platform > Managed services gains a Database engines block — each controller's
switch, live phase and hold reason, beside the catalogue it serves.

Also: the AI assistant's shipped default model is zai-org/GLM-5.3-Flash, in the
setup wizard, the admin panel and the docs.


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