A hash of the source lift inputs, recorded in the sidecar so a later edit to the intent can be detected as making the attestation stale. This is a standalone digest of (frontmatter + body); it is NOT the vault's `content_hash` and never feeds it. `attest` writes it; `validate`/`show`/ `verify` recompute it to decide whether a sidecar is still fresh.
(inputs: &LiftInputs)
| 196 | /// `content_hash` and never feeds it. `attest` writes it; `validate`/`show`/ |
| 197 | /// `verify` recompute it to decide whether a sidecar is still fresh. |
| 198 | pub fn source_content_hash(inputs: &LiftInputs) -> String { |
| 199 | let fm = serde_json::to_string(&inputs.frontmatter).unwrap_or_default(); |
| 200 | let mut hasher = blake3::Hasher::new(); |
| 201 | hasher.update(fm.as_bytes()); |
| 202 | hasher.update(b"\0"); |
| 203 | hasher.update(inputs.body.as_bytes()); |
| 204 | format!("blake3:{}", hasher.finalize().to_hex()) |
| 205 | } |
| 206 | |
| 207 | /// The state of an intent's attestation sidecar relative to the current source. |
| 208 | pub enum Attestation { |