Repository navigation
fix(update): observe isolated Mac hop accurately - #79
Conversation
Security review — #79
|
irzhywau
left a comment
There was a problem hiding this comment.
please see comment above (non-blocking)
|
@irzhywau thank you. F1 and F2 get fixed in this PR before it merges: the operator target DID is checked against the fixture's own identity (or a pinned value), and the evidence flags match the updater's exact stage lines with the expected version and exit code. F3 is a real product point: the updater must install the verified artifact bytes as they are, and a content comparison must never replace the byte check. It is recorded as a requirement in UP-01 (#107). |
Read the operator fixture DID before starting its gateway and verify the bootstrap identity before peer admission. Anchor update and cache stages to exact lines, require the expected binary hash, and bind response-loss classification to host exit 75. Validation: seven mocked/pure observer tests, four AGENTS source gates, YAML parsing and shell syntax. The spoofed-target regression fails on the prior observer and passes here.
|
@irzhywau F1 and F2 are addressed in 76994bd4. |
Part of #106. This PR corrects the observer for the approved isolated update-hop fixture.
The observer binds the operator gateway's bootstrap DID to the fixture identity read through the local CLI before gateway startup. It checks that binding before peer admission or Apply. Update-attempt evidence uses the expected new binary hash or the exact expected-version install line; cache-stage evidence uses complete updater lines, and response-loss evidence requires host exit 75.
Raw
components.jsonhashes remain separate from semantic JSON comparison. The earlier Mac fixture runs showed that the updater rewrites those bytes and that operator self-update can lose its response after host exit. The product manifest-byte correction belongs to #107. Those retained runs remain evidence for their original candidate.Validation: seven mocked/pure observer tests pass, including spoofed target rejection before admission, missing identity, unrelated stage text, wrong or missing hashes, timeout without supersession exit, and raw manifest hash failure despite matching JSON. The spoofed-target test fails on the prior observer and passes with this correction. CI and local pre-push now run the suite. The four AGENTS source gates, YAML parsing, shell syntax, and independent review pass. Exact candidate and proof are recorded in #106.
The correction uses observer tests and source checks. The coordinator will merge after the corrected candidate passes the required CI checks and review gates.