OptionalaheadCommits on the run branch that origin does not yet have — unpushed writes (#149): the lineage Gatehouse renders and the lineage origin consumers see have silently diverged. Absent method or null result means "not knowable" (no origin tracking, remote-kind run) — display nothing, never zero.
OptionalbehindCommits origin has that the local run branch does not (#99). Non-zero together with aheadOfOrigin means the branch has genuinely diverged — local-wins observation is then a deliberate choice that must be visible, never silent. Absent method or null means "not knowable".
Most recent commit touching any of the given run-relative paths.
Most recent commit touching anything in the run directory except the given run-relative paths — the delta guard (#188): state.yaml alone moving (bookkeeping, a resolution note) is not "something landed".
OptionaloriginThis source's remote.origin.url, verbatim, for deriving a link out to
the git host (#267 — view-model/host-link.ts decides what it means).
Null means there is nothing to link to and the caller keeps its local
view: no remote configured, or a local-only source, which has no origin
by definition (FRONTEND.md §4.1 — degrade to the local view, never to a
dead end). Absent method means the same.
Unified diff of the run branch against the default branch, runs/ excluded.
OptionalrunEvery commit on the run branch touching the run's own directory, newest
first — the branch's own order, which is what "after" means when the
clocks that stamped the facts disagree (#346, branch-order.ts). One log,
no per-commit reads: stateHistory is the expensive walk, this is the
cheap index that places its commits alongside the artifact landings.
Optional, like the origin-divergence counts: a driver with no history to offer omits it, and its callers fall back to timestamps.
The only branch-minting path (plan ADR-3, R1): builds a genesis commit
from scaffold.files against the default branch's tip and lands it via
create-only CAS. Always authored as who — never a bot-pinned source
identity — because a staged run must be attributable to the human who
staged it, whoever is holding the write path.
The single write path (rule R2): apply a mutation to state.yaml and commit
it to the run branch, compare-and-swap semantics. expectedTip extends
the CAS window back to the caller's read: when given and the branch no
longer points there, the write refuses with ref-moved — the machine
co-writer's derive-then-write guard (ORCHESTRATOR.md §4.4). Human
surfaces omit it: their reads happen inside this call.
Optionaloptions: { expectedTip?: string }
Contract templates of this repo, for R3 validation.