cac92a407e
gates / gates (push) Successful in 44s
Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
2.4 KiB
2.4 KiB
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 formedia_library:templates, only present drives; dead-drive checksystem.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_startdeploy 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.