8ecf8929fb
The control envelope becomes live: the agent caches the hub's desired-state +
generation and re-fetches GET /hosts/{id}/desired-state only when the
generation advances. A new internal/desired Syncer maps the wire shape into a
reconcile.CachingProvider feeding the engine; benign deltas reconcile, an
explicit guest decommission is gated pending_signature (exec is 10B). Adds the
DesiredStateResponse/WireDesiredState wire types + Client.FetchDesiredState +
the loop EnvelopeObserver seam. Cross-repo golden (envelope + desired-state)
byte-identical with the hub.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
24 lines
527 B
JSON
24 lines
527 B
JSON
{
|
|
"generation": 4,
|
|
"desired_state": {
|
|
"guests": [
|
|
{
|
|
"vmid": 100,
|
|
"run": "running",
|
|
"spec": { "cores": 2, "memory_bytes": 2147483648, "disk_bytes": 21474836480 },
|
|
"description": "felhom: acme prod"
|
|
},
|
|
{
|
|
"vmid": 200,
|
|
"decommission": true
|
|
}
|
|
],
|
|
"pbs_namespace": "felhom-cust-acme",
|
|
"restore_directive": {
|
|
"mode": "guest_loss",
|
|
"archive": "local:backup/vzdump-lxc-200-2026_06_09-11_00_00.tar.zst",
|
|
"vmid": 200
|
|
}
|
|
}
|
|
}
|