before: pinned={'kimai': 'kimai/kimai2:apache-2.57.0', 'kimai-db': 'mariadb:11.8'}
drill: 4b564b1 DRILL kimai: {'kimai': 'kimai/kimai2:2.67.0'} (box proof)
  phase +0.0s backing-up | err=None
  phase +11.3s safety-dump | err=None
  phase +13.4s pulling | err=None
  phase +31.8s copying | err=None
  phase +45.1s starting | err=None
  phase +51.3s verifying | err=None
  phase +82.1s done | err=None
    kimai: readback found=True (control passed)
2026/09/30 11:25:41 update.go:536: [INFO] [stacks] update kimai: accepted — guarded update started
2026/09/30 11:25:41 update.go:1365: [INFO] [stacks] update kimai: phase checking
2026/09/30 11:25:41 update.go:786: [INFO] [stacks] update kimai: ladder — the last step (2 of 2) — the catalog's current definition
2026/09/30 11:25:41 update.go:816: [INFO] [stacks] update kimai: no usable copy on any tier — younger than 24h0m0s and not older than this install's deploy (2026-09-30T11:11:57Z) (found: none) — backing up first
2026/09/30 11:25:41 update.go:1365: [INFO] [stacks] update kimai: phase backing-up
2026/09/30 11:25:52 update.go:831: [INFO] [stacks] update kimai: precondition met after the backup — Tier 2 (second drive) copy from 2026-09-30T11:25:41Z
2026/09/30 11:25:52 update.go:1365: [INFO] [stacks] update kimai: phase safety-dump
2026/09/30 11:25:52 update.go:846: [INFO] [stacks] update kimai: safety dump done (1 file(s)) [/mnt/sys_drive/felhom-data/backups/primary/kimai/db-dumps/pre-restore-20260930T112552Z-kimai-mariadb.sql]
2026/09/30 11:25:53 undo.go:287: [INFO] [stacks] update kimai: the undo copy will hold 2 named volume(s), 212.8 MiB
2026/09/30 11:25:53 update.go:1365: [INFO] [stacks] update kimai: phase pinning
2026/09/30 11:25:53 pin.go:373: [INFO] [stacks] update kimai: pin advanced to /opt/docker/felhom-controller/data/catalog-cache/templates/kimai/docker-compose.yml (kimai=kimai/kimai2:2.67.0, kimai-db=mariadb:11.8)
2026/09/30 11:25:53 update.go:1365: [INFO] [stacks] update kimai: phase pulling
2026/09/30 11:26:12 update.go:1365: [INFO] [stacks] update kimai: phase copying
2026/09/30 11:26:22 update.go:1365: [INFO] [stacks] update kimai: phase copying
2026/09/30 11:26:24 undo.go:437: [INFO] [stacks] update kimai: copied kimai_kimai_db_data → kimai_kimai_db_data.pre-update-20260930T112622Z in 1.398s
2026/09/30 11:26:24 update.go:1365: [INFO] [stacks] update kimai: phase copying
2026/09/30 11:26:25 undo.go:437: [INFO] [stacks] update kimai: copied kimai_kimai_var → kimai_kimai_var.pre-update-20260930T112622Z in 1.301s
2026/09/30 11:26:25 update.go:1365: [INFO] [stacks] update kimai: phase starting
2026/09/30 11:26:31 update.go:1365: [INFO] [stacks] update kimai: phase verifying
2026/09/30 11:27:02 update.go:997: [INFO] [stacks] update kimai: healthy after 30s (the app's health check passed)
2026/09/30 11:27:02 update.go:1033: [INFO] [stacks] update kimai: DONE in 1m22s

RESULT final_phase=done after={'kimai': 'kimai/kimai2:2.67.0', 'kimai-db': 'mariadb:11.8'} seed_after=True verdict=proven (82.1 s)
