0c263c77f2
gates / gates (push) Successful in 24s
Phase 0 — measured, never estimated: - both demo boxes: 10 apps, 0 behind, 0 unknown - 46 of 58 exact catalog pins are behind upstream; 39 within a major, 7 across - 6 of 7 measurable floating pins have been repushed since the catalog set them (R-446 is no longer theoretical) - the "23 of 66 floating pins" figure repeated in four places was STALE; recounted to 10, with the definition written down beside it Three claims in the brief corrected, named first: - R-589 was NOT open — it shipped in v0.258.0; only the row was stale - the chaos-night canary is NOT a defect — both gates refused to certify by design - the hub half of the report confirmed, with the nuance that the raw payload is stored whole, so Slice 7 is cheaper than the row implies Closed: R-524 (controller v0.260.0, proven live in both languages), R-520 (power cut during a REAL version change — the pin goes back, the app runs, the page says so), R-589, R-469 (MariaDB half). Filed: R-605, R-606. R-462's stale scope corrected. 09 gains §3 decision 10 (decided by CC unattended — operator may reverse), §3b with the seven questions in the decision shape, §6.2/6.3 the two open slices, and §6.4 an update night costed from R-462's real numbers. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
80 lines
3.4 KiB
Plaintext
80 lines
3.4 KiB
Plaintext
### STEP 5 — THE CUT (poller observations, host UTC)
|
|
11:04:49.596Z poller armed, waiting for update_phase=pulling
|
|
11:04:50.561Z "updating":false
|
|
11:04:52.501Z "updating":false
|
|
11:04:54.436Z "updating":true "update_phase":"pulling"
|
|
11:04:54.439Z >>> CUTTING POWER: pct stop 9202
|
|
11:04:58.207Z >>> pct stop returned rc=0 ; status: status: stopped
|
|
|
|
NOTE: pct stop is not instantaneous — it returned 3.8 s after the decision, so the guest
|
|
had up to ~3.8 s more of life inside the pulling phase. The phase at the moment of
|
|
the decision is OBSERVED; the phase at the moment the kernel actually froze is INFERRED.
|
|
|
|
### POST-CRASH ON-DISK STATE, read from the STOPPED guest's rootfs (pct mount, no boot yet)
|
|
-- update-journal.json --
|
|
ABSENT
|
|
|
|
-- app.yaml as the crash left it --
|
|
# Auto-generated by felhom-controller — do not edit locked fields manually
|
|
deployed: true
|
|
deployed_at: "2026-09-21T10:57:12Z"
|
|
env:
|
|
DOMAIN: enkisfelhom.hu
|
|
SUBDOMAIN: status
|
|
locked_fields:
|
|
- DOMAIN
|
|
- SUBDOMAIN
|
|
desired_state: running
|
|
installed_images:
|
|
uptime-kuma:
|
|
ref: louislam/uptime-kuma:2.4.0
|
|
digest: sha256:91e963bfda569ba115206e843febb446f473ab525add4e08b2b9e3beffa16985
|
|
at: "2026-09-21T10:57:45Z"
|
|
pinned_images:
|
|
uptime-kuma: louislam/uptime-kuma:2.5.0
|
|
|
|
-- live docker-compose.yml image line as the crash left it --
|
|
image: louislam/uptime-kuma:2.5.0
|
|
|
|
-- pre-update compose copy, if one was saved --
|
|
total 32
|
|
drwxr-xr-x 2 100000 100000 4096 Sep 21 13:04 .
|
|
drwxr-xr-x 57 100000 100000 4096 Sep 13 22:22 ..
|
|
-rw-r--r-- 1 100000 100000 3318 Sep 21 13:04 .felhom.yml
|
|
-rw------- 1 100000 100000 506 Sep 21 13:04 app.yaml
|
|
-rw-r--r-- 1 100000 100000 1597 Sep 21 13:04 applied-compose.yml
|
|
-rw-r--r-- 1 100000 100000 1597 Sep 21 13:04 docker-compose.yml
|
|
-rw-r--r-- 1 100000 100000 1597 Sep 21 13:04 pre-update-applied.yml
|
|
-rw-r--r-- 1 100000 100000 1597 Sep 21 13:04 pre-update-compose.yml
|
|
(unmounted)
|
|
|
|
### CORRECTION — the journal read above was WRONG.
|
|
/var/lib/docker inside the guest is a separate MOUNT (not a symlink — my first wording was
|
|
wrong too): mp0 mounts a 70G disk at /var/lib/felhom and its /docker subdirectory is bound
|
|
onto /var/lib/docker (findmnt: /dev/loop1[/docker] /var/lib/docker ext4).
|
|
'pct mount 9202' maps only the ROOTFS and does not apply the guest's internal mounts, so
|
|
<rootfs>/var/lib/docker is an EMPTY MOUNTPOINT STUB from the host. 'test -f' therefore
|
|
answered ABSENT for a file that exists — a FALSE NEGATIVE, not evidence.
|
|
From the host the bytes are at <rootfs>/var/lib/felhom/docker/volumes/.../_data/data/.
|
|
Found by running 'find' over the whole rootfs instead of trusting the one path.
|
|
Path provenance and positive controls: 12-journal-path-provenance.txt.
|
|
|
|
### POST-CRASH update-journal.json, read from the STOPPED guest (correct path, still no boot)
|
|
-rw------- 1 100000 100000 439 Sep 21 13:04 /var/lib/lxc/9202/rootfs/var/lib/felhom/docker/volumes/felhom-controller-data/_data/data/update-journal.json
|
|
--- contents ---
|
|
{
|
|
"updates": {
|
|
"uptime-kuma": {
|
|
"phase": "pulling",
|
|
"started_at": "2026-09-21T11:04:52.924206274Z",
|
|
"prev_pin": {
|
|
"uptime-kuma": "louislam/uptime-kuma:2.4.0"
|
|
},
|
|
"prev_compose": "/opt/docker/stacks/uptime-kuma/pre-update-compose.yml",
|
|
"prev_applied": "/opt/docker/stacks/uptime-kuma/pre-update-applied.yml",
|
|
"proven_copy_at": "2026-09-21T11:01:46Z",
|
|
"proven_tier": 1
|
|
}
|
|
}
|
|
}
|