Files
felhom-controller/REPORT.md
T

2.4 KiB
Raw Blame History

REPORT — v0.313.0: media apps on every drive, drive events, a real restart, Plex without the race (2026-10-15)

Baseline 8bc7ec5 (0.312.0). Design: felhom.eu architecture/15-media-library.md §2, §3, §7–§10; 09 §3 decisions 245, 247, 248. Evidence: felhom.eu documentation/audits/media-build-2026-10-15/ (A = Plex gate, G = Tester 1, G7 = demo-hp).

What changed

  • internal/stacks/media_library.go — per-drive binds for media_library: templates, only present drives; dead-drive check system.MountIsShutdown; R-1031 (no drive question), R-1027/R-1032 (removal never deletes shared/:ro; safety list knows userdata).
  • RestartStack — a real restart (R-1026).
  • internal/mediawire — the drive wiring (R-1024, R-1037), the old-install repair (R-1047), safe-removal pause/resume, the stream count.
  • internal/web/media_events.go + media_notice.html — the notice, restart now/later, safe removal that keeps the drive (R-1044), the returned drive's file browser recreate (R-1038), the Plex claim (R-1028) and „Kész" refused while unclaimed (R-1045). after_start deploy fields.

Proven

  • Tester 1 (rc.1–rc.3): existing apps moved to the marker binds with every stored path, library item, watch mark and file identical; Media D added → notice → restart → wired in every app, second run writes nothing; Media B pulled → nothing lost, the file browser let go and came back at once, one restart cured the apps; Media D safely removed with torrents → only its torrents paused, every app let go before the unmount, the drive came back by itself, torrents resumed with no re-check; 13 hardlink pairs intact.
  • demo-hp 9201: the marker ignored by 0.312.0; rc.4 wired qBittorrent + Sonarr from the live catalog; a fresh Plex with no code stays gated and „Kész" is refused while unclaimed.

Tests (each seen failing once)

TestRestartStack_R1026_*, TestMediaLibrary_*, TestMountIsShutdown_K4, TestRemoveStack_R1027_*, TestProtectedHDDPaths_R1032_*, TestR1031_*, TestAfterStartField_*, TestRun_SecondRunWritesNothing, TestRepairOldRoot_K7, TestMediaEvents_*, TestEjectStep_G4, TestPlanDriveGates_SkipsSafelyRemovedDrive, TestSetupDoneProbe_AcceptJSON_Plex, TestPlexClaimBox_RendersPerBranch, TestPlexDonePress_RefusedWhileUnclaimed.

Fixed without a row (found on the boxes this session)

qBittorrent 5's 204 login; the gate racing a safe removal; presence read from the agent's state.