v0.63.0: surface agent wipe_durable_id (F20-BUG2) + guest_attached (F9) on /api/disks

The agent (v0.31.0) now returns these on /disks, but the controller dropped them when
re-marshalling into its agentapi.DiskInfo mirror. Added both fields (additive) so they reach
/api/disks + the dashboard: wipe_durable_id (gate scheme, for the wipe-confirm) and guest_attached
(drive bound into THIS guest vs merely host-present). Controller behaviour otherwise unchanged.
This commit is contained in:
2026-06-14 15:21:29 +02:00
parent 246213bd11
commit 688ba0d2a5
2 changed files with 22 additions and 0 deletions
+14
View File
@@ -1,5 +1,19 @@
## Changelog
### v0.63.0 — reflect agent F9/F20-BUG2 disk fields (2026-06-14)
Pass through two new fields the host agent (v0.31.0) now returns on `/disks`, so they reach
`/api/disks` and the dashboard (the controller previously dropped them when re-marshalling the agent
response). Additive only — `agentapi.DiskInfo` gains:
- **`wipe_durable_id`** (F20-BUG2) — the device's wipe-binding id in the gate's scheme
(`byid:`/`byuuid:`), distinct from `durable_id` (`uuid:`, used for assign). A customer-confirmed
data-bearing wipe must carry THIS id; confirming with the `uuid:` id was rejected (binding_mismatch).
- **`guest_attached`** (F9) — whether the drive is actually bound into this guest (usable in-guest) vs
merely present on the host — the signal whose absence let an unattached HDD look available.
No behaviour change in the controller itself; the agent owns the fix. (Agent v0.31.0: F9 startup
bind re-assert, F20-BUG2 single wipe-id scheme, F20-BUG3 detached/restart-surviving format.)
### v0.62.0 — M18 + M19 backlog fixes (2026-06-14)
Two verified-LIVE backlog bugs (preserved fix-plans in `felhom.eu/documentation/backlog/`), implemented
+8
View File
@@ -245,6 +245,14 @@ type DiskInfo struct {
// fs UUID (strip the "uuid:" prefix) is the key the controller passes to AssignDisk — it's the
// only way the de-privileged controller learns a mount key it cannot read off the device itself.
DurableID string `json:"durable_id"`
// WipeDurableID is the device's wipe-binding id in the gate's scheme (byid:<wwn>/byuuid:<uuid>) —
// the id a customer-confirmed data-bearing wipe must carry (F20-BUG2). DISTINCT from DurableID
// (uuid:, used for assign): confirming a wipe with DurableID was rejected (binding_mismatch).
WipeDurableID string `json:"wipe_durable_id,omitempty"`
// GuestAttached reports whether the drive is actually bound into THIS guest (usable in-guest), as
// opposed to merely present on the host (F9) — the signal whose absence let the HDD look available
// when it wasn't attached.
GuestAttached bool `json:"guest_attached"`
}
// FSUUID returns the raw filesystem UUID from a "uuid:<…>" DurableID, or "" if this disk's identity