The tofu apply deferred by the D-119 commit. Executed after explicit operator authorization.
A LIVE re-check immediately before the apply (not the earlier measurement):
dc1-* / mesh-dc* networks -> 0 DHCP leases each dc1-pool / dc2-pool -> 0 volumes each every libvirt domain -> none references a dc1-*/mesh-dc* network
Then a fresh tofu plan: 11 to add, 0 to change, 11 to destroy -- all must be replaced (the moved{} blocks). Confirmed empty, so the replace is safe (standing lesson 2: an apply touching a live libvirt object's devices is an outage -- none of these carried anything).
Apply complete! Resources: 11 added, 0 changed, 11 destroyed.
Verified ON THE HOST, not just in state:
vr1_dc0_* / vr1_dc1_* / mesh_vr1_*;tofu plan -> "No changes" (repo/state back in sync);vr1-dc0-{provider-public,metal-admin,metal-internal,data-tenant,storage,replication}, mesh-vr1-dc0-office1, mesh-vr1-dc0-vr1-dc1, mesh-vr1-dc1-office1, vr1-dc0-pool, vr1-dc1-pool;dc1-*/dc2-*/mesh-dc* network or pool names remain.Office1 was never in the plan and is untouched: office1-local, office1-wan, wan, the office1-opnsense edge and voffice1 all present; edge (10.10.0.1) and voffice1 (10.10.0.20) both reachable after the apply.
Carrying divergent repo/state into Stage 3 would let a Stage-3 tofu apply silently bundle this 11-resource rename with real DC provisioning. Applying it now, while the objects are empty, kept the rename a clean standalone change.
The moved{} blocks are symmetric; reverting the D-119 code commit and re-applying renames back. There is nothing to preserve in these objects (they are empty), so a revert is a pure rename.