Skip to content

Commit 3c565fc

Browse files
schicklingclaude
andcommitted
docs(vrs): the record example carries its ownership fields
incarnation and seq appear in the wire example with the directional ownership rule and the legacy missing-field derivation stated beside them. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
1 parent 4a9806d commit 3c565fc

1 file changed

Lines changed: 12 additions & 5 deletions

File tree

docs/vrs/05-harness-state/spec.md

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -73,11 +73,18 @@ Field rules, matching `src/harness_state.rs`:
7373
- `ask` names the kind of human ask, machine-readably, while `blockedOn` is
7474
`human` (`none` otherwise; unrecognized words decode indeterminate) — the
7575
axis consumers filter on, so nothing branches on diagnostic `reason`.
76-
- `incarnation` is the writing session's token: ownership — coalescing,
77-
heartbeat eligibility, terminal suppression — is token equality, never a
78-
timestamp comparison. Sibling writer processes of one session share the
79-
token; every landed write carries a strictly monotonic per-record stamp so
80-
it stays byte-distinct even against a same-millisecond predecessor.
76+
- `incarnation` is the writing session's token and `seq` its monotonic
77+
ownership sequence: ownership — coalescing, heartbeat eligibility, terminal
78+
suppression — is token equality, and only a session claim advances the
79+
sequence (to the on-disk value plus one), which gives ownership a
80+
direction: a straggler from a superseded session is refused in live and
81+
terminal paths alike. Sibling writer processes of one session share the
82+
claimer's exported token and sequence; records from writers predating
83+
either field decode with an empty token and sequence zero, which no
84+
session owns and any claim supersedes. Every landed write carries a
85+
strictly monotonic per-record stamp (never inherited from beyond the
86+
future-skew trust bound) so it stays byte-distinct even against a
87+
same-millisecond predecessor.
8188
- `reason` is diagnostic only; no consumer branches on it.
8289
- `sinceMs` is when the current state was entered and survives heartbeat
8390
re-stamps; `writtenAtMs` is the heartbeat. `transitions` is a monotonic

0 commit comments

Comments
 (0)