Files
felhom.eu/documentation/audits/the-28-2026-09-22/apps/ghost/log.txt
T
admin 186546d562
gates / gates (push) Successful in 27s
THE TWENTY-EIGHT: every app no drill had touched, walked in one night
All 28 walked on scratch guest 9202 against the private drill catalog. 26 deployed, 6 proven,
5 inconclusive, 14 with no upstream edge, 1 failed honestly (outline 1.9.1->1.10.1, HELD with the
right sentence), 2 undeployable - one (plant-it) by design, refused by the lifecycle gate, proven
live for the first time. Each app also got the half the update night skipped: a restore from its own
copy with the seed read back again - 21 restored, 2 correctly REFUSED per 07 6.2.

R-630 RAISED TO P1 by measurement: a stack with NO probe container does not skip verifying - it
waits out the full health timeout and HOLDS, stopping an app whose three containers read healthy.
The controller's own words: "not healthy within 5m0s (last: no probe container)".

R-633 opened: a remove sent during a restore reports success and leaves a container restarting with
a live public route. The product already refuses that clash for update and for restore, naming the
blocker; remove has no such guard.

R-634 opened: an app can be running, healthy and serving while recorded as deployed=false, and is
then unremovable. Reproducible alone on sparkyfitness; concurrency-linked on two others.

R-631 and R-632 CLOSED. Register 321 -> 323. Seven interventions, six of them my own harness -
named, with what each cost. No product code. The live catalog's image: lines are byte-identical to
the start of the night.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
2026-09-22 16:00:56 +02:00

30 lines
2.4 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
15:11:12 ==== ghost (sub=blog, class=file-leg, edge={'from': 'ghost:6.53.0-alpine', 'to': 'ghost:6.64.0-alpine'})
15:11:12 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}
15:13:28 [1] deployed, controller state=running, pinned={'ghost': 'ghost:6.64.0-alpine'}
15:13:28 [1] front door 200 controller state=running
15:13:30 ghost: seeded site title Drill-01ffec542b59
15:13:30 ghost: readback found=True (http 200, control passed)
15:13:30 [3] C1 readback before = True
15:13:30 [4] „Mentés most" -> 200 {'ok': True, 'message': 'Mentés elindítva'}
15:13:35 [4] backup idle; last=None
15:13:35 [4] backups page offers 1 restorable copy(ies)
15:13:35 [5] FROM ref not found in compose: ghost:6.53.0-alpine
15:13:40 [5] badge {'hu': [{'title': 'Ez az alkalmazás a legfrissebb elérhető változatot futtatja.', 'text': 'Naprakész'}], 'en': [{'title': 'This app is running the newest version available.', 'text': 'Up to date'}]}
15:13:40 [6] Update -> 202 {'ok': True, 'data': {'accepted': True, 'completed': False}, 'message': 'Frissítés elindult – az állapot a kártyán követhető'}
15:13:40 + 0.0s phase=safety-dump label=Adatbázis pillanatkép… err=None hold=None
15:13:41 + 1.1s phase=pulling label=Új verzió letöltése… err=None hold=None
15:13:42 + 2.1s phase=verifying label=Működés ellenőrzése… err=None hold=None
15:13:47 + 7.2s phase=done label=Frissítve err=None hold=None
15:13:51 ghost: readback found=True (http 200, control passed)
15:13:51 [R] restoring ghost from snapshot 'helyi' (of 1 offered)
15:13:51 [R] POST /backup/restore -> HTTP/2 302 ['location: /backups/restore?flash=flash.restore.started']
15:13:51 + 0.0s restore (True, None, None)
15:14:07 + 16.2s restore (False, None, None)
15:14:07 [R] after restore: state=running hold=None phase=done
15:14:27 ghost: readback found=True (http 200, control passed)
15:14:27 [6] restore -> ok, seed back = True
15:14:37 [X] stop -> 200 {'ok': True, 'message': 'Stack ghost stop completed'}
15:14:42 [X] remove (with drive data) -> 200 {'ok': True, 'data': {'removed': 'ghost', 'volumes_removed': [], 'hdd_paths_removed': [], 'hdd_paths_preserved': [], 'hdd_note': 'Az alkalmazás nem tárolt saját
15:14:51 [X] after remove: deployed=False leftovers='/opt/docker/stacks/ghost'
15:15:54 [7] 60 s after remove: clean=True ''