Skip to main content

Module mark

Module mark 

Source
Expand description

Native GitMarker implementation — the cheap, always-on provenance tier.

Implements solid_pod_rs::provenance::GitMarker by shelling out to the system git binary via tokio::process::Command, mirroring the style of crate::api (git_commit/git_add) and crate::service. This is the single canonical write-provenance path: an LDP PUT/POST/PATCH that lands in a git-backed pod is followed by a ShellGitMarker::mark_write call that stages the written file and commits it, so every pod write becomes a git commit whose SHA is captured and surfaced as a GitMark.

§Why native-only

The pure provenance surface (types + prov_ttl) lives in solid-pod-rs::provenance and compiles for wasm32. This implementor spawns a subprocess, so it is native-only and lives here in solid-pod-rs-git (which already depends on tokio::process). Wasm consumers compile against a no-op marker, never this one (ADR-059 D4).

§Commit identity

Commits are authored as solid-pod-rs <agent_did> — the writer’s did:nostr (NIP-98 principal) becomes the commit author email, binding the on-disk git history to the authenticated agent. Identity is injected per-invocation via git -c user.name=… -c user.email=… so no global git config is mutated and the repo needs no pre-seeded user.*.

Structs§

ShellGitMarker
A GitMarker that commits pod writes by shelling to git.