In-memory launcher saga registry. Owned by SagaCoordinator as
Arc<LauncherSagaLog> (the name is kept from the durable era to
minimize churn at the ~5 coordinator call sites; it IS still a log —
an in-memory, bounded one).
Errors from the saga registry. JSON serialization is the only
fallible operation left after the SQLite layer’s removal; the
duplicate-id insert error is preserved from the durable log’s
PRIMARY KEY semantics (“a duplicate saga_id is a bug worth
surfacing, not a silent overwrite”).
Retention cap for TERMINAL sagas (completed / failed /
failed_compensation). When exceeded, the oldest terminal sagas are
evicted. In-flight sagas are never evicted — mirroring the old
vacuum’s “never vacuum running/compensating” rule. 128 comfortably
exceeds anything a session produces (each window close = 1 saga,
each pool promote = 1 saga) while bounding memory at a few hundred KB
worst case.