e30091bf27
gates / gates (push) Failing after 1m2s
Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
2.1 KiB
2.1 KiB
REPORT — v0.328.0: the catalog allow-list (R-971, operator decision D2 = A) (2026-10-17)
Written in ASD-STE100 Simplified Technical English. Session report: felhom.eu REPORT-agent-allowlist-rotation-2026-10-17.md.
Evidence: felhom.eu documentation/audits/agent-allowlist-rotation-2026-10-17/P2/, P5/.
- What:
internal/privpolicychecks the RENDERED compose before every compose write and env decision (sync, update/ladder step, install, two settings changes, two restores — before the stop) againstallowlist.json(go:embed; one entry: homepage's read-only socket, bound to its image, start and healthcheck). Refusal: nothing written, operator eventapp_definition_refused(hub ≥ v0.157.0), app-page line, plain message. Sync never copies a template named like an infra stack. - Tests:
privpolicy_test.go(every class, positive controls, the three review rounds, the live root finding),TestAllowList_IsWiredIntoEveryComposeWriter(AST),sync.TestR971_*,stacks.TestAllowList_*,TestR971_AppPage_*; full suite green on99f9117. Red-proofs in P2. - i18n: new fixture
app_settings_definition_refused; every other fixture byte-identical. Keyserr.stacks.definition_refused,app_info.definition_refusedin both bundles. - Release: rc.1–rc.5 on demo-hp 9201; 0.328.0 to Tester 1, demo-hp, demo-felhom by per-box floors (all three in < 1 min), box walk green (0 refusals, all containers healthy, login and files 200), https-only green; global floor 0.328.0, MinAgent 0.158.1; per-box floors cleared; read back from the hub DB with its WAL.
- 9201 proof: drill catalog with
privileged: trueon privatebin → refused; compose sha and container unchanged; event at the hub + operator mail; page line on privatebin only; live catalog restored byte-identical.
Observations
- rc.4 refused every not-installed app on the box (placeholder roots do not exist there). NOT-A-FINDING: found by this session's own live proof and fixed in rc.5 before the release, red-proved.
- One app can still bind another app's
appdata/<name>. FILED: R-1142. build.shpushes:latestwith every build, rc included. FILED: R-1143.