You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Release receipts can commit the coordination log: synapse verify-release --merkle-db
embeds the log's RFC 6962 Merkle root (root, tree size, sequence range) into the receipt
as both machine detail and an evidence line, binding the release to the exact
coordination history behind it. synapse policy-check --merkle-db re-verifies the
commitment later — it recomputes the committed log prefix, which append-only growth
never disturbs, and adds a merkle_commitment decision that fails (and can gate with --enforce under an enforcement policy) when the prefix was rewritten, truncated, or
renumbered since the receipt.
Changed
Building the causality graph is now bounded-memory: synapse causality streams only the
coordination event kinds off the store cursor — the kind filter runs inside SQLite, so
bulk chat on a long-lived hub never reaches Python — and folds them under a fail-closed
ceiling (default 250 000 coordination events; --max-nodes raises it, 0 lifts it) that
errors with a synapse compact remedy instead of exhausting memory.
Committing the event log to a Merkle root is now bounded-memory: synapse merkle root
(and run_root) streams events off a new lazy event-store cursor (iter_events) into a
running commitment that holds only the O(log n) subtree peaks, so a multi-year log
commits without loading into RAM. The root is bit-identical to the previous whole-log
computation; building an inclusion proof still materialises the committed leaves.