Bind Echo and Keep content identities explicitly - #723
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (2)
📝 WalkthroughWalkthroughThe PR defines distinct Echo and Keep identity formats, documents their reconstruction and compatibility rules, and adds integration coverage for pinned digest vectors across representative byte payloads. ChangesIdentity bridge contract and validation
Estimated code review effort: 3 (Moderate) | ~20 minutes Merge Risk: ⚪ Minimal · up to This PR adds explicit Echo and Keep content-identity binding documentation and tests without changing shipped storage or runtime behavior; no actionable merge-blocking risk remains beyond normal checks and review. Possibly related PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
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 |
Problem
Echo and Keep both use 32-byte BLAKE3 outputs, but they do not name content with the same identity law. Treating their digests as interchangeable would make the experimental backend unsound.
Approach
BlobHashin WAL/WSC while the adapter retains a witnessed Echo-to-Keep bindingInvariant
The same exact byte stream deterministically establishes both identities under their respective pinned contracts. Neither identity is reinterpreted as the other.
Validation
cargo fmt --all -- --checkcargo test -p echo-cascargo clippy -p echo-cas --all-targets -- -D warningsbash tests/docs/test_documentation_model.shnpx --no-install markdownlint-cli2 docs/architecture/echo-keep-physical-content-boundary.mdgit diff --checkCompatibility and limitations
This changes no shipped Echo storage behavior, durable format, WAL identity, or WSC identity, so no changelog entry is warranted. The witness deliberately does not execute Keep or prove reconstruction through an independent adapter path; those remain later gates in #722.
Advances #722.
Summary by CodeRabbit
Documentation
Tests