# REPORT — 2026-09-30 (day): the last six PostgreSQL apps, the demo boxes by day, the gate's wait seen live, catalog currency, stale rows **Tester-2 (read only, hub `GET /configs` + `/hosts`, 12:03 CEST):** - The customer record `Tester-2` (sajatfelhom.hu) exists; config `v0.283.1 MANAGED`. - **No box has registered** — status and version read `—`, no host in `/hosts`. - So no installed apps and no `app_update.unattended` value exist to read yet. ## The Part table | part | outcome | why / where | |---|---|---| | 0 Tester-2 | **done** (3 lines above) | `audits/pg-last-six-2026-09-30/P0/` | | A1 upstream table | **done** — 3 target 18, 3 stay | `audits/pg-last-six-2026-09-30/README.md`, `A1/upstream-notes.md` | | A2 special images | **done, no build** — immich and adventurelog both stay by the rule; immich's 18 images would also swap an extension | same | | A3 fixtures | **done** — sparkyfitness, rallly, outline all through the front door; decision 52 NOT needed | catalog `e6f3ec2` | | A4 two venues + undo | **done** — rallly `25ffd89`, outline `aeb0cd6`, sparkyfitness `1666572` → 18; one undo case each; none `memory_tight` | `bench/`, `box/` | | B demo boxes by day | **done / changed** — no demo box has any of the three moved PostgreSQL apps (nothing installed for it); the Part F apps bookstack + kimai on demo-hp were stepped by the chain press of Part C and read „Naprakész" after | `C/C1-*`, `C/C9-after.txt` | | C gate waits for the leg | **done — PROVEN LIVE** on demo-hp: two deferral lines while the leg stepped two apps, the backup started on the first poll after the leg ended, and succeeded (9.98 GB); config + window put back and read back | `C/README.md` | | D catalog currency | **done** — 25 of 53 behind inside a major, 19 across; night-updatable **28 (+1) → 31 (+1)** after the session | `audits/catalog-currency-2026-09-30.md` | | E stale rows | **done** — R-463 closed, R-446 + R-440 narrowed, STATUS; **E4 changed:** no tag — the ISO's build commit cannot be proven and `installer-v*` is the wrong line → R-730 | `E/` | | F more self-updating apps | **7 of 8 done** — bookstack, kimai, audiobookshelf, n8n, navidrome, grafana, komga; **immich not moved** (first start OOM on the bench, twice → R-732) | `F/README.md` | No controller, agent or hub release. The golden is not behind anything new; the waiver runs to 2026-10-04 (a weekly bake is due before then — unchanged by this session). ## Claims in the brief that turned out wrong (or right), named - **Six apps and images as listed** — right. - **"outline and rallly have no front-door seed route"** — WRONG. outline: `POST /api/installation.create` (its self-hosted first run). rallly: its own sign-up, with the e-mail code read from its own `verifications` row in place of a mailbox. - **zipline "closed sign-up, no route" (R-624)** — WRONG for a fresh install: `POST /api/setup` is its first-run route (the old fixture called two other paths). zipline stays on 16 anyway. - **"immich upstream still runs an older major than ours"** — right: upstream runs 14 (ours 16). - **"the PostGIS target carries the same PostGIS major"** — moot (adventurelog stays on 16); every candidate tag is PostGIS 3.x and a dump/load needs no `postgis_extensions_upgrade()`. - **"the night-chain action does not include the whole-guest backup"** — right (its header, and live: the backup came from the quiesce loop's own poll, not the chain). - **"a manual leg sets the flag the gate reads"** — right, and now proven live (the deferral fired during a manual chain). - **"R-446 is stale"** — right (it said READY TO BUILD; the box half shipped in v0.269.x) → narrowed. - **"the installer 1.29.0 is untagged"** — right, but **the fix named was wrong**: `installer-v*` is the host-install script's line (1.28.0 on main), and 1.29.0 is the ISO's; and the ISO was built from an uncommitted tree → R-730, no tag. - **Part C "if the tier is not due, shorten its cadence"** — not needed: demo-hp's local tier WAS due, because the space preflight had refused it 10 times since 2026-09-27 (R-548 note). No cadence was changed. - **Part C "set the backup window"** — the window lives in the product's own setting (`settings.json`, via `POST /backups/window`), not in `controller.yaml`; it was put back by clearing that key with the controller stopped (it had never been set). - **Decision 52 "outline, rallly and zipline never move without it"** — two of them moved without it; the third stays by the upstream rule, not for want of a seed. ## Decisions I took None. Decision 52 was offered and was not needed, so it is not recorded (`09` §3, 2026-09-30 note). ## Rows Register **361 → 364**. Closed: R-463. Narrowed: R-446, R-440. Opened: **R-730** (the ISO build names a commit that is not the image), **R-731** (tag-shape switches + two release checks), **R-732** (immich's first start OOM-killed its database on the bench). Notes added: R-462, R-548, R-624, R-687 (item 4 proven; the manual-chain deferral text). ## Teardown (three layers) - **Machine:** 9202 — every test app removed through the product (volumes none left; four drive folders kept by R-442's refusal, as found before today), `controller.yaml` restored (`git.repo_url` = the live catalog, read back). demo-hp 9201 — `controller.yaml` IDENTICAL to `controller.yaml.pre-gate-day`, `backup_window_start` cleared, the page reads 02:30 / 03:30 / 04:15 / 04:30–08:30, poll 5m; bookstack and kimai stepped (intended: they were moved in the live catalog today and would have stepped tonight). demo-felhom — untouched (it has none of the moved apps). - **Host:** bench LXC 9401 destroyed, its template removed, host temp files removed; drill repo reset to the live `main` (`403a8f5`), image lines identical, `has_actions: False`. - **Hub:** read only; nothing provisioned. - **Consequence stated:** demo-hp's local whole-guest tier ran at 13:37 today, so it next runs at the 2026-10-02 04:30 window. ## Numbers moved `unproven.py --summary`: unchanged — walked 20, partial 17, built 14, missing 4, **not walked 35 of 55**. Evidence left the machines at the end of each phase (every bench edge was copied off before the next started; the box logs are written on DooPlex by the walk tools).