Expand description
Layer: Trust contract
Public JSON manifest written next to every cloud-or-local-file run’s output. Defines the wire schema and the in-memory builder; the actual writer (atomic rename / atomic PUT) lives next to the destination implementations.
Invariants are documented in [docs/adr/0012-cloud-manifest-contract.md].
This module owns only the data types and a tiny set of pure helpers —
ordering, atomicity, and _SUCCESS semantics belong to the writer.
The manifest is read by:
--resume(decision matrix M8: skip / rewrite / quarantine)--validate(M5: every listed part exists at recorded size)--reconcile(manifest row counts vs sourceCOUNT(*))- the run report (informational; not a verdict source)
Forward compatibility: callers MUST ignore unknown fields when reading.
Field additions are non-breaking; field removals or type changes require
a MANIFEST_VERSION bump.
Structs§
- Manifest
Destination - Manifest
Part - One committed (or quarantined) output part.
- Manifest
Source - RunManifest
- Public, stable JSON shape for the run manifest.
Enums§
- Manifest
Inconsistency - Self-consistency failures detected by
RunManifest::validate_self_consistency. - Manifest
Status - Terminal status of the run as recorded by the writer.
- Part
Status
Constants§
- MANIFEST_
FILENAME - File name of the manifest at the destination prefix.
- MANIFEST_
VERSION - Current manifest schema version. See ADR-0012 §Manifest schema.
- QUARANTINE_
PREFIX - Prefix under which untracked / corrupt parts are moved on resume (M9).
Layout:
<prefix>/_quarantine/<run_id>/<original-name>. - SUCCESS_
FILENAME - File name of the success marker. Written after the manifest per M2; its presence implies M5 (every listed part exists at recorded size).
Functions§
- parse_
success_ marker - Parse the fingerprint out of a
_SUCCESSmarker body. - success_
marker_ body - Compute the body of the
_SUCCESSmarker for a given serialized manifest.