## F12 — two reboots inside two minutes (box: nested VM 334 on demo-hp)
  2026-09-16T10:50:10Z before: dashboard=200 apps=200
  reset 1 at 2026-09-16T10:50:11Z
  reset 2 at 2026-09-16T10:51:12Z (60 s after the first)
  dashboard 200 again at 2026-09-16T10:53:16Z — 124 s after the second reset
  apps: privatebin=200 vault=200 paperless=302 cloud=200
Sep 16 12:53:06 tester1 felhom-agent[1128]: time=2026-09-16T12:53:06.326+02:00 level=WARN msg="controller-supervisor: guest list unavailable — skipping sweep (ownership unproven)" err="pro
Sep 16 12:53:07 tester1 felhom-agent[1128]: time=2026-09-16T12:53:07.077+02:00 level=INFO msg="stale-lock: scanning pool guests" pool=felhom listed=1 scanned=1
Sep 16 12:53:36 tester1 felhom-agent[1128]: time=2026-09-16T12:53:36.356+02:00 level=INFO msg="stale-lock: scanning pool guests" pool=felhom listed=1 scanned=1
Sep 16 12:53:36 tester1 felhom-agent[1128]: time=2026-09-16T12:53:36.385+02:00 level=INFO msg="stale-lock: scanning pool guests" pool=felhom listed=1 scanned=1
Sep 16 12:53:36 tester1 felhom-agent[1128]: time=2026-09-16T12:53:36.388+02:00 level=INFO msg="stale-lock: scanning pool guests" pool=felhom listed=1 scanned=1
Sep 16 12:54:06 tester1 felhom-agent[1128]: time=2026-09-16T12:54:06.388+02:00 level=INFO msg="stale-lock: scanning pool guests" pool=felhom listed=1 scanned=1
paperless-webserver Up 34 seconds (healthy)
paperless-redis Up 44 seconds (healthy)
paperless-postgres Up 44 seconds (healthy)
nextcloud Up 56 seconds (healthy)
nextcloud-db Up About a minute (healthy)
nextcloud-redis Up About a minute (healthy)
felhom-controller Up About a minute (healthy)
vaultwarden Up About a minute (healthy)
privatebin Up About a minute (healthy)
filebrowser Up About a minute (healthy)
cloudflared Up About a minute
traefik Up About a minute
## app states after the two resets (2026-09-16T10:57:17Z):
  
## supervisor block in the host report:
Traceback (most recent call last):
  File "<string>", line 1, in <module>
    import json;print(json.load(open("/var/lib/felhom-agent/bootstrap.json"))["local_api_token"])
                                ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory: '/var/lib/felhom-agent/bootstrap.json'
Traceback (most recent call last):
  File "<string>", line 1, in <module>
    import sys,json;r=json.load(sys.stdin);print(json.dumps(r.get("controller_supervisor"),indent=1))
                      ~~~~~~~~~^^^^^^^^^^^
  File "/usr/lib/python3.13/json/__init__.py", line 293, in load
    return loads(fp.read(),
        cls=cls, object_hook=object_hook,
        parse_float=parse_float, parse_int=parse_int,
        parse_constant=parse_constant, object_pairs_hook=object_pairs_hook, **kw)
  File "/usr/lib/python3.13/json/__init__.py", line 346, in loads
    return _default_decoder.decode(s)
           ~~~~~~~~~~~~~~~~~~~~~~~^^^
  File "/usr/lib/python3.13/json/decoder.py", line 345, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
               ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.13/json/decoder.py", line 363, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
## uptime + boot count:
up 5 minutes
reboot   system boot  7.0.2-6-pve      Wed Sep 16 12:51 - still running
reboot   system boot  7.0.2-6-pve      Wed Sep 16 12:50 - crash 
reboot   system boot  7.0.2-6-pve      Wed Sep 16 11:58 - crash 

## RESULT — F12 (two `qm reset`s 60 s apart on VM 334)
##  customer saw: dashboard unreachable ~2 min; back at 10:53:16Z, 124 s after the SECOND reset.
##  box did: boot reconciler brought all seven stacks up by itself (privatebin 200, vaultwarden 200,
##           paperless 302 = its login redirect, nextcloud status.php 200); NO double start observed;
##           mealie stayed not_deployed (the F9'-interrupted deploy), NOT stuck in "telepites folyamatban".
##  time to steady: 124 s to the dashboard, ~3 min to every app healthy.
##  supervisor did NOT count the boots: whole-journal "RESTARTED the controller" = 1 (the F9' one at
##           12:32, POSITIVE control that the grep string matches when it happens); since 12:49 = 0,
##           while 4 controller-supervisor lines in the same window prove it was running and sweeping.
##           During the boot it logged "guest list unavailable - skipping sweep (ownership unproven)" -
##           the unprovisioned/ownership guard doing its job.
##  journal is PERSISTENT on this box (/var/log/journal exists), so the pre-reboot lines are real.
##  alarm fired and true? none fired. alarm that should have and did not: none - a reboot inside the
##           node-liveness dedupe window produces no host_* mail, which matches the design.
