da20722e76
gates / gates (push) Successful in 27s
INTERIM CHECKPOINT — evidence off the machine at the end of the phase that produced it (R-320), not at the end of the session. Phases 2-5 follow in a later commit. Phase 0, all three mechanisms proven with their controls: - the fleet floor to 0.261.0 with its declared MinAgent — both demo boxes in 13 s, the hub logging `managed floor SERVED ... from declared (golden 0.258.0)`. - a PRIVATE DRILL CATALOG (admin/app-catalog-drill), so that broken, dummy, cross-repo and engine-major edges can be measured without the live catalog ever carrying one. Positive control quoted, and two negative controls: the live catalog's main and both real boxes' caches unchanged. - a throwaway image store on the scratch guest, which is what makes an UNATTENDED HOLD measurable at all: an edge that PASSES the within-a-major test and still fails. CompareImageRefs was proven to order host:port/ references by RUNNING it (4 positive cases + 1 negative control), not by reading it. Phase 1: real within-a-major upstream edges walked on guest 9202 through the product's own guarded Update, each app seeded and read back through its OWN front door (R-156), with a per-edge verdict record in 09's shape. `inconclusive` is never collapsed into `failed`. TWO INSTRUMENT FIXES, both in this repo's own evidence code: - 00-api-recipe.md said the app page is /app/<n>; it is /apps/<n>, and every call it described 404s. Corrected, with the session-expiry note that cost the same time. - unattended-caller.py's follow() read update_phase/updating off the API ENVELOPE, so both were always None and EVERY followed update ran to its 900 s timeout and was then recorded `timeout` and never-press-again. Fixed before B1 relied on it. R-623. No controller, agent or hub code was written. The live catalog carries no broken reference. Gates: repo_gates.py --fast — all 15 OK, exit 0. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
157 lines
16 KiB
Plaintext
157 lines
16 KiB
Plaintext
################ 20:42:00 grafana
|
||
20:42:00 ==== grafana: grafana/grafana:13.1.0 -> grafana/grafana:13.2.2 (sub=grafana, class=other)
|
||
20:42:01 [1] required fields filled beyond DOMAIN/SUBDOMAIN: ['GF_SECURITY_ADMIN_PASSWORD']
|
||
20:42:01 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}
|
||
20:42:46 [1] deployed, controller state=running, pinned={'grafana': 'grafana/grafana:13.1.0'}
|
||
20:42:48 [2] seeding through the app's own front door
|
||
20:42:50 grafana: create folder http=401
|
||
20:42:50 grafana: refused {"extra":null,"message":"Invalid username or password","messageId":"password-auth.failed","statusCode":401,"traceID":""}
|
||
|
||
20:42:50 [9] verdict inconclusive -> /mnt/5_hdd/felhom.eu/git/felhom.eu/documentation/audits/update-night-2026-09-21/apps/grafana/verdict.json
|
||
################ 20:42:50 grafana done rc=0
|
||
################ 20:42:50 navidrome
|
||
20:42:51 ==== navidrome: deluan/navidrome:0.63.2 -> deluan/navidrome:0.64.0 (sub=music, class=file-leg)
|
||
20:42:53 [1] made the drive paths this app requires: ['/mnt/felhom-drives/scratch_hdd/userdata/navidrome']
|
||
20:42:53 [1] required fields filled beyond DOMAIN/SUBDOMAIN: ['HDD_PATH']
|
||
20:42:53 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}
|
||
20:43:13 [1] deployed, controller state=running, pinned={'navidrome': 'deluan/navidrome:0.63.2'}
|
||
20:43:15 [2] seeding through the app's own front door
|
||
20:43:15 navidrome: createAdmin http=200
|
||
20:43:15 [3] control C1 — reading the seed back BEFORE the update
|
||
20:43:16 navidrome: login as the seeded user http=200 ok=True
|
||
20:43:16 [4] „Mentés most" -> 200 {'ok': True, 'message': 'Mentés elindítva'}
|
||
20:44:11 [4] backup idle; last=None
|
||
20:44:12 [5] drill commit 390395a96ee1: navidrome deluan/navidrome:0.63.2 -> deluan/navidrome:0.64.0 (push rc=0)
|
||
20:44:16 [5] badge HU: [{'title': 'Újabb változat érhető el ehhez az alkalmazáshoz. A frissítés indításához nyomd meg a Frissítés gombot.', 'text': 'Frissítés elérhető — ma'}]
|
||
20:44:16 [5] badge EN: [{'title': 'A newer version of this app is available. Select the Update button to start it.', 'text': 'Update available — today'}]
|
||
20:44:17 [6] Update -> 202 {'ok': True, 'data': {'accepted': True, 'completed': False}, 'message': 'Frissítés elindult – az állapot a kártyán követhető'}
|
||
20:44:17 + 0.0s phase=safety-dump label=Adatbázis pillanatkép… err=None hold=None
|
||
20:44:18 + 1.1s phase=pulling label=Új verzió letöltése… err=None hold=None
|
||
20:44:22 + 5.2s phase=starting label=Indítás az új verzióval… err=None hold=None
|
||
20:44:23 + 6.2s phase=verifying label=Működés ellenőrzése… err=None hold=None
|
||
20:44:28 + 11.3s phase=done label=Frissítve err=None hold=None
|
||
20:44:28 [7] reading the seed back AFTER the update
|
||
20:44:28 navidrome: login as the seeded user http=200 ok=True
|
||
20:44:30 [8] pinned = {'navidrome': 'deluan/navidrome:0.64.0'}
|
||
20:44:30 [8] installed = {'navidrome': 'deluan/navidrome:0.64.0'}
|
||
20:44:30 [8] compose = ['image: deluan/navidrome:0.64.0']
|
||
20:44:30 [8] inspect = ['navidrome deluan/navidrome:0.64.0 running=true restarts=0']
|
||
20:44:30 [9] verdict proven -> /mnt/5_hdd/felhom.eu/git/felhom.eu/documentation/audits/update-night-2026-09-21/apps/navidrome/verdict.json
|
||
20:44:31 [X] stop -> 200 {'ok': True, 'message': 'Stack navidrome stop completed'}
|
||
20:44:36 [X] remove -> 409 {'ok': False, 'error': 'A(z) /mnt/felhom-drives/scratch_hdd/userdata/navidrome tárhely jelenleg nem elérhető — az alkalmazás nem távolítható
|
||
20:44:43 [X] after remove: deployed=True leftovers='/opt/docker/stacks/navidrome'
|
||
################ 20:44:43 navidrome done rc=0
|
||
################ 20:44:43 audiobookshelf
|
||
20:44:43 ==== audiobookshelf: ghcr.io/advplyr/audiobookshelf:2.35.1 -> ghcr.io/advplyr/audiobookshelf:2.36.1 (sub=audiobooks, class=file-leg)
|
||
20:44:46 [1] made the drive paths this app requires: ['/mnt/felhom-drives/scratch_hdd/userdata/audiobookshelf']
|
||
20:44:46 [1] required fields filled beyond DOMAIN/SUBDOMAIN: ['HDD_PATH']
|
||
20:44:46 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}
|
||
20:45:16 [1] deployed, controller state=running, pinned={'audiobookshelf': 'ghcr.io/advplyr/audiobookshelf:2.35.1'}
|
||
20:45:18 [2] seeding through the app's own front door
|
||
20:45:18 audiobookshelf: /init http=200
|
||
20:45:18 [3] control C1 — reading the seed back BEFORE the update
|
||
20:45:18 audiobookshelf: login as the seeded root http=200 ok=True
|
||
20:45:18 [4] „Mentés most" -> 200 {'ok': True, 'message': 'Mentés elindítva'}
|
||
20:46:09 [4] backup idle; last=None
|
||
20:46:09 [5] drill commit 4fbe52bb1955: audiobookshelf ghcr.io/advplyr/audiobookshelf:2.35.1 -> ghcr.io/advplyr/audiobookshelf:2.36.1 (push rc=0)
|
||
20:46:14 [5] badge HU: [{'title': 'Újabb változat érhető el ehhez az alkalmazáshoz. A frissítés indításához nyomd meg a Frissítés gombot.', 'text': 'Frissítés elérhető — ma'}]
|
||
20:46:14 [5] badge EN: [{'title': 'A newer version of this app is available. Select the Update button to start it.', 'text': 'Update available — today'}]
|
||
20:46:14 [6] Update -> 202 {'ok': True, 'data': {'accepted': True, 'completed': False}, 'message': 'Frissítés elindult – az állapot a kártyán követhető'}
|
||
20:46:14 + 0.0s phase=safety-dump label=Adatbázis pillanatkép… err=None hold=None
|
||
20:46:15 + 1.0s phase=pulling label=Új verzió letöltése… err=None hold=None
|
||
20:46:27 + 12.3s phase=starting label=Indítás az új verzióval… err=None hold=None
|
||
20:46:28 + 13.3s phase=verifying label=Működés ellenőrzése… err=None hold=None
|
||
20:46:38 + 23.6s phase=done label=Frissítve err=None hold=None
|
||
20:46:38 [7] reading the seed back AFTER the update
|
||
20:46:38 audiobookshelf: login as the seeded root http=200 ok=True
|
||
20:46:41 [8] pinned = {'audiobookshelf': 'ghcr.io/advplyr/audiobookshelf:2.36.1'}
|
||
20:46:41 [8] installed = {'audiobookshelf': 'ghcr.io/advplyr/audiobookshelf:2.36.1'}
|
||
20:46:41 [8] compose = ['image: ghcr.io/advplyr/audiobookshelf:2.36.1']
|
||
20:46:41 [8] inspect = ['audiobookshelf ghcr.io/advplyr/audiobookshelf:2.36.1 running=true restarts=0']
|
||
20:46:41 [9] verdict proven -> /mnt/5_hdd/felhom.eu/git/felhom.eu/documentation/audits/update-night-2026-09-21/apps/audiobookshelf/verdict.json
|
||
20:46:41 [X] stop -> 200 {'ok': True, 'message': 'Stack audiobookshelf stop completed'}
|
||
20:46:46 [X] remove -> 409 {'ok': False, 'error': 'A(z) /mnt/felhom-drives/scratch_hdd/userdata/audiobookshelf tárhely jelenleg nem elérhető — az alkalmazás nem távolí
|
||
20:46:54 [X] after remove: deployed=True leftovers='/opt/docker/stacks/audiobookshelf'
|
||
################ 20:46:54 audiobookshelf done rc=0
|
||
################ 20:46:54 adventurelog
|
||
20:46:54 ==== adventurelog: ghcr.io/seanmorley15/adventurelog-backend:v0.12.1,ghcr.io/seanmorley15/adventurelog-frontend:v0.12.1 -> ghcr.io/seanmorley15/adventurelog-backend:v0.13.0,ghcr.io/seanmorley15/adventurelog-frontend:v0.13.0 (sub=travel, class=db-postgis)
|
||
20:46:54 [1] adventurelog already deployed — reusing
|
||
20:46:56 [2] seeding through the app's own front door
|
||
20:47:01 adventurelog: createsuperuser :: Superuser created successfully.
|
||
20:47:05 adventurelog: seeded superuser drill0dfc9c
|
||
20:47:05 [3] control C1 — reading the seed back BEFORE the update
|
||
20:47:13 adventurelog: readback of the seeded account found=True
|
||
20:47:13 [4] „Mentés most" -> 200 {'ok': True, 'message': 'Mentés elindítva'}
|
||
20:48:03 [4] backup idle; last=None
|
||
20:48:04 [5] drill commit b4de9025ba9b: adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.12.1,ghcr.io/seanmorley15/adventurelog-frontend:v0.12.1 -> ghcr.io/seanmorley15/adventurelog-backend:v0.13.0,ghcr.io/seanmorley15/adventurelog-frontend:v0.13.0 (push rc=0)
|
||
20:48:08 [5] badge HU: [{'title': 'Újabb változat érhető el ehhez az alkalmazáshoz. A frissítés indításához nyomd meg a Frissítés gombot.', 'text': 'Frissítés elérhető — ma'}]
|
||
20:48:08 [5] badge EN: [{'title': 'A newer version of this app is available. Select the Update button to start it.', 'text': 'Update available — today'}]
|
||
20:48:09 [6] Update -> 202 {'ok': True, 'data': {'accepted': True, 'completed': False}, 'message': 'Frissítés elindult – az állapot a kártyán követhető'}
|
||
20:48:09 + 0.0s phase=safety-dump label=Adatbázis pillanatkép… err=None hold=None
|
||
20:48:10 + 1.0s phase=pulling label=Új verzió letöltése… err=None hold=None
|
||
20:48:47 + 37.9s phase=starting label=Indítás az új verzióval… err=None hold=None
|
||
20:48:52 + 43.1s phase=verifying label=Működés ellenőrzése… err=None hold=None
|
||
20:53:55 + 346.6s phase=failed label=A frissítés nem sikerült err=A(z) adventurelog frissítése 2026-09-21 20:53-kor nem sikerült, és az alkalmazás nem indult el az új verzióval. Az alkalmazás biztonsági okból leállítva marad, hogy az adatai ne sérüljenek. Visszaállítható a Mentések oldalon ebből a biztonsági mentésből: saját meghajtó, 2026-09-21 20:47 — ez a másolat a beállításokat, az adatbázist és az adatköteteket tartalmazza. hold=A(z) adventurelog frissítése 2026-09-21 20:53-kor nem sikerült, és az alkalmazás nem indult el az új verzióval. Az alkalmazás biztonsági okból leállítva marad, hogy az adatai ne sérüljenek. Visszaállítható a Mentések oldalon ebből a biztonsági mentésből: saját meghajtó, 2026-09-21 20:47 — ez a másolat a beállításokat, az adatbázist és az adatköteteket tartalmazza.
|
||
20:53:55 [7] reading the seed back AFTER the update
|
||
20:54:06 adventurelog: READBACK UNUSABLE — a username that cannot exist did not read as absent (None) :: Error response from daemon: No such container: adventurelog
|
||
20:54:08 [8] pinned = {'adventurelog': 'ghcr.io/seanmorley15/adventurelog-backend:v0.13.0', 'adventurelog-frontend': 'ghcr.io/seanmorley15/adventurelog-frontend:v0.13.0', 'adventurelog-postgres': 'postgis/postgis:16-3.5-alpine'}
|
||
20:54:08 [8] installed = {'adventurelog': 'ghcr.io/seanmorley15/adventurelog-backend:v0.12.1', 'adventurelog-frontend': 'ghcr.io/seanmorley15/adventurelog-frontend:v0.12.1', 'adventurelog-postgres': 'postgis/postgis:16-3.5-alpine'}
|
||
20:54:08 [8] compose = ['image: ghcr.io/seanmorley15/adventurelog-backend:v0.13.0', 'image: postgis/postgis:16-3.5-alpine', 'image: ghcr.io/seanmorley15/adventurelog-frontend:v0.13.0']
|
||
20:54:08 [8] inspect = []
|
||
20:54:08 [9] verdict failed -> /mnt/5_hdd/felhom.eu/git/felhom.eu/documentation/audits/update-night-2026-09-21/apps/adventurelog/verdict.json
|
||
################ 20:54:08 adventurelog done rc=0
|
||
################ 20:54:08 tandoor
|
||
20:54:08 ==== tandoor: ghcr.io/tandoorrecipes/recipes:2.6.13 -> ghcr.io/tandoorrecipes/recipes:2.6.15 (sub=recipes, class=db-postgres)
|
||
20:54:08 [1] tandoor already deployed — reusing
|
||
20:54:11 [2] seeding through the app's own front door
|
||
20:54:13 tandoor: createsuperuser :: Traceback (most recent call last): File "/opt/recipes/manage.py", line 8, in <module> from django.core.management import execute_from_command_line ModuleNotFoun
|
||
20:54:15 tandoor: the account did not appear in the app's own ORM :: aceback (most recent call last): File "/opt/recipes/manage.py", line 10, in <module> raise ImportError( ...<3 lines>... ) from exc ImportError: Couldn't import Django. Are you sure it's installed and
|
||
20:54:15 [9] verdict inconclusive -> /mnt/5_hdd/felhom.eu/git/felhom.eu/documentation/audits/update-night-2026-09-21/apps/tandoor/verdict.json
|
||
################ 20:54:15 tandoor done rc=0
|
||
################ 20:54:15 zipline
|
||
20:54:15 ==== zipline: ghcr.io/diced/zipline:4.6.1 -> ghcr.io/diced/zipline:4.7.0 (sub=img, class=db-postgres)
|
||
20:54:15 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}
|
||
20:55:26 [1] deployed, controller state=unhealthy, pinned={'zipline': 'ghcr.io/diced/zipline:4.6.1', 'zipline-postgres': 'postgres:16-alpine'}
|
||
20:55:26 [1] NOTE: the controller's own state is 'unhealthy', not 'running' — recorded, not treated as a failure; the fixture's front-door wait is the real gate
|
||
20:55:28 [2] seeding through the app's own front door
|
||
20:55:28 zipline: /api/auth/register http=400 :: {"error":"E1037: User registration is disabled","code":1037,"statusCode":400}
|
||
20:55:28 zipline: /api/auth/setup http=404 :: {"message":"Route POST:/api/auth/setup not found","error":"Not Found","statusCode":404}
|
||
20:55:28 zipline: neither register nor setup accepted a first user
|
||
20:55:28 [9] verdict inconclusive -> /mnt/5_hdd/felhom.eu/git/felhom.eu/documentation/audits/update-night-2026-09-21/apps/zipline/verdict.json
|
||
################ 20:55:28 zipline done rc=0
|
||
################ 20:55:28 n8n
|
||
20:55:28 ==== n8n: n8nio/n8n:2.31.3 -> n8nio/n8n:2.40.5 (sub=auto, class=db-postgres)
|
||
20:55:29 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}
|
||
20:58:34 [1] deployed, controller state=running, pinned={'n8n': 'n8nio/n8n:2.31.3'}
|
||
20:58:37 [2] seeding through the app's own front door
|
||
20:58:37 n8n: /rest/owner/setup http=200
|
||
20:58:37 [3] control C1 — reading the seed back BEFORE the update
|
||
20:58:37 n8n: login as the seeded owner http=200 ok=True
|
||
20:58:37 [4] „Mentés most" -> 200 {'ok': True, 'message': 'Mentés elindítva'}
|
||
20:59:53 [4] backup idle; last=None
|
||
20:59:54 [5] drill commit 7d42360161d9: n8n n8nio/n8n:2.31.3 -> n8nio/n8n:2.40.5 (push rc=0)
|
||
20:59:58 [5] badge HU: [{'title': 'Újabb változat érhető el ehhez az alkalmazáshoz. A frissítés indításához nyomd meg a Frissítés gombot.', 'text': 'Frissítés elérhető — ma'}]
|
||
20:59:58 [5] badge EN: [{'title': 'A newer version of this app is available. Select the Update button to start it.', 'text': 'Update available — today'}]
|
||
20:59:58 [6] Update -> 202 {'ok': True, 'data': {'accepted': True, 'completed': False}, 'message': 'Frissítés elindult – az állapot a kártyán követhető'}
|
||
20:59:58 + 0.0s phase=safety-dump label=Adatbázis pillanatkép… err=None hold=None
|
||
20:59:59 + 1.0s phase=pulling label=Új verzió letöltése… err=None hold=None
|
||
21:01:37 + 98.4s phase=starting label=Indítás az új verzióval… err=None hold=None
|
||
21:01:41 + 102.5s phase=verifying label=Működés ellenőrzése… err=None hold=None
|
||
21:01:56 + 117.9s phase=done label=Frissítve err=None hold=None
|
||
21:01:56 [7] reading the seed back AFTER the update
|
||
21:01:57 n8n: login as the seeded owner http=200 ok=True
|
||
21:01:59 [8] pinned = {'n8n': 'n8nio/n8n:2.40.5'}
|
||
21:01:59 [8] installed = {'n8n': 'n8nio/n8n:2.40.5'}
|
||
21:01:59 [8] compose = ['image: n8nio/n8n:2.40.5']
|
||
21:01:59 [8] inspect = ['n8n n8nio/n8n:2.40.5 running=true restarts=0']
|
||
21:01:59 [9] verdict proven -> /mnt/5_hdd/felhom.eu/git/felhom.eu/documentation/audits/update-night-2026-09-21/apps/n8n/verdict.json
|
||
21:02:02 [X] stop -> 200 {'ok': True, 'message': 'Stack n8n stop completed'}
|
||
21:02:07 [X] remove -> 200 {'ok': True, 'data': {'removed': 'n8n', 'volumes_removed': ['n8n_n8n_data'], 'hdd_paths_removed': [], 'hdd_paths_preserved': [], 'hdd_note':
|
||
21:02:15 [X] after remove: deployed=False leftovers='/opt/docker/stacks/n8n'
|
||
################ 21:02:15 n8n done rc=0
|
||
################ 21:02:15 mealie
|
||
21:02:15 ==== mealie: ghcr.io/mealie-recipes/mealie:v3.20.1 -> ghcr.io/mealie-recipes/mealie:v3.27.0 (sub=recipes, class=db-postgres)
|
||
21:02:15 [1] deploy -> 500 {'ok': False, 'error': 'a(z) "recipes" aldomain már használatban van egy másik alkalmazásban'}
|
||
21:02:15 [9] verdict inconclusive -> /mnt/5_hdd/felhom.eu/git/felhom.eu/documentation/audits/update-night-2026-09-21/apps/mealie/verdict.json
|
||
################ 21:02:15 mealie done rc=0
|