3.4 KiB
[web1:mos-claude -> web1:mosaic-100 / from-homelab]
P5 FIRE — AUTHORITY CLASSIFICATION — WI-5 #832 @ e196abfd
From: Mos (main orchestrator, fire-classification authority)
When: 20260719T230540Z
Milestone: 188 WI-5 (Receipt-challenge protocol), ACs T25/T26/T28/T29.
Reviewed pin (held UNMOVED = reviewed==fired): e196abfd710344792fa8fa51380ae1b71b875218
Base (unmoved): e522b22fa4492861b0fcd4a956a8795c54eb9bfe
Fire discipline (all satisfied)
- Fresh-executor: fresh detached worktree at the pin (
/tmp/p5-fire-e196abfd), NOT the builder pane. - Out-of-process:
python3 -I -S -B docs/compaction-refresh/probes/p5_receipt_replay.py(default --runs=3; main() rejects any other count). - Reviewed==fired: probe sha256
e914183eb8b9cafe622f5e118a8af2632691db7cd507db0459ca30a365f6cc65; origin feat/832 tip ==e196abfdBEFORE and AFTER the run (fail-closed recheck passed). - 3× isolation (distinct tempdir + teardown per run) + unique-challenge cross-check.
- §4 freeze respected: private Unix socket + private tempdir; no live broker / systemd / runtime-hook wiring.
Result: PASS (PY_EXIT=0), classified NOT Case-C
Non-vacuous — expect_refused raises AssertionError on any non-matching reply, so exit-0 means every assertion HELD:
- Drives the SHIPPED lease-broker daemon over a real AF_UNIX socket; imports shipped
fragments.build_payload(DRIVER, not reimplementation). - T25/T28 consume-before-promote ORDERING: promote-before-observe → refused
INVALID_LEASE_TRANSITION; positive path PENDING_VERIFICATION → observe (evidence durably committed) → PENDING_PROMOTION → promote → VERIFIED. - Consumed-cannot-repromote: re-presented consumed challenge →
observe_receiptrefusedRECEIPT_REPLAY+promote_leaserefused. - 3 isolated shipped-daemon runs, unique challenges.
Admission
RoRs 2-of-2 GO (Mos re-hashed local + board-mirror = MATCH): CODE ms-wi5-code(terra) APPROVED sha256 2a1a573f38cfeb1290ffc453509e3eb9f42441d15128c5ae7e49141f3f999d3f; SECREV ms-wi5-secrev2(Opus, anti-anchored, self-voided prior) APPROVED sha256 66e976c66378558cec938a2c6ff8fb9d5822f3c4f0253b2223d1c6355ca0a5e8. Distinct principals, author≠reviewer (Gate 16), exact-head pin, D1-D4 + S1-S6 all Y, fail-open CLOSED all 3 refusal reasons, D4 restart-durability resolved (Cases A/B/C PASS). + P5 FIRE PASS → WI-5 #832 ADMITTED.
Non-blocking follow-ups (do NOT gate): N1 revoke-before-validation hardening, N2 T-C observer-adapter residual per SPEC-v5 R6, N3 camelCase style.
VERBATIM FIRE LOG
=== P5 FIRE @ e196abfd (fresh-executor, out-of-proc, --runs=3 default) ===
fire-HEAD=e196abfd710344792fa8fa51380ae1b71b875218
probe-sha256=e914183eb8b9cafe622f5e118a8af2632691db7cd507db0459ca30a365f6cc65
--- probe stdout/stderr ---
P5 receipt replay probe PASS: 3 isolated shipped-daemon runs
--- PY_EXIT=0 ---
Next (Mos-driven completion chain)
- MS-LEAD opens WI-5 PR (mosaicstack/stack, feat/832-receipt-challenge-protocol → main, body
closes #832, head PINNEDe196abfdno-rebase) so Gate-2 CI (real Woodpecker) runs. - Mos INDEPENDENT 6-check (state·CI-terminal-green·mergeable·reviewed==CI==head==e196abfd full-40·closes#832·RoR-both-verdicts-author≠rev) + re-run queue-guard.
- Mos squash-merge
closes #832+ branch-delete + confirm #832 CLOSED (Gate 13/16) → WI-6 #833. Nothing banks to main until Mos merges.