REPORT: v0.282.0
gates / gates (push) Successful in 29s

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:
2026-09-29 17:19:37 +02:00
parent 4110da50e9
commit 1cfb1244d6
+13 -15
View File
@@ -1,17 +1,15 @@
# REPORT — v0.281.0: "Done" asks the app first; sign-up closed after the first admin (decision 47); R-713 (2026-09-29 afternoon)
# REPORT — v0.282.0: the app's own sign-up switch (after_setup); "close sign-up now" (decision 49); probes read lists and a done status (R-715) (2026-09-29 evening)
Architecture: `felhom.eu/documentation/architecture/09-update-architecture.md` §3 decisions 46–47, `01-topology-and-trust.md`
§5. Evidence: `felhom.eu/documentation/audits/gate-rollout-2026-09-29/`. Session report:
`felhom.eu/REPORT-gate-rollout-2026-09-29.md`.
Architecture: `felhom.eu/documentation/architecture/09-update-architecture.md` §3 decisions 47–49; `01-topology-and-trust.md`
§5. Evidence: `felhom.eu/documentation/audits/signup-lock-2026-09-29/`. Session report:
`felhom.eu/REPORT-signup-lock-2026-09-29.md`.
- **The press asks the probe first** (409 while "not done" or unreadable); an app without a probe confirms in the page.
Live: zipline pressed before its setup → 409.
- **Sign-up block** (`signup_block:`), written when the gate opens and BEFORE the gate comes down (a failed write keeps
the gate closed); answered by `/__felhom_gate/signup-closed`; the household's 15-minute window. Live on 9202: 11 apps
refused a stranger with the block; the window let a family member in and closed again. Never on an app this box did
not gate (Part 0; read on both demo boxes after the catalog push).
- **R-713:** code-bound `after_install` values refused; `${NAME|base64}`. Live: claper with `"` and `#{`.
- Tests: `TestSetupGateButton_*`, `TestSignupBlock_*`, `TestSignupClosed_*`, `TestSetupGatePage_ConfirmAndSignupCard`,
`TestR713_*`; full suite, vet and controller gates green; parity fixtures regenerated for the changed button only.
Red-proofs RP17–RP24, each seen failing on an assertion (RP22 re-run after its first mutation did not compile).
- Delivered: floor 0.281.0; both demo boxes run it. MinAgent 0.131.0 (unchanged).
- `after_setup:` — env merged into app.yaml + one `compose up -d` (or a command, argv-safe) when the gate opens or on the
press; an installed compose that does not read the variable is reported, never recorded as locked; one run per app;
retries at most every 30 min; the household's window lifts it, the loop restores it. Live on 9 apps (9202).
- `POST /apps/<slug>/close-signup` — offered once on an installed app with a template lock and no lock record; writes the
record (`opened_by: close-signup`), the block, then the switch; never a gate. Live on the demo boxes and on wanderer.
- Probes: list indexes in `field`; `done_status:`. Live: ghost, home-assistant, gramps-web opened by themselves.
- Tests `TestAfterSetup_*`, `TestCloseSignup_*`, `TestCloseSignupPage_*`, `TestProbe_ListIndexesAndADoneStatus`; full
suite, vet and gates green. Red-proofs RP25–RP30, each seen failing on an assertion.
- Floor 0.282.0; both demo boxes run it. MinAgent 0.131.0 (unchanged).