Files
felhom.eu/documentation/audits/the-28-2026-09-22/apps/outline/verdict.json
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

144 lines
5.7 KiB
JSON

{
"harness_version": 2,
"app": "outline",
"venue": "guest 9202 demo-hp-scratch, controller 0.261.0, drill catalog",
"class": "db",
"from": {
"outline": "outlinewiki/outline:1.9.1",
"outline-postgres": "postgres:16-alpine",
"outline-redis": "redis:7-alpine"
},
"to": {
"outline": "outlinewiki/outline:1.10.1",
"outline-postgres": "postgres:16-alpine",
"outline-redis": "redis:7-alpine"
},
"verdict": "failed",
"deployed": true,
"seed_route": "none — sign-in requires an external identity provider (OIDC/Slack/Google); no local sign-up route exists",
"seed_read_before": false,
"seed_read_after_update": false,
"backup": {
"snapshots_offered": 1,
"first": {
"time": "2026-09-22T12:44:25Z",
"short_id": "helyi",
"tier": 1,
"drive_label": "Belső SSD (rendszer)"
}
},
"restore_verdict": "failed",
"seed_read_after_restore": false,
"healthy_after": false,
"migration_observed": null,
"removed_clean": true,
"edge": {
"from": "outlinewiki/outline:1.9.1",
"to": "outlinewiki/outline:1.10.1"
},
"duration_s": 1389.6,
"measured_at": "2026-09-22T12:34:19.669895+00:00",
"evidence": "the-28-2026-09-22/apps/outline/",
"notes": [
"fixture ran and found no non-browser seed route: sign-in requires an external identity provider (OIDC/Slack/Google); no local sign-up route exists"
],
"front_door_after_deploy": {
"rc": 0,
"code": "404"
},
"drill_commit": "69730efa520b",
"badge_seconds": 4.6,
"badges": {
"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"
}
],
"en": [
{
"title": "A newer version of this app is available. Select the Update button to start it.",
"text": "Update available — today"
}
]
},
"phases": {
"accepted": true,
"http": "202",
"phases": [
{
"t": 0.0,
"phase": "safety-dump",
"label": "Adatbázis pillanatkép…",
"updating": true,
"error": null,
"hold": null
},
{
"t": 1.1,
"phase": "pulling",
"label": "Új verzió letöltése…",
"updating": true,
"error": null,
"hold": null
},
{
"t": 64.8,
"phase": "starting",
"label": "Indítás az új verzióval…",
"updating": true,
"error": null,
"hold": null
},
{
"t": 65.8,
"phase": "verifying",
"label": "Működés ellenőrzése…",
"updating": true,
"error": null,
"hold": null
},
{
"t": 368.6,
"phase": "failed",
"label": "A frissítés nem sikerült",
"updating": false,
"error": "A(z) outline frissítése 2026-09-22 14:50-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-22 14:44 — ez a másolat a beállításokat, az adatbázist és az adatköteteket tartalmazza.",
"hold": "A(z) outline frissítése 2026-09-22 14:50-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-22 14:44 — ez a másolat a beállításokat, az adatbázist és az adatköteteket tartalmazza."
}
],
"duration_s": 368.6,
"final_phase": "failed",
"update_error": "A(z) outline frissítése 2026-09-22 14:50-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-22 14:44 — ez a másolat a beállításokat, az adatbázist és az adatköteteket tartalmazza.",
"hold_reason": "A(z) outline frissítése 2026-09-22 14:50-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-22 14:44 — ez a másolat a beállításokat, az adatbázist és az adatköteteket tartalmazza.",
"state": "stopped"
},
"observables": {
"pinned_images": {
"outline": "outlinewiki/outline:1.10.1",
"outline-postgres": "postgres:16-alpine",
"outline-redis": "redis:7-alpine"
},
"installed_images": {
"outline": "outlinewiki/outline:1.9.1",
"outline-postgres": "postgres:16-alpine",
"outline-redis": "redis:7-alpine"
},
"catalog_images": {
"outline": "outlinewiki/outline:1.10.1",
"outline-postgres": "postgres:16-alpine",
"outline-redis": "redis:7-alpine"
},
"live_compose_image_lines": [
"image: outlinewiki/outline:1.10.1",
"image: postgres:16-alpine",
"image: redis:7-alpine"
],
"docker_inspect": []
},
"update_phase_final": "failed",
"restore_raw": "{'ok': True, 'snapshot_id': 'helyi', 'snapshots': [{'time': '2026-09-22T12:44:39Z', 'short_id': 'helyi', 'tier': 1, 'drive_label': 'Belső SSD (rendszer)'}], 'http': 'HTTP/2 302', 'location': ['location: /backups/restore?flash=flash.restore.started'], 'seconds': 105.4, 'state_after': 'starting', 'hold_after': None, 'observables_after': {'pinned_images': {'outline': 'outlinewiki/outline:1.9.1', 'out",
"restore_refusal": null,
"restore_state_seen": "restarting",
"remove_leftovers": ""
}