// Package backup is the guest-level backup + self-restore-test layer (doc 03 §8, slice 6 // Phase A). It orchestrates a crash-consistent vzdump to a LOCAL target, resolves the // produced archive, and drives the self-restore-test (restore → boot → verify → teardown) // through the reconcile engine so it inherits the journal / per-guest serialization / // crash-safe recovery. // // Everything here is BENIGN (backup, restore-to-NEW, scratch teardown): it reuses the // slice-4 classifier/gate/journal via reconcile — no new destructive class, no new crypto. // Restore is to a NEW guest only (no overwrite this slice). PBS / offsite / zero-knowledge // is Phase B. // // Layout: // - runner.go — BackupRunner: vzdump + archive-volid/size resolve + the bulk-volume gap; // restore-candidate picker. // - store.go — in-memory latest-backup-per-target + latest-restore-test, implementing // the hub BackupReporter / RestoreTestReporter seams (point-in-time state // the collector reads; re-populated each cadence/selftest run). // - schedule.go — the restore-test cadence goroutine (default 24h; disabled when 0). // // hub does NOT import this package (the report types live in hub; this package imports hub // for them, mirroring the slice-5 storage seam). This package may import reconcile + hub + // proxmox (acyclic). package backup