Expand description
On-disk state schema types per design.md §1.
Structs§
- Awaiting
Input - Durable open-discussion state projected from
node.awaiting_input. - Child
Ref (child_run_id, child_node_id)pointer recorded inNode::children.- Event
- One event-log line (design.md §1.4).
- Manifest
manifest.json(design.md §1.2).- Merge
Txn - A durable, in-flight
run mergetransaction recorded bymerge.startedBEFORE the git mutation, and the sole input to deterministic merge-crash recovery (design.md §2.1b / A2, issuemerge-transaction-recovery). - Node
nodes/<node-id>.json(design.md §1.3).- NodeId
- A validated node identifier:
n-followed by 4 or more ASCII digits (e.g.n-0001). Mirrors whatcrate::format_node_idemits. - RunId
- A validated run identifier: a lowercase ULID (26 Crockford base32
characters whose first character keeps the encoded timestamp within
ULID’s 48-bit range). Mirrors what
crate::new_run_idemits. - Tmux
Identity - A fully-qualified tmux window identity recorded at spawn time.
- Worker
Exit - The observed exit status of a node’s worker process, recorded by the
run-workerlauncher shim under the run lock (design.md §2.1 / A1).
Enums§
- IdValidation
Error - Error returned when a typed identifier fails parse-time validation.
- Kind
- The run/node kind enum (design.md §1.2).
- Lifecycle
- How a run is driven — its how-run state (design.md §2, §6).
- Status
- Run/node status (design.md §1.2).
Constants§
- STATE_
SCHEMA_ VERSION - The current state-on-disk schema version this crate writes.
- SUPPORTED_
STATE_ SCHEMAS - All state-schema versions this crate can read.
Functions§
- aggregate_
terminal_ status - Aggregate a set of node statuses into the run’s rolled-up terminal status,
or
Nonewhen the run is not yet complete. - is_
run_ id_ prefix - True iff
sis a syntactically valid (possibly partial) prefix of aRunId: non-empty, no longer than a full ULID, every character a lowercase Crockford base32 digit, and a first character within ULID’s0..=7timestamp bound. Used by the CLI to resolve an unambiguous run-id prefix (likegit) — a value failing this is a malformed argument (invalid_run_id), not a legitimate-but-unknown prefix. The first-char bound is enforced because no validRunIdcan begin outside0..=7, so an8…/9…prefix is impossible rather than merely absent — reporting it as malformed keeps the error class honest and consistent with howRunId::parse_strrejects a full-length id with the same leading digit.