2.7 KiB
REPORT — catalog_since backfill (2026-09-02)
Overwritten each run. This records the most recent implementation only.
What was done
One new optional key, catalog_since, in all 53 .felhom.yml files, plus the rule that keeps it
true in CLAUDE.md. No docker-compose.yml was touched and no image pin moved.
This is slice 2 of the update arc opened by
felhom.eu/documentation/audits/SPIKE-app-update-2026-09-01.md. The consumer is felhom-controller
v0.233.0, which renders one Hungarian badge from it — "Naprakész" or
"Frissítés elérhető — N napja". No version number reaches the customer, by operator ruling.
Baseline
| repo at start | 5d8f25f61189 — matched the task's stated baseline, had not moved |
| commit pushed | 69761cf91bfc |
How the dates were derived
A throwaway script walked each app's templates/<app>/docker-compose.yml history newest→oldest and
took the newest commit whose set of image: values differs from its parent's. A YAML parse, not a
line scan.
Two commits excluded by hash: 214d448 and 30bd892 — the bentopdf pin move and its same-hour
revert. This repo's own CHANGELOG records them as a spike measurement, not a release; counting them
would date bentopdf 2026-09-02 for a pin that has not moved since 71828a8 (2026-07-12).
Verification. The four multi-major anchors from the spike all reproduced exactly — nextcloud
5e2c1ae, grafana b789acc, calcom 147cee7, vikunja 3fa63cd, all 2026-07-18. Six further
apps were re-checked against git log by hand: bentopdf, plex, crafty-controller, homebox,
bookstack, wanderer. All six correct.
Range: 2026-02-15 (plex, still on the pin it was added with) to 2026-07-21. Thirty-eight of 53 sit on 2026-07-18, the catalog-wide bump.
Every file was re-parsed with yaml.safe_load after the edit and the key read back — 53/53 clean.
Gates
| gate | result |
|---|---|
image-pins |
OK (exit 0) |
image-resolvable |
INCONCLUSIVE — Docker Hub throttled 6 of 65 unauthenticated manifest lookups. 59 verified, none dead. Not caused by this change. |
volume-persistence |
INCONCLUSIVE — the prober refused to report because its own canary came back UNDETERMINED on this host. Not caused by this change (it needs a scratch Docker host). |
Entry point: python3 scripts/catalog_gates.py, overall exit 0.
Known gap, filed rather than left implicit
There is no gate asserting that a commit which changes an image: line also moves that app's
catalog_since. The gates runner fetches at --depth 1 and has no parent commit to diff against, so
the gate needs a deeper fetch. Filed as a row in felhom.eu/documentation/backlog/OPEN-ITEMS.md.