feat: add independent Rust PoCI verifier and root parity - #197
Conversation
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Validation completeFinal head: Both workflows passed:
Final stacked diff remains limited to three files:
Uploaded artifact:
The artifact includes independent Python and Rust conformance reports plus |
What changed
Adds the fifth PoCI v0.1 slice:
serde_jsonandsha2;ACCEPT / HOLD / BLOCK / CHALLENGEevaluation;proofpath-pociCLI for single envelopes and full fixture manifests;python-rust-parity-report.jsonin the PoCI evidence artifact.Independence boundary
The Rust verifier does not invoke Python and does not consume Python decisions or roots. Each implementation parses the same committed envelope bytes, independently evaluates the evidence chain, and independently computes the envelope root. CI compares only their resulting reports.
Reviewer commands
cargo test -p proofpath-verifier poci --all-targets cargo run -q -p proofpath-verifier \ --bin proofpath-poci -- \ examples/poci-witness/fixtures/manifest.json \ --manifest --prettyCI contract
The PoCI workflow fails if either implementation does not pass all 12 fixtures or if any fixture differs on:
actual_decision;actual_primary_reason_code;computed_envelope_root.Stacked PR
Base:
agent/poci-ci-demo-v0.1/ #196Review and merge after #196, then retarget to
mainif GitHub does not do so automatically.Backlog
Epic: #180
Advances:
Next: