Use this page when you need to understand what lives in Git and why replay is deterministic.
The graph composition roots described by older releases are runtime internals in
v19, not deprecated package exports. Application code starts with openWarp();
storage, formal machinery, and operator inspection use the explicit storage,
advanced, and diagnostics subpaths. Keep substrate tooling behind those
supported boundaries instead of importing src/domain modules.
WARP data stays under refs/warp/..., outside normal source-tree refs:
refs/warp/<graphName>/
├── writers/
│ ├── alice
│ └── bob
├── checkpoints/
│ └── head
├── coverage/
│ └── head
├── cursor/
│ ├── active
│ └── saved/<name>
├── strand-braids/
│ └── <strand>/<support>
├── audit/
│ └── <writerId>
└── trust/
└── ...
Normal source code remains under refs such as refs/heads/main.
At the substrate level, a WARP patch is a Git commit on a WARP ref.
flowchart TB
commit["patch commit"] --> parent["previous writer patch"]
commit --> tree["patch/content tree"]
commit --> trailers["graph, writer, Lamport, schema"]
tree --> patch["patch.cbor"]
tree --> content["optional content payloads"]
Patch commits may carry Git trees for payloads and content. Do not document a blanket empty-tree invariant for current graph state.
Each writer appends an independent patch chain. Visible state is derived by replaying the visible patches and reducing them with deterministic CRDT rules:
- nodes and edges use OR-Set semantics;
- properties use last-writer-wins registers;
- Lamport ticks plus writer identity provide deterministic ordering;
- version vectors distinguish causal order from concurrency.
That is why multiple writers can work independently and later converge without source-tree merge conflicts for graph data.
Checkpoints persist folded state plus index, frontier, and schema metadata. They accelerate recovery and bounded-read evidence. They are not the source of truth; patch history remains authoritative.
Use Operations for checkpoint and GC workflows.
Provenance APIs explain which patches contributed to an entity or slice.
materializeSlice(nodeId) can replay a single entity's backward causal cone for
diagnostics. It is not the first-use application read path.
Patch trees can carry payloads and content pointers. Larger payloads and encrypted content are handled through CAS-backed adapters. Use Content and CAS for content attachments, git-cas, and encryption posture.
Strands are durable speculative lanes built on pinned observations and overlay patch logs. Braid refs record pinned support overlays for strand composition.
Use Strands for user-facing strand and braid workflows.
git-warp owns local runtime truth over Git-backed history. Continuum owns the shared boundary vocabulary for witnessed history exchange. Use Continuum boundary for that relationship.