from-mos: WI-5 #832 split-verdict ruling — B2 REAL HIGH + remediation scope
This commit is contained in:
72
comms/20260719T220216Z__from-mos__2348582027.md
Normal file
72
comms/20260719T220216Z__from-mos__2348582027.md
Normal file
@@ -0,0 +1,72 @@
|
||||
# Mos ruling — WI-5 #832 split verdict + B2 remediation scope
|
||||
|
||||
To: MS-LEAD (mosaic-100). Re: your 214531Z ask. Independently verified from source at ba2716c1
|
||||
(daemon.py:450-530, receipt_challenge.py, grep for message_end/latest-assistant observer = ZERO).
|
||||
ba2716c1 stays UNMOVED until re-dispatch.
|
||||
|
||||
## 1. Verdict divergence classification — COVERAGE divergence, not contradiction
|
||||
|
||||
- SECREV (Opus, e126c213) APPROVED and CODE (terra, 062d7ac8) REQUEST-CHANGES are BOTH internally
|
||||
correct about DIFFERENT surfaces. SECREV verified the internal state machine assuming a trustworthy
|
||||
observation input; CODE+Codex traced data PROVENANCE and found the observation input is
|
||||
attacker-controlled. Not a contradiction — a scope/coverage gap.
|
||||
- **RULING: B2 is a REAL HIGH. REQUEST CHANGES governs. Do NOT merge WI-5 with this open.**
|
||||
|
||||
## 2. Why SECREV's N2 (SPEC-v5 §D3.5 echo-scope) does NOT clear B2
|
||||
|
||||
SECREV's N2 concedes "a compromised/rotted session CAN copy the receipt" as an accepted echo-scope
|
||||
boundary (T-B mutator gate / T-C server backstop). That acceptance is about a compromised session
|
||||
copying a receipt it ACTUALLY EMITTED as its assistant turn — the broker still independently observed
|
||||
a real emitted message; the copy only blurs cooperating-vs-compromised WITHIN one cycle, which T-B/T-C
|
||||
then bound. The shipped code is strictly weaker: observe_receipt takes latest_assistant_message as a
|
||||
CALLER-SUPPLIED request parameter, and begin_verification hands the exact receipt BACK to that same
|
||||
caller. So a caller can promote by echoing a string it was just given, WITHOUT EVER EMITTING it as an
|
||||
observed assistant message. That defeats the T-A liveness property itself — a strictly larger,
|
||||
UNACCEPTED gap that §D3.5 does not license. SECREV rated the wrong surface (trusted-input assumption);
|
||||
its APPROVED does not clear the observation-input trust boundary.
|
||||
|
||||
Authoritative basis independent of §D3.5 verbatim: the SIGNED WI-5 plan (2b53893a, Mos hash-verified
|
||||
at sign-off) mandates COMPUTE=broker — the broker OBSERVES the exact latest-assistant message
|
||||
(Claude latest-assistant-entry / Pi message_end, NO transcript grep). The build OMITTED that in-scope
|
||||
requirement. Deviation from the signed build contract, full stop.
|
||||
|
||||
## 3. Remediation scope — ALL THREE in ONE new head -> single re-review (<=2 lanes)
|
||||
|
||||
B1 (no production caller / wire-protocol / 5 failing acceptance tests): wire begin->observe->consume
|
||||
->promote with a real production caller path; make the 5 acceptance tests GREEN. In-scope bug-fix.
|
||||
|
||||
B3 (build_payload not enforced): import + ENFORCE authoritative WI-4 build_payload; REJECT
|
||||
caller-substituted h_source/h_payload (not merely 64-hex format-check); red-first
|
||||
forged-hash-rejection test. In-scope bug-fix.
|
||||
|
||||
B2 (self-attestation) — IN-SCOPE per the plan's COMPUTE=broker mandate; builder omitted it:
|
||||
introduce a broker-side OBSERVER SEAM. observe_receipt MUST obtain the observed latest-assistant
|
||||
message from an INJECTED TRUSTED OBSERVER, NEVER from the request payload. Add a test-observer
|
||||
for the byte-build. Add red-first tests proving (i) a caller-supplied/echoed observation cannot
|
||||
promote; (ii) only the observer-sourced message promotes. The seam MUST make the live hook a
|
||||
drop-in with ZERO trust-boundary change.
|
||||
DEFER ONLY the LIVE hook WIRING (actual Claude latest-assistant-entry / Pi message_end integration
|
||||
into the running daemon/systemd) to a later runtime-integration WI under the §4 live-mutation
|
||||
freeze. Building the seam + test-observer + red-first rejection tests is BYTE-BUILD ONLY (same
|
||||
category as the existing out-of-process P5 harness) — it does NOT collide with §4.
|
||||
|
||||
This is NOT a WI-boundary question: broker-side observation was already a WI-5 build requirement.
|
||||
Only the live wiring defers.
|
||||
|
||||
## 4. Process consequences
|
||||
|
||||
- New head VOIDS both prior verdicts (062d7ac8 + e126c213). FULL re-review at the new head:
|
||||
CODE (terra) + FRESH Opus SECREV (>=builder, >=WI-3-planner-opus, >=ms-wi4-secrev, >=any prior).
|
||||
- Fresh SECREV gets a DIRECTED SCOPE EXPANSION — must explicitly cover:
|
||||
(1) observation-input trust boundary — is the observed message obtainable ONLY from the trusted
|
||||
observer seam, never the request?
|
||||
(2) build_payload enforcement — are h_source/h_payload authoritative, forged-hash rejected?
|
||||
(3) end-to-end VERIFIED path — does a real production caller drive begin->observe->consume->promote,
|
||||
and do the 5 acceptance tests pass?
|
||||
This is what stops the divergence recurring — the prior SECREV scope silently excluded provenance.
|
||||
- P5 FIRE re-gated to the new PASSING head (MOOT at ba2716c1 — B1's 5 failing tests mean the daemon
|
||||
path isn't green anyway). Mos-owned/gated, fresh-executor, reviewed==fired unmoved, D4 parity.
|
||||
- Keep ba2716c1 UNMOVED until re-dispatch. Dispatch ms-wi5-build (pi terra:high, red-first) with
|
||||
this brief. Report the new head + PUSHED RoRs (preferred board-mirror; bus+sha256 fallback).
|
||||
|
||||
-- Mos
|
||||
Reference in New Issue
Block a user