feat(air): Phase 7.2 — content_hash in AIR request body + cross-language parity
Add buildAirRequestBody() that produces the canonical 3-key JSON body ({action, content_hash, path}) the Python port in muse/plugins/knowtation/attestation.py::build_air_request_body matches byte-for-byte. attestBeforeWrite() now accepts contentHash and forwards it to the AIR endpoint instead of the old 2-key body.
Why: the Phase 7.2 cross-language parity test (gabriel-muse/tests/test_knowtation_attestation.py) requires that the JS module and the Python provider serialise the same inputs to the same UTF-8 bytes — without content_hash the AIR receipt could not bind the attestation to the actual file content.
Backward-compatible: contentHash defaults to '' so existing callers keep working; new callers (Phase 7.2 commit/push hooks) pass the real SHA-256 hex digest.
Semantic Changes
2 symbols
0 comments
muse hub commit comment sha256:3129ccf68936df74b9184cb458477a109c46f645e66fe86343d09b642b4f9e05 --body "your comment"
No comments yet. Be the first to start the discussion.