Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
This commit is contained in:
@@ -122,7 +122,10 @@ deployed `app.yaml` (customer secrets) is never overwritten. Full deploy details
|
|||||||
`catalog_since`. Two gates: `check-test-record.py` (static — every ladder well-formed and its newest step
|
`catalog_since`. Two gates: `check-test-record.py` (static — every ladder well-formed and its newest step
|
||||||
IS the compose; runs in CI too) and `check-test-record-move.py` (history + the registry for MOVED refs
|
IS the compose; runs in CI too) and `check-test-record-move.py` (history + the registry for MOVED refs
|
||||||
only — a move must add a proven entry whose digests the registry still serves; the hook). The 21 moves
|
only — a move must add a proven entry whose digests the registry still serves; the hook). The 21 moves
|
||||||
of 2026-09-22 carry backfilled entries citing their records (`ladder_backfill.py`, one-off).
|
of 2026-09-22 carry backfilled entries citing their records (`ladder_backfill.py`, one-off). **Every entry but the
|
||||||
|
newest carries its own compose at `templates/<app>/steps/<ladder.step_key(to)>.yml`** (2026-09-24, `09` §6.4 part
|
||||||
|
5): the box pins that file, one step per press. The writer keeps the superseded step's definition — fixes
|
||||||
|
included — and `check-test-record.py` rule 4 refuses a step with no file or a file naming other images.
|
||||||
- **Taking an app out of circulation — use `lifecycle:`, never a directory move.** `.felhom.yml`
|
- **Taking an app out of circulation — use `lifecycle:`, never a directory move.** `.felhom.yml`
|
||||||
gains an optional `lifecycle:` field: `available` (default; absent/empty means this), `hidden`
|
gains an optional `lifecycle:` field: `available` (default; absent/empty means this), `hidden`
|
||||||
(not offered for new installs, no explanation owed), `abandoned` (upstream stopped developing it —
|
(not offered for new installs, no explanation owed), `abandoned` (upstream stopped developing it —
|
||||||
|
|||||||
@@ -2,6 +2,12 @@
|
|||||||
|
|
||||||
> Created with the REUSE.md rollout (2026-07-03). History: `CHANGELOG.md`; format spec: `README.md`.
|
> Created with the REUSE.md rollout (2026-07-03). History: `CHANGELOG.md`; format spec: `README.md`.
|
||||||
|
|
||||||
|
- **2026-09-24 (morning) — STEP DEFINITIONS (`5ed599c`).** Every ladder entry but the newest has its own compose at
|
||||||
|
`templates/<app>/steps/<ladder.step_key(to)>.yml` (sha256 of `to`, canonical JSON, 16 hex = controller
|
||||||
|
`stacks.StepKey`); gate rule 4 + decoys; the writer keeps the superseded step; 8 backfilled
|
||||||
|
(`steps_backfill.py`, one-off, from the NEWEST commit naming the step's images). Controller v0.268.0 reads them:
|
||||||
|
one press = one step (proven live, romm two steps). R-653/R-656 fixed in the bench; the two suites that typed
|
||||||
|
live pins now read them (R-663). Open: R-652, R-655, R-664 (a step has no `.felhom.yml` of its own).
|
||||||
- **2026-09-24 (night 2026-09-23) — THE TEST RECORD.** An `image:` move needs a proven `update_ladder:` entry
|
- **2026-09-24 (night 2026-09-23) — THE TEST RECORD.** An `image:` move needs a proven `update_ladder:` entry
|
||||||
(`scripts/ladder.py`; gates `check-test-record.py` + `check-test-record-move.py`; the only writer
|
(`scripts/ladder.py`; gates `check-test-record.py` + `check-test-record-move.py`; the only writer
|
||||||
`upgrade-test.py --write-ladder`). 21 older moves backfilled; 12 steps published tonight. Harness v3: box fixtures
|
`upgrade-test.py --write-ladder`). 21 older moves backfilled; 12 steps published tonight. Harness v3: box fixtures
|
||||||
|
|||||||
@@ -1,22 +1,15 @@
|
|||||||
# REPORT — the test record, and 12 steps published with it (night shift 2026-09-23)
|
# REPORT — step definitions for the ladder, two bench fixes (2026-09-24, `5ed599c`)
|
||||||
|
|
||||||
`09-update-architecture.md` §3 decisions 13, 21–23; §6.4 part 4 and the catalog half of part 6. Night record:
|
Full record: `felhom.eu/documentation/audits/ladder-2026-09-24/README.md`.
|
||||||
`felhom.eu/documentation/audits/DRILL-night-2026-09-23.md`.
|
|
||||||
|
|
||||||
## Not done, or changed
|
- Baseline `585a7cba22cf` → **`5ed599c`**. No `image:` line moved.
|
||||||
- adventurelog v0.13.0 NOT moved (R-655): our frontend healthcheck override names `/nodejs/bin/node`, gone in
|
- `ladder.step_key` / `step_file`; `check-test-record.py` rule 4 (+ 4 decoy cases: no file, right name wrong image,
|
||||||
v0.13.0; with it dropped, the backend's start-time `download-countries` crash-looped on a cut-short download.
|
wrong name, genuine); `upgrade-test.py --write-ladder` keeps the superseded step's compose; `steps_backfill.py`
|
||||||
- gitea inconclusive (installer, R-624). Step files `steps/<to>.yml` (part 5) not written.
|
wrote 8 step files (emby, ghost, immich, n8n, navidrome, nextcloud, romm ×2 — romm's first from `f4eb94f`).
|
||||||
- `check-image-resolvable.py` does not keep digests; `image_digest.py` was written for that.
|
- R-653 `load_verdict`, R-656 `clear_scratch_folders` + `test_upgrade_bench.py` (5 tests).
|
||||||
|
- R-663: `test_gate_decoys.py` and `test_ladder_writer.py` were red at the start (last night's pin moves under
|
||||||
## What shipped
|
literals); they now read the live pins.
|
||||||
- Gates + format + writer + backfill: `6db08a5` (CI 920). R-612 wishlist 512M, R-613 uptime-kuma
|
- Red-proofs: rule 4 removed → 3 decoys pass wrongly; writer's STEP block off → "has no definition"; bench mutations →
|
||||||
`UPTIME_KUMA_DB_TYPE=sqlite`: `a5a729a`. Harness fixes: `1263773`, nextcloud fixture wait.
|
3 failures. Green: `catalog_gates.py` OK, decoys 84 OK, writer 6 OK, bench 5 OK.
|
||||||
- Published with records: romm 5.3.1 (`7ff4e68`) and mariadb 11.8 (`431cdec`), ghost 6.65.0 (`e6afab9`),
|
- Live: the box (controller v0.268.0) climbed romm's two steps from these files on 9202. **Not run:** a bench edge
|
||||||
wishlist v0.67.1 + opengist 1.15 (`657c83f`), navidrome 0.64.1 (`76cc1f5`), komga 1.27.1 + 768M (`fc1becc`),
|
with the R-653/R-656 changes (no bench this session).
|
||||||
n8n 2.41.1 (`04b63db`), emby 4.11.0.3 (`8d573ad`), kimai mariadb 11.8 (`376b2c3`), immich-ML v3.2.2
|
|
||||||
(`b82b7c6`), nextcloud 34.0.4 (`5d49a11`, files_may_change).
|
|
||||||
|
|
||||||
## Gates
|
|
||||||
`catalog_gates.py --fast` OK on every push (the move gate judged each move on the registry); decoys 80 OK;
|
|
||||||
`test_ladder_writer.py` OK; `test_catalog_gates.py` OK (its table test had been stale since two gates ago).
|
|
||||||
|
|||||||
Reference in New Issue
Block a user