186546d562
gates / gates (push) Successful in 27s
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
30 lines
2.4 KiB
Plaintext
30 lines
2.4 KiB
Plaintext
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 ''
|