# REPORT — probe fix, gate, promotion train, 2026-09-22 **The full record is `documentation/audits/PROBE-FIX-2026-09-22.md`.** This file is the session report. The shared `REPORT.md` is deliberately not touched (two sessions in this repo clobber it). ## Not done, or changed from the brief 1. **FIFTEEN versions moved, not fourteen** — tandoor was re-walked today and became the fifteenth. 2. **I nearly dropped `nextcloud`'s MariaDB engine move on a wrong assumption.** Running `check-engine-major.py` against that exact commit ALLOWED it by name under R-469. It moved. Recorded as a decision the operator may reverse. 3. **The first push of the moves FAILED CI** (job 877, `15d7c2b`): no PyYAML on the runner, the new gate answered INCONCLUSIVE. Fixed with a degraded mode + five decoys; job **878** = success. 4. **bookstack's phase trace on demo-hp is incomplete** — my own 115 s probe run pressed the Update and timed out mid-flight. Said plainly rather than presented as a full trace. 5. **The four apps were pressed on ONE demo box, not two.** `demo-felhom` has only `opengist` installed. I did not install four apps on it to satisfy the instruction. **No brief claim turned out wrong.** All three probe faults were verified against the files before any edit and all three were exactly as stated. ## What ran - **Part 1** — the three probes fixed in one commit; red-proofed live on 9202 in **both** directions through the product; tandoor's failed edge re-walked and now `done` at +41.1 s; a new `--fast` catalog gate with four red-proofs and ten decoys; the never-judged templates counted. - **Part 2** — fifteen moves, one commit per app, `catalog_since` today, all gates green, CI green by job id; the guarded Update pressed on four apps on demo-hp, all four `done`. ## What shipped - `app-catalog-felhom.eu` **@1ad1f34** — three probe corrections, fifteen version moves, one new gate, `test_gate_decoys.py` 51 → 56 cases. CI job **878 = success**. - `felhom.eu` — this report, the audit, the evidence, R-630/R-631/R-632, R-618 CLOSED, `09` §8 limitation 8, the capability map's guarded-update row, and `STATUS.md`. - **No controller, agent or hub code.** The brief forbade it and none was needed. ## What is owed - **What `verifying` does for a stack with no probe target** (R-630) — answerable on demo-hp, where `paperless-ngx` is installed. Not run. - **A live probe reading for five templates** no static rule can judge (R-631). - **28 templates never deployed by any drill** (R-632) — the rotation's queue. - **`vikunja` has no compose healthcheck at all**, so its probe has no oracle in either direction.