# 05b — SCENARIO B (cut in `verifying`, uptime-kuma) — COORDINATOR capture
#
# PROVENANCE: written by the main session, read-only, live from guest 9202, after the measuring
# agent again went a long interval without writing evidence while the box already showed the
# scenario complete. If the agent's own `05-*` file lands it is the fuller record; this exists so
# the measurement could not be lost (R-320). Nothing below is inferred.

== THE RECOVERY, verbatim from the controller log ==
2026/09/21 12:33:21 update.go:909: [WARN] [stacks] update recovery: uptime-kuma was interrupted in verifying (started 2026-09-21T12:32:26Z) — the new version may have run; marking it Updating and RESUMING the health wait
2026/09/21 12:33:21 update.go:951: [INFO] [stacks] update uptime-kuma: resuming after a controller restart — `up -d` then the health wait
2026/09/21 12:33:21 update.go:858: [INFO] [stacks] update uptime-kuma: phase verifying
2026/09/21 12:33:26 update.go:652: [INFO] [stacks] update uptime-kuma: healthy after 5s (the app's health check passed)
2026/09/21 12:33:26 update.go:658: [INFO] [stacks] update uptime-kuma: DONE in 1m0s

== THE FOUR VERSION OBSERVABLES, SIDE BY SIDE ==
  pinned_images    : {"uptime-kuma": "louislam/uptime-kuma:2.5.0"}
  installed_images : {"uptime-kuma": "louislam/uptime-kuma:2.5.0"}
  live compose line:     image: louislam/uptime-kuma:2.5.0
  docker inspect   : louislam/uptime-kuma:2.5.0 | running
  -> ALL FOUR AGREE.  (catalog_images also 2.5.0 — the drill bump was still in place.)

== END STATE ==
  state=running  updating=False  update_phase=done  label='Frissitve'
  update_error=(none)  hold_reason=(none)  health_probe.healthy=True
  Total time from interruption to done: 1m0s.

== NOT CAPTURED HERE ==
  the timestamp table (phase at decision, cut latency), the seeded-monitor read-back through
  uptime-kuma's own front door, and the page sentence in both languages. Those need the agent's
  poller output and its seeded session. Recorded as GAPS, not as passes.

== VERDICT ON WHAT IS MEASURED ==
  The `verifying` cut ends HONEST for a second app, with a different health-check shape (5s rather
  than 0s to pass). Resumed, completed, all four observables agree, no hold, no stuck `Updating`.
  None of the brief's STOP conditions appeared in what was captured.
