// Package reconcile is the agent-side control core (slice 4): the engine that // converges actual Proxmox state toward a desired state, the per-guest serializer // that all mutation sources funnel through (doc 03 §10), the field-normalization // layer that keeps Proxmox round-trip quirks from reading as drift, and the durable // operation journal + idempotency store. // // Phase A (this file set) is structural and runs LIVE but UNFED: at slice 4 there is // no desired-state provider (hub serving is slice 10, provisioning is slice 7), so // the live engine computes an empty action set and performs ZERO mutations. The // engine, serializer, normalizer, journal, and planner are all exercised against // synthetic fixtures. The first live convergence arrives when slice 10 serves desired // state into the DesiredProvider seam. // // Phase B (added later) layers the benign/destructive classifier and the // reversibility gate (doc 03 §4) plus the signed-op consuming layer over // internal/authz (doc 04) in front of the queue's executor — so every mutation passes // the gate. Phase A deliberately wires only the benign-on-existing-guest action set: // Start / Stop / SetConfig. // // Action set scope (slice 4): Start, Stop, SetConfig on EXISTING guests only. // Provisioning (restore-to-new-guest) and destroy/overwrite are out of scope here — // the destructive set is classified and gated in Phase B but not wired to live // execution, because nothing serves destructive deltas until slice 10. package reconcile