pub fn repo_id(repo_root: &Path) -> String
Derive a stable 16-hex-char ID from the absolute repo root path. Used to namespace per-repo data directories without path encoding issues.