Hub-internal LWW guard: the newest event applied per entity.
id = “{item_type}:{item_id}”. ApplyLogEntry consults this before
emitting an unwrapped event so that out-of-arrival-order events cannot
clobber newer state (CLIs get the same guarantee by sorting the full log
before replay; the hub applies incrementally and needs the marker).
Commit-graph slice: sha -> parent shas. id = commit sha (hex) — content
addressed and immutable (a sha’s parents never change), so publication is
idempotent. Lets git-free nodes (the hub) resolve ancestry.
Hub transport wrapper for one levi event. id = the event’s content address
(git blob OID of its CBOR bytes); payload = base64(CBOR(MEvent)). Immutable
and add-only, so “what are you missing” between a CLI and the hub is a set
difference over LogEntry ids. A hub-side saga unwraps the inner event so
dashboards query real entities.
Hub-internal LWW guard: the newest event applied per entity.
id = “{item_type}:{item_id}”. ApplyLogEntry consults this before
emitting an unwrapped event so that out-of-arrival-order events cannot
clobber newer state (CLIs get the same guarantee by sorting the full log
before replay; the hub applies incrementally and needs the marker).
Commit-graph slice: sha -> parent shas. id = commit sha (hex) — content
addressed and immutable (a sha’s parents never change), so publication is
idempotent. Lets git-free nodes (the hub) resolve ancestry.
Hub transport wrapper for one levi event. id = the event’s content address
(git blob OID of its CBOR bytes); payload = base64(CBOR(MEvent)). Immutable
and add-only, so “what are you missing” between a CLI and the hub is a set
difference over LogEntry ids. A hub-side saga unwraps the inner event so
dashboards query real entities.
Append-only status-change record; never edited. Effective status of a task
on a checkout is a fold over these, restricted to changes whose
anchor_commit is an ancestor of HEAD (see resolve::effective_status).
A tracked task. NOTE (spec): status is not a field — it is derived
per-checkout from crate::StatusChange records. Metadata edits are
ordinary myko SET events; last-writer-wins by event created_at, ties
broken by event id (levi sorts before replay — see materialize).
Search this entity type by query string. Backed by the typed
per-entity SearchIndex<T> (exact + nucleo subsequence +
Levenshtein typo). Returns matching ids in tier order.
Search this entity type by query string. Backed by the typed
per-entity SearchIndex<T> (exact + nucleo subsequence +
Levenshtein typo). Returns matching ids in tier order.
Append-only status-change record; never edited. Effective status of a task
on a checkout is a fold over these, restricted to changes whose
anchor_commit is an ancestor of HEAD (see resolve::effective_status).
A tracked task. NOTE (spec): status is not a field — it is derived
per-checkout from crate::StatusChange records. Metadata edits are
ordinary myko SET events; last-writer-wins by event created_at, ties
broken by event id (levi sorts before replay — see materialize).