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
26 lines
2.4 KiB
Plaintext
26 lines
2.4 KiB
Plaintext
21:05:46 ==== papra: ghcr.io/papra-hq/papra:26.6.1-rootless -> ghcr.io/papra-hq/papra:26.6.2-rootless (sub=papra, class=other)
|
||
21:05:47 [1] deploy -> 202 {'ok': True, 'message': 'Telepítés elindítva – az állapot a kártyán követhető'}
|
||
21:06:37 [1] deployed, controller state=running, pinned={'papra': 'ghcr.io/papra-hq/papra:26.6.1-rootless'}
|
||
21:06:39 [2] seeding through the app's own front door
|
||
21:06:40 papra: sign-up http=200
|
||
21:06:40 [3] control C1 — reading the seed back BEFORE the update
|
||
21:06:40 papra: sign-in as the seeded account http=200 ok=True
|
||
21:06:40 [4] „Mentés most" -> 200 {'ok': True, 'message': 'Mentés elindítva'}
|
||
21:07:40 [4] backup idle; last=None
|
||
21:07:41 [5] drill commit b29623bf53d1: papra ghcr.io/papra-hq/papra:26.6.1-rootless -> ghcr.io/papra-hq/papra:26.6.2-rootless (push rc=0)
|
||
21:07:46 [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'}]
|
||
21:07:46 [5] badge EN: [{'title': 'A newer version of this app is available. Select the Update button to start it.', 'text': 'Update available — today'}]
|
||
21:07:46 [6] Update -> 202 {'ok': True, 'data': {'accepted': True, 'completed': False}, 'message': 'Frissítés elindult – az állapot a kártyán követhető'}
|
||
21:07:46 + 0.0s phase=safety-dump label=Adatbázis pillanatkép… err=None hold=None
|
||
21:07:47 + 1.0s phase=pulling label=Új verzió letöltése… err=None hold=None
|
||
21:08:29 + 43.0s phase=starting label=Indítás az új verzióval… err=None hold=None
|
||
21:08:31 + 45.1s phase=verifying label=Működés ellenőrzése… err=None hold=None
|
||
21:08:47 + 60.5s phase=done label=Frissítve err=None hold=None
|
||
21:08:47 [7] reading the seed back AFTER the update
|
||
21:08:47 papra: sign-in as the seeded account http=200 ok=True
|
||
21:08:50 [8] pinned = {'papra': 'ghcr.io/papra-hq/papra:26.6.2-rootless'}
|
||
21:08:50 [8] installed = {'papra': 'ghcr.io/papra-hq/papra:26.6.2-rootless'}
|
||
21:08:50 [8] compose = ['image: ghcr.io/papra-hq/papra:26.6.2-rootless']
|
||
21:08:50 [8] inspect = ['papra ghcr.io/papra-hq/papra:26.6.2-rootless running=true restarts=0']
|
||
21:08:50 [9] verdict proven -> /mnt/5_hdd/felhom.eu/git/felhom.eu/documentation/audits/update-night-2026-09-21/apps/papra/verdict.json
|