Skip to content

feat(evidence): bind WARC records to PROV JSON-LD - #217

Draft
seonghobae wants to merge 28 commits into
feat/warc-resource-record-contractfrom
feat/prov-jsonld-warc-bundle
Draft

feat(evidence): bind WARC records to PROV JSON-LD#217
seonghobae wants to merge 28 commits into
feat/warc-resource-record-contractfrom
feat/prov-jsonld-warc-bundle

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 22, 2026

Copy link
Copy Markdown
Contributor

Partial implementation of #199, stacked on exact current PR #210 head efb5dfae50e2a32e74ac92cf76bdcf252dece98c.

Buyer-visible boundary

This Draft implements the next evidence-native replay boundary after schema admission and immutable WARC resource records: a bounded deterministic W3C PROV-O JSON-LD bundle that binds one already-validated WARC record to its verified source entity, one capture activity, the exact OriginWeave software revision, explicit WARC payload-completeness state, the retained payload block digest, and a SHA-256 digest of the complete deterministic WARC serialization. Raw WARC payload bytes are not embedded in the provenance document.

The in-memory bundle also exposes deterministic offline verification against a candidate validated WarcResourceRecord. Verification binds the complete validated ProvenanceRecord together with WARC identity, capture time, payload digest, completeness state, and serialized-record digest. The compact JSON-LD projection exposes source URL/hash rather than claiming that serialized JSON alone preserves every internal provenance dimension.

Test-first defect lineage retained by this head

The canonical branch previously repaired four concrete integrity gaps with RED regressions before production changes:

  • preserve WARC complete/truncated state, including the exact standard truncation reason;
  • distinguish different deterministic WARC serializations even when payload digest and selected metadata match, by binding a SHA-256 digest of the complete serialized record;
  • provide typed fail-closed verify_record(&WarcResourceRecord) offline verification; and
  • compare the complete validated provenance object so source locator/channel drift cannot pass merely because WARC bytes, source URL, and source digest match.

It also rejects Git's forty-zero zero-id sentinel as a software revision instead of emitting it as an immutable OriginWeave commit identity. Historical RED/intermediate/predecessor heads remain regression lineage only and are not current passing evidence.

Current exact stack truth

The branch was previously realigned non-destructively as its prerequisites moved. No predecessor check, review, or coverage result transfers to the present head.

Exact-current verification

For unchanged exact head c11e7333557007373a8178b4ca5e742040f1c508:

  • CI run 32834287680: success;
  • Rust contracts job 97759663233: repository contracts, canonical formatting, locked workspace/all-target check, full tests, strict Clippy, and rustdoc success;
  • Production coverage job 97759663508: exact production function / line / region / branch enforcement success;
  • exact coverage artifact 9558044298, digest sha256:0190d8662a412d71f26bef696bfe02c5373f8974dac8075039214890ca686221;
  • current formal review inventory: none;
  • current inline review-thread inventory: none.

The same-head workflow inventory exposes CI only. SAST, Security Scan, Manifest V3, OpenCode, Noema, Strix, or independent approval success is therefore absent and is not claimed for this exact stacked head.

Keep this PR Draft while prerequisite #210 remains Draft and #209 remains active.

Standards and authority boundary

The non-null Git identity rule follows Git's protocol distinction between an ordinary object identifier and the forty-zero sentinel used for absent/create/delete reference state. This constraint does not authenticate GitHub or establish trust/reachability of the named commit.

This slice is provenance representation and deterministic consistency verification only. It does not authenticate the producer, cryptographically sign the record, establish factual correctness, persist WARC/PROV, authorize capture/retention/export, contact a live source, execute replay or active content, or grant browser/network/secret/model authority. The compact JSON-LD projection does not serialize internal source locator/channel, so serialized JSON alone is not proof of those internal dimensions.

Protected-main AGENTS.md remains authoritative. No workflow, secret, governance, release, tag, publish, approval, Ready-state, merge, force-push, or destructive-rebase mutation is included.

@coderabbitai

coderabbitai Bot commented Aug 22, 2026

Copy link
Copy Markdown

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant