R-492: delete the always-empty cfg.Paths.HDDPath (field, env binding, every fallback)

Readers (report builder, health check, /api/system, web primaryHDDPath, metrics collector,
AutoDiscoverStoragePaths' fallback parameter) now use the storage registry only. An old
controller.yaml still carrying paths.hdd_path keeps loading (non-strict YAML), pinned by
TestR492_OldConfigWithHDDPathStillLoads.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
This commit is contained in:
2026-10-05 21:45:53 +02:00
parent d15ad105be
commit 7b8216abac
11 changed files with 45 additions and 47 deletions
@@ -399,15 +399,13 @@ func TestDeleteStack_R442_RemovesDeclaredDriveData(t *testing.T) {
}
// GetStackHDDData (the modal's source) reads the per-app record too: with HDD_PATH recorded it
// lists the folder; the global config stays empty throughout.
// lists the folder; there is no global config value to fall back to (deleted in R-492).
func TestGetStackHDDData_R442_ReadsPerAppRecord(t *testing.T) {
drive := t.TempDir()
m, _, _ := newR442Manager(t, "app", driveCompose, driveAppYAML(drive), drive)
data := filepath.Join(drive, "appdata", "app")
plantFile(t, filepath.Join(data, "one.bin"))
if m.cfg.Paths.HDDPath != "" {
t.Fatal("fixture error: the global must stay empty to prove the per-app read")
}
// (R-492: the global paths.hdd_path no longer exists, so the per-app record is the only source.)
resp, err := m.GetStackHDDData("app")
if err != nil {
t.Fatal(err)