feat(evidence): bind structured value to node and network provenance - #104
Draft
seonghobae wants to merge 7 commits into
Draft
feat(evidence): bind structured value to node and network provenance#104seonghobae wants to merge 7 commits into
seonghobae wants to merge 7 commits into
Conversation
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI 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 |
This was referenced Aug 12, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Partial implementation of #28, stacked on exact PR #99 head
8ec18b8701104cf3f3764334601c69c1497297b9.Buyer-visible gap
Issue #28 requires the controlled real-browser workflow to extract one structured value and prove its source node/network evidence. Existing provenance can represent one verified source and #99 binds node-state success to an exact semantic node, but there was no value object that bound one extracted structured field digest to both the exact OriginWeave node and independently verified node + network provenance. A later runtime could therefore return a value and separate evidence records without proving that they belong to one same-origin evidence bundle.
Dependency
This Draft targets PR #99 branch
feat/action-outcome-node-bindingat unchanged exact head8ec18b8701104cf3f3764334601c69c1497297b9. Keep Draft while #99/#80/#64 remain active. No prerequisite check, review, status, coverage, or mergeability evidence transfers.TDD / RCA sequence
547d6345bc1a1fdf5ab2fb4558ef1b98f7f18692introduced the bounded structured-value provenance contract. Its CI run31556563496was cancelled by later head movement, so it is not promoted as production-boundary RED evidence.bb6b2fa09998084ee638ee715ecef6bb0b7e8163reached the intended production boundary. CI run31556648278, Rust contracts job93990341184, passed repository contracts and canonical formatting, then failed at the workspace check because the public structured-value evidence API did not yet exist. This is the valid initial RED.63530aa203dccd94c7a4144186da5208353db5c6added the narrow evidence bundle. Its Rust contracts passed, but Production coverage in CI run31556803181failed exact function/line/region coverage. Exact coverage artifact9126295264localized every uncovered line toStructuredValueEvidenceError's newDisplaymatch arms: tests asserted typed variants but did not exercise their stable public error text.139ab7d3ce66245b83b5c7d1245a654387431af9added one focused source-free error-contract regression. CI run31557284094became fully GREEN, including Rust contracts job93992172012and Production coverage job93992171998.dcca443f7d483b08579ab335ad9346ce13eeffdbrecorded the new boundary and passed fresh CI31557511767.---, even though those values do not identify a semantic field. Exact test-only head4cf977fbe5b41c76f14dfbaae2c4766331f668efadded that hostile case. CI run31557841624, Rust contracts job93993752193, passed repository contracts, formatting, and the workspace check, then failed in the focused tests as intended because production still accepted---.b05cf7d5d45f8772fa8ea9f23cdd99d51a599f9eapplies the narrow root-cause repair: a field identifier must still use only ASCII alphanumeric/underscore/hyphen bytes and must now contain at least one ASCII alphanumeric byte. CI run31557992269is fully GREEN: Rust contracts job93994187786and Production coverage job93994187746both succeeded, including repository contracts, formatting, locked workspace/all-target checks, full tests, strict Clippy, rustdoc, and exact owned production function/line/region/branch coverage.Implemented boundary
StructuredValueEvidencenow:ObservedNodeHandlerather than a raw protocol/DOM identifier;NetworkResponseprovenance for the associated network source;The exact-current tests cover the public getters, empty/whitespace/slash/punctuation-only/oversized field boundaries, malformed digest boundaries, every verification/kind/origin denial, and every public error
Display/Error::sourcepath.Exact-head proof
On unchanged exact current head
b05cf7d5d45f8772fa8ea9f23cdd99d51a599f9eagainst unchanged exact prerequisite #99 head8ec18b8701104cf3f3764334601c69c1497297b9:31557992269: success;93994187786: success;93994187746: success, including exact owned production function/line/region/branch enforcement;No cancelled, predecessor-head, prerequisite, synthetic, or skipped evidence is promoted as current proof.
Truth boundary
This slice is a credential-safe evidence composition primitive, not extraction or browser/network observation itself. It does not carry the raw extracted value, authenticate a browser/network adapter, prove that supplied provenance locators actually identify the exact node/response, compute a digest from trusted runtime bytes by itself, persist evidence, or complete the controlled Chromium workflow. The trusted adapter/runtime remains responsible for deriving the digest and source records from real bounded observation immediately around extraction.