v0.64.0: additive storage discovery (A1) + internal-SSD label (A2)
A1: AutoDiscoverStoragePaths no longer bails on a non-empty registry; registers only deployed-app paths missing from the registry. Never mutates/removes existing entries, never re-adds or reactivates a path present in ANY state (incl. Decommissioned), never flips IsDefault. A2: InferStorageLabel maps base==felhom-data namespace dir to 'Belső SSD (rendszer)' to disambiguate the internal system volume. Table-driven tests incl. a companion that fails without the skip-by-presence guard. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,5 +1,32 @@
|
||||
## Changelog
|
||||
|
||||
### v0.64.0 — storage-lifecycle cleanups (2026-06-14)
|
||||
|
||||
Two settings-layer cleanups from the F9 storage-registration diagnosis
|
||||
(`felhom.eu/documentation/backlog/DIAGNOSIS-f9-storage-registration-gap-2026-06-14.md`), trunk-based on
|
||||
`main`, each with table-driven tests that fail on the pre-fix code.
|
||||
|
||||
- **A1 — `AutoDiscoverStoragePaths` is now ADDITIVE** (`internal/settings/settings.go`). It previously bailed
|
||||
early (`if len(s.StoragePaths) > 0 { return }`), so a drive a deployed app referenced but that was missing
|
||||
from the registry was never picked up after first run. It now registers only the discovered paths NOT
|
||||
already present, while honouring strict invariants: never removes/modifies a manually-added path; SKIPS any
|
||||
path already in the registry IN ANY STATE — including a `Decommissioned` soft-marked entry — so it can't
|
||||
re-add or reactivate it; never flips `IsDefault` (a newly-discovered path becomes default ONLY if the
|
||||
registry currently has no default at all, and only the first such new path). NOT auto-register-on-attach —
|
||||
it only picks up paths deployed apps already reference (that recommendation was rejected; manual enrollment
|
||||
is by design). New `internal/settings/storage_discovery_test.go` covers it, incl. a companion test that
|
||||
FAILS if the skip-by-presence guard is removed (verified: removing the guard re-adds the decommissioned
|
||||
path).
|
||||
- **A2 — internal-SSD label disambiguation** (`InferStorageLabel`, `internal/settings/settings.go`). A path
|
||||
whose basename is the `felhom-data` namespace dir (the internal system volume, e.g.
|
||||
`/mnt/sys_drive/felhom-data`) previously labelled as `Tárhely (felhom-data)`, colliding with the per-drive
|
||||
felhom-data namespace. It now reads **`Belső SSD (rendszer)`**. Discriminator is `base ==
|
||||
appbackup.FelhomDataDir`; Model-A user drives register their MOUNT ROOT (e.g. `/mnt/felhom-usb`), never
|
||||
`.../felhom-data`, so this can't mislabel a user drive. Still overridable via `SetStorageLabel`. The demo's
|
||||
already-seeded `settings.json` label for that path on guest 9201 was updated out-of-band (the seeded value
|
||||
doesn't auto-change). Separate host-metrics label in `web/agent_host_metrics_handler.go` was intentionally
|
||||
left untouched.
|
||||
|
||||
### 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
|
||||
|
||||
Reference in New Issue
Block a user