before: pinned={'navidrome': 'deluan/navidrome:0.64.1'}
drill: 37cb7ef DRILL navidrome: {'navidrome': 'deluan/navidrome:0.64.2'} (box proof)
  phase +0.0s backing-up | err=None
  phase +2.1s pulling | err=None
  phase +7.2s copying | err=None
  phase +8.2s verifying | err=None
  phase +14.4s done | err=None
    navidrome: login as the seeded user http=200 ok=True
2026/09/30 12:11:40 update.go:536: [INFO] [stacks] update navidrome: accepted — guarded update started
2026/09/30 12:11:40 update.go:1365: [INFO] [stacks] update navidrome: phase checking
2026/09/30 12:11:40 update.go:786: [INFO] [stacks] update navidrome: ladder — the last step (3 of 3) — the catalog's current definition
2026/09/30 12:11:40 update.go:816: [INFO] [stacks] update navidrome: no usable copy on any tier — younger than 24h0m0s and not older than this install's deploy (2026-09-30T12:04:02Z) (found: none) — backing up first
2026/09/30 12:11:40 update.go:1365: [INFO] [stacks] update navidrome: phase backing-up
2026/09/30 12:11:41 update.go:831: [INFO] [stacks] update navidrome: precondition met after the backup — Tier 2 (second drive) copy from 2026-09-30T12:11:40Z
2026/09/30 12:11:41 update.go:1365: [INFO] [stacks] update navidrome: phase safety-dump
2026/09/30 12:11:41 update.go:846: [INFO] [stacks] update navidrome: safety dump done (0 file(s)) []
2026/09/30 12:11:42 undo.go:287: [INFO] [stacks] update navidrome: the undo copy will hold 1 named volume(s), 0.7 MiB
2026/09/30 12:11:42 update.go:1365: [INFO] [stacks] update navidrome: phase pinning
2026/09/30 12:11:42 pin.go:373: [INFO] [stacks] update navidrome: pin advanced to /opt/docker/felhom-controller/data/catalog-cache/templates/navidrome/docker-compose.yml (navidrome=deluan/navidrome:0.64.2)
2026/09/30 12:11:42 update.go:1365: [INFO] [stacks] update navidrome: phase pulling
2026/09/30 12:11:46 update.go:1365: [INFO] [stacks] update navidrome: phase copying
2026/09/30 12:11:47 update.go:1365: [INFO] [stacks] update navidrome: phase copying
2026/09/30 12:11:47 undo.go:437: [INFO] [stacks] update navidrome: copied navidrome_navidrome_data → navidrome_navidrome_data.pre-update-20260930T121147Z in 474ms
2026/09/30 12:11:47 update.go:1365: [INFO] [stacks] update navidrome: phase starting
2026/09/30 12:11:48 update.go:1365: [INFO] [stacks] update navidrome: phase verifying
2026/09/30 12:11:53 update.go:997: [INFO] [stacks] update navidrome: healthy after 5s (the app's health check passed)
2026/09/30 12:11:53 update.go:1033: [INFO] [stacks] update navidrome: DONE in 14s

RESULT final_phase=done after={'navidrome': 'deluan/navidrome:0.64.2'} seed_after=True verdict=proven (14.4 s)
