before: pinned={'grafana': 'grafana/grafana:13.2.2'}
  phase +0.0s backing-up | err=None
  phase +13.4s safety-dump | err=None
  phase +14.4s pulling | err=None
  phase +15.4s copying | err=None
  phase +18.5s verifying | err=None
  phase +23.6s done | err=None
    grafana: readback of the seeded folder http=200 ok=True
2026/09/30 12:25:41 update.go:536: [INFO] [stacks] update grafana: accepted — guarded update started
2026/09/30 12:25:41 update.go:1365: [INFO] [stacks] update grafana: phase checking
2026/09/30 12:25:41 update.go:786: [INFO] [stacks] update grafana: ladder — the last step (2 of 2) — the catalog's current definition
2026/09/30 12:25:41 update.go:816: [INFO] [stacks] update grafana: no usable copy on any tier — younger than 24h0m0s and not older than this install's deploy (2026-09-30T12:25:11Z) (found: none) — backing up first
2026/09/30 12:25:41 update.go:1365: [INFO] [stacks] update grafana: phase backing-up
2026/09/30 12:25:54 update.go:831: [INFO] [stacks] update grafana: precondition met after the backup — Tier 2 (second drive) copy from 2026-09-30T12:25:52Z
2026/09/30 12:25:54 update.go:1365: [INFO] [stacks] update grafana: phase safety-dump
2026/09/30 12:25:54 update.go:846: [INFO] [stacks] update grafana: safety dump done (0 file(s)) []
2026/09/30 12:25:54 undo.go:287: [INFO] [stacks] update grafana: the undo copy will hold 1 named volume(s), 397.0 MiB
2026/09/30 12:25:54 update.go:1365: [INFO] [stacks] update grafana: phase pinning
2026/09/30 12:25:54 pin.go:373: [INFO] [stacks] update grafana: pin advanced to /opt/docker/felhom-controller/data/catalog-cache/templates/grafana/docker-compose.yml (grafana=grafana/grafana:13.2.3)
2026/09/30 12:25:54 update.go:1365: [INFO] [stacks] update grafana: phase pulling
2026/09/30 12:25:56 update.go:1365: [INFO] [stacks] update grafana: phase copying
2026/09/30 12:25:57 update.go:1365: [INFO] [stacks] update grafana: phase copying
2026/09/30 12:25:58 undo.go:437: [INFO] [stacks] update grafana: copied grafana_grafana_data → grafana_grafana_data.pre-update-20260930T122557Z in 1.505s
2026/09/30 12:25:58 update.go:1365: [INFO] [stacks] update grafana: phase starting
2026/09/30 12:25:59 update.go:1365: [INFO] [stacks] update grafana: phase verifying
2026/09/30 12:26:04 update.go:997: [INFO] [stacks] update grafana: healthy after 5s (the app's health check passed)
2026/09/30 12:26:04 update.go:1033: [INFO] [stacks] update grafana: DONE in 23s

RESULT final_phase=done after={'grafana': 'grafana/grafana:13.2.3'} seed_after=True verdict=proven (23.6 s)
