8d786f7940
gates / gates (push) Successful in 28s
The drill is complete. Teardown done in three layers plus Gitea; the live catalog's every `image:` line is proven identical to before. WHAT WAS MEASURED. 21 edges across 19 apps, on scratch guest 9202 through the product's own guarded Update, against a PRIVATE DRILL CATALOG so the live catalog carried no test reference at any point: 14 proven, 3 failed, 4 inconclusive. Each app seeded and read back through its OWN front door, with a negative control on every readback. Ten of the fourteen printed a verbatim migration line. Up from the three apps this project had ever measured. THE RESULT THAT MATTERS. R-618, P1: three of the 53 templates name a health probe the app does not answer, and because the guarded update WAITS on that same probe, a SUCCESSFUL update ends by STOPPING a working app. tandoor was measured serving HTTP 200 on the new version at four samples across five minutes, docker's own healthcheck green, and was then stopped and the household sent to a restore they did not need. zipline and wger are the same defect, both confirmed live. The gate that catches all three is static and cheap: both health checks already sit in the same file. WHAT THE NIGHT ANSWERED that was open. The UNATTENDED HOLD (312.9 s, pressed once, never again) — which needed a purpose-built image store, because the rule that makes automatic updates safe is the same rule that refuses the obvious way to break one. MariaDB across a major through the real button, all four observables, first time. PostgreSQL across a major, refusing exactly as predicted, with the conversion costed at ~9 s of engine work. There is NO single-flight: five updates ran at once and all ended honest. And the two EARLY power-cut phases nobody had cut in. TWELVE NEW ROWS (R-615..R-626), register 303 -> 315, and eight existing rows updated with what was measured — including two CORRECTIONS: R-606 records the pre-flight refusals as reaching an English household in English and they do not, and R-446/R-458 are both narrower than their rows state. Two instrument fixes were needed before anything could be trusted: the unattended caller turned every success into a timeout (R-623), and one of my own reproductions was wrong and is kept labelled with what it actually measured. Interventions: zero. No controller, agent or hub code written. The hub was never touched beyond the floor the operator asked for. Gates: repo_gates.py --fast, all 15 OK. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
54 lines
5.9 KiB
Plaintext
54 lines
5.9 KiB
Plaintext
22:23:52 ==== Phase 5: teardown, three layers
|
|
22:23:55 -> 00-host-before.txt
|
|
22:23:55 [M] throwaway apps still deployed: ['bentopdf', 'docmost', 'gitea', 'glance', 'nextcloud', 'opengist', 'privatebin', 'uptime-kuma', 'vaultwarden', 'wishlist', 'zipline']
|
|
22:23:55 [X] stop -> 200 {'ok': True, 'message': 'Stack bentopdf stop completed'}
|
|
22:24:01 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'bentopdf', 'volumes_removed': [], 'hdd_paths_removed': [], 'hdd_paths_preserved': [], 'hdd_note': 'Az alkalmazás nem tárolt sa
|
|
22:24:08 [X] after remove: deployed=False leftovers='/opt/docker/stacks/bentopdf'
|
|
22:24:09 [X] stop -> 200 {'ok': True, 'message': 'Stack docmost stop completed'}
|
|
22:24:15 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'docmost', 'volumes_removed': ['docmost_docmost_postgres_data', 'docmost_docmost_redis_data', 'docmost_docmost_storage'], 'hdd_
|
|
22:24:22 [X] after remove: deployed=False leftovers='/opt/docker/stacks/docmost'
|
|
22:24:22 [X] stop -> 200 {'ok': True, 'message': 'Stack gitea stop completed'}
|
|
22:24:28 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'gitea', 'volumes_removed': ['gitea_gitea_data'], 'hdd_paths_removed': [], 'hdd_paths_preserved': [], 'hdd_note': 'Az alkalmazá
|
|
22:24:35 [X] after remove: deployed=False leftovers='/opt/docker/stacks/gitea'
|
|
22:24:35 [X] stop -> 200 {'ok': True, 'message': 'Stack glance stop completed'}
|
|
22:24:41 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'glance', 'volumes_removed': ['glance_glance_config'], 'hdd_paths_removed': [], 'hdd_paths_preserved': [], 'hdd_note': 'Az alka
|
|
22:24:48 [X] after remove: deployed=False leftovers='/opt/docker/stacks/glance'
|
|
22:24:50 [X] stop -> 200 {'ok': True, 'message': 'Stack nextcloud stop completed'}
|
|
22:24:55 [X] remove (with drive data) -> 409 {'ok': False, 'error': 'A(z) /mnt/felhom-drives/scratch_hdd/userdata/nextcloud tárhely jelenleg nem elérhető — az alkalmazás nem távolítható el, amíg a meghajtó
|
|
22:24:55 [X] refused because the drive path cannot be resolved (R-442, fail-closed and right) — removing the app and KEEPING the drive data instead
|
|
22:24:56 [X] remove (keeping drive data) -> 200 {'ok': True, 'data': {'removed': 'nextcloud', 'volumes_removed': ['nextcloud_nextcloud_db_data', 'nextcloud_nextcloud_html', 'nextcloud_nextcloud_redis_data'],
|
|
22:25:04 [X] after remove: deployed=False leftovers='/opt/docker/stacks/nextcloud'
|
|
22:25:04 [X] stop -> 200 {'ok': True, 'message': 'Stack opengist stop completed'}
|
|
22:25:09 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'opengist', 'volumes_removed': ['opengist_opengist_data'], 'hdd_paths_removed': [], 'hdd_paths_preserved': [], 'hdd_note': 'Az
|
|
22:25:17 [X] after remove: deployed=False leftovers='/opt/docker/stacks/opengist'
|
|
22:25:17 [X] stop -> 200 {'ok': True, 'message': 'Stack privatebin stop completed'}
|
|
22:25:22 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'privatebin', 'volumes_removed': ['privatebin_privatebin_data'], 'hdd_paths_removed': [], 'hdd_paths_preserved': [], 'hdd_note'
|
|
22:25:30 [X] after remove: deployed=False leftovers='/opt/docker/stacks/privatebin'
|
|
22:25:30 [X] stop -> 200 {'ok': True, 'message': 'Stack uptime-kuma stop completed'}
|
|
22:25:35 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'uptime-kuma', 'volumes_removed': ['uptime-kuma_uptime_kuma_data'], 'hdd_paths_removed': [], 'hdd_paths_preserved': [], 'hdd_no
|
|
22:25:43 [X] after remove: deployed=False leftovers='/opt/docker/stacks/uptime-kuma'
|
|
22:25:43 [X] stop -> 200 {'ok': True, 'message': 'Stack vaultwarden stop completed'}
|
|
22:25:48 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'vaultwarden', 'volumes_removed': ['vaultwarden_vaultwarden_data'], 'hdd_paths_removed': [], 'hdd_paths_preserved': [], 'hdd_no
|
|
22:25:56 [X] after remove: deployed=False leftovers='/opt/docker/stacks/vaultwarden'
|
|
22:26:06 [X] stop -> 200 {'ok': True, 'message': 'Stack wishlist stop completed'}
|
|
22:26:12 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'wishlist', 'volumes_removed': ['wishlist_wishlist_data', 'wishlist_wishlist_uploads'], 'hdd_paths_removed': [], 'hdd_paths_pre
|
|
22:26:19 [X] after remove: deployed=False leftovers='/opt/docker/stacks/wishlist'
|
|
22:26:30 [X] stop -> 200 {'ok': True, 'message': 'Stack zipline stop completed'}
|
|
22:26:35 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'zipline', 'volumes_removed': ['zipline_zipline_postgres_data', 'zipline_zipline_public', 'zipline_zipline_uploads'], 'hdd_path
|
|
22:26:42 [X] after remove: deployed=False leftovers='/opt/docker/stacks/zipline'
|
|
22:26:45 -> 01-image-store-removed.txt
|
|
22:27:13 -> 02-config-restored.txt
|
|
22:27:13 [M] git.repo_url reads back as the LIVE catalog: True
|
|
22:27:20 [M] filebrowser deployed=False state=running badge=[]
|
|
22:27:20 [M] navidrome deployed=False state=running badge=[]
|
|
22:27:20 [M] traefik deployed=False state=running badge=[]
|
|
22:27:22 -> 03-containers-after.txt
|
|
22:27:22 [M] containers left: ['felhom-controller', 'filebrowser', 'navidrome', 'traefik'] only protected infra: False
|
|
22:27:25 -> 04-host-after.txt
|
|
22:27:25 [H] no harness LXC was created tonight, so none was destroyed — the PostgreSQL rehearsal ran on 9202 itself (stated in the audit)
|
|
22:27:28 -> 05-hub.txt
|
|
22:27:28 [U] floor = 0.261.0 | min_agent = 0.131.0 | host rows seen = 3 | nothing was provisioned at the hub tonight: no customer, no config, no appliance, | no binding. The only hub act of the whole night was the floor save in Phase 0.1. |
|
|
22:27:30 -> 06-gitea.txt
|
|
22:27:30 [G] live main=4463243f2e09 drill main=4463243f2e09 image lines identical: True
|
|
22:27:30 teardown written -> /mnt/5_hdd/felhom.eu/git/felhom.eu/documentation/audits/update-night-2026-09-21/teardown/result.json
|