Number of retained canonical states.
The oldest retained epoch (the retained anchor), or undefined if empty.
The commits applied on our current canonical branch from forkEpoch
(inclusive) up to but not including tipEpoch, in epoch order.
Parent-bound applied links on the current canonical branch. Unlike a digest plus later epoch lookups, each entry keeps the exact parent state (including proposal-reference evidence) beside its resulting state.
Whether a canonical state is retained at epoch.
Records the retained parent state and the applied commit message after
advancing an epoch, then prunes retained material beyond the rollback
horizon (retained-history.md).
pinnedEpochs are epochs the caller's active lifecycle still needs and that
MUST NOT be pruned even when older than the horizon (retained-history.md
"Pruning": state needed to resolve an active PendingPublish / Merging /
Recovering / Unrecoverable). The engine supplies them; e.g. the source epoch
of a staged local commit the canonical tip has since advanced past.
OptionalownCommitStamp: OwnCommitConvergenceStampThe retained canonical state at epoch, if still held.
All retained canonical states (for cross-epoch decrypt retries).
The highest retained epoch (the canonical tip), or undefined if empty.
The bounded convergence window — the recent canonical states + applied commits the convergence hot path needs to rebuild candidate branches and recover from forks and late delivery (Marmot v2
protocol-core/retained-history.md).Holds, keyed by epoch number:
Both maps are bounded to the rollback horizon (
max_rewind_commits): material older thantip - maxRewindCommitsis pruned on every record. This is a purely in-memory, derived index: it is never persisted (the full-fork GroupHistoryTree is the single persisted source) and is rebuilt from the tree's canonical path on load.