Rebuildable projection over durable dispatch journal entries.
The projection is deliberately pure. Storage adapters can rebuild it from Jido thread journals, IntentLedger lifecycle signals, or from a single append-only Squid Mesh journal table without changing the runtime invariants.
Summary
Types
@type t() :: %SquidMesh.Runtime.DispatchProtocol.Projection{ anomalies: [anomaly()], attempts: %{ optional(String.t()) => SquidMesh.Runtime.DispatchProtocol.ActionAttempt.t() }, terminal_runs: MapSet.t(String.t()) }
Functions
@spec completed_results(t()) :: [SquidMesh.Runtime.DispatchProtocol.ActionAttempt.t()]
@spec expired_claims(t(), DateTime.t()) :: [ SquidMesh.Runtime.DispatchProtocol.ActionAttempt.t() ]
@spec rebuild([SquidMesh.Runtime.DispatchProtocol.Entry.t()]) :: t()
@spec replay(t(), [SquidMesh.Runtime.DispatchProtocol.Entry.t()]) :: t()
@spec results_ready_to_apply(t()) :: [ SquidMesh.Runtime.DispatchProtocol.ActionAttempt.t() ]
@spec visible_attempts(t(), DateTime.t()) :: [ SquidMesh.Runtime.DispatchProtocol.ActionAttempt.t() ]