before: pinned={'komga': 'gotson/komga:1.27.1'}
drill: 50db1ed DRILL komga: {'komga': 'gotson/komga:1.28.0'} (box proof)
  phase +0.0s backing-up | err=None
  phase +4.1s safety-dump | err=None
  phase +5.1s pulling | err=None
  phase +13.4s copying | err=None
  phase +22.6s starting | err=None
  phase +23.6s verifying | err=None
  phase +44.1s done | err=None
    komga: readback found=True (http 200, control refused 401)
2026/09/30 12:13:19 update.go:536: [INFO] [stacks] update komga: accepted — guarded update started
2026/09/30 12:13:19 update.go:1365: [INFO] [stacks] update komga: phase checking
2026/09/30 12:13:19 update.go:786: [INFO] [stacks] update komga: ladder — the last step (2 of 2) — the catalog's current definition
2026/09/30 12:13:19 update.go:816: [INFO] [stacks] update komga: no usable copy on any tier — younger than 24h0m0s and not older than this install's deploy (2026-09-30T12:07:13Z) (found: none) — backing up first
2026/09/30 12:13:19 update.go:1365: [INFO] [stacks] update komga: phase backing-up
2026/09/30 12:13:22 update.go:831: [INFO] [stacks] update komga: precondition met after the backup — Tier 2 (second drive) copy from 2026-09-30T12:13:22Z
2026/09/30 12:13:22 update.go:1365: [INFO] [stacks] update komga: phase safety-dump
2026/09/30 12:13:22 update.go:846: [INFO] [stacks] update komga: safety dump done (0 file(s)) []
2026/09/30 12:13:23 undo.go:287: [INFO] [stacks] update komga: the undo copy will hold 1 named volume(s), 0.6 MiB
2026/09/30 12:13:23 update.go:1365: [INFO] [stacks] update komga: phase pinning
2026/09/30 12:13:23 pin.go:373: [INFO] [stacks] update komga: pin advanced to /opt/docker/felhom-controller/data/catalog-cache/templates/komga/docker-compose.yml (komga=gotson/komga:1.28.0)
2026/09/30 12:13:23 update.go:1365: [INFO] [stacks] update komga: phase pulling
2026/09/30 12:13:31 update.go:1365: [INFO] [stacks] update komga: phase copying
2026/09/30 12:13:41 update.go:1365: [INFO] [stacks] update komga: phase copying
2026/09/30 12:13:41 undo.go:437: [INFO] [stacks] update komga: copied komga_komga_config → komga_komga_config.pre-update-20260930T121341Z in 445ms
2026/09/30 12:13:41 update.go:1365: [INFO] [stacks] update komga: phase starting
2026/09/30 12:13:41 update.go:1365: [INFO] [stacks] update komga: phase verifying
2026/09/30 12:14:02 update.go:997: [INFO] [stacks] update komga: healthy after 20s (the app's health check passed)
2026/09/30 12:14:02 update.go:1033: [INFO] [stacks] update komga: DONE in 43s

RESULT final_phase=done after={'komga': 'gotson/komga:1.28.0'} seed_after=True verdict=proven (44.2 s)
