Get only afterHash blobs referenced by a manifest.
Used for apply operations – we only need the patched file content, not the original.
This saves disk space since beforeHash blobs are not needed for applying patches.
Read and parse a manifest from the filesystem.
Returns Ok(None) if the file does not exist.
Returns Err for I/O errors, JSON parse errors, or validation errors.
Resolve a manifest path: absolute paths are returned as-is, relative paths
are joined to cwd. Centralizes the duplicate block previously inlined in
apply/rollback/list/remove/repair commands.