d0e7e2eb51
gates / gates (push) Successful in 2s
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
1.6 KiB
1.6 KiB
REPORT — 2026-09-29: the setup gate on four apps; every hard-coded default replaced (decisions 45–46)
Architecture: 09-update-architecture.md §3 decisions 45–46; 01-topology-and-trust.md §5. Controller 0.280.0.
Evidence: felhom.eu/documentation/audits/login-gate-2026-09-29/ (B spike, C gate live, D defaults live).
| app | change | proof on 9202 (drill catalog, fresh install, controller 0.280.0) |
|---|---|---|
| immich | setup gate, probe isInitialized |
stranger: gate page / 401 during install and until setup; household in 0.2 s; probe opened it; phone-app API 200 after |
| n8n | setup gate, probe showSetupOnFirstLoad |
as immich; opened ~20 s after the owner setup |
| audiobookshelf | setup gate, probe /status isInit |
as immich; opened ~20 s after POST /init |
| uptime-kuma | setup gate, the household's button | held across a controller restart; the press opened it; a second press 409 |
| mealie | after_install (argv) |
default 401, generated 200, wrong 401 |
| wger | after_install (argv) + R-712 CSRF |
default refused, generated signs in with a browser's https Origin, wrong refused |
| calibre-web | after_install, password:24:special |
default refused, generated signs in, wrong refused |
| romm, zipline | stale default_creds removed |
the page no longer names a login that does not exist |
| grafana | R-708 ${…:?…} |
docker compose config: empty/unset refused (rc 1), set → rc 0 |
Gates: the catalog pre-push gates; check-copy-i18n.py --capture-freeze (diff = only these apps' strings).
Status: FIRST-ADMIN.md — 5 fixed, 4 gated, 30 open (R-707).