v0.318.0: the internal data place, partitions, an honest whole-box backup offer (R-1084), sys_drive never offered (R-1082)
gates / gates (push) Successful in 46s

felhom.eu architecture/16 §4-§6 (build B). MinAgent 0.157.0 — the internal place and the partitions appear only when
agent >= 0.158.0 reports them. Tests red-proved; four parity fixtures refreshed (only the new lines).

Claude-Session: https://claude.ai/code/session_012qRErfCoiTkvDK9N5XHbzb
This commit is contained in:
2026-10-16 03:57:49 +02:00
parent 123d2d553f
commit a43d0423d5
28 changed files with 913 additions and 26 deletions
+8
View File
@@ -563,6 +563,11 @@ type CrossDriveBackup struct {
const (
StorageKindDrive = "drive"
StorageKindNetwork = "network"
// StorageKindInternal (v0.318.0, felhom.eu architecture/16 §5) is the one-disk box's internal data place
// („Belső tárhely"): a volume on the SYSTEM disk the agent mounts like a drive. Apps and their data live there;
// the drive lifecycle that would remove or format it (eject, decommission, wipe) does not apply — moving its data
// to another drive does.
StorageKindInternal = "internal"
)
// NetworkMountRoot is the in-guest path under which the agent propagates NAS shares (mirrors the agent's
@@ -635,6 +640,9 @@ type StoragePath struct {
// lifecycle (eject/decommission/migrate/wipe/SMART) must NEVER be applied to a network path.
func (p StoragePath) IsNetwork() bool { return p.Kind == StorageKindNetwork }
// IsInternal reports whether this is the internal data place (`16` §5).
func (p StoragePath) IsInternal() bool { return p.Kind == StorageKindInternal }
// NotificationPrefs holds customer notification preferences.
type NotificationPrefs struct {
Email string `json:"email,omitempty"`