OptionalauditOptionalauditRequired when audit is set; contains stable engine/account/session metadata.
The ciphersuite implementation to use for the group
OptionalconvergenceConvergence policy (branch selection + maxRewindCommits rollback horizon).
Set maxRewindCommits: Infinity to keep forks of any age eligible for
re-convergence. Defaults to the profile-1 policy.
OptionalhistoryThe storage interface for the groups application message history (optional)
OptionalhistoryA full-fork history tree rehydrated from rewindStore on load. Set by the loader (GroupRegistry); not part of the public construction API.
OptionalingestionTuning for the persistent ingestion pool (size + epoch-age bounds on undecryptable events held for retry). Defaults bound it.
OptionalmediaBackend (or pre-wrapped store) for the plaintext blob cache used by MarmotGroup.decryptMedia. Defaults to an in-memory cache when not provided.
The nostr relay pool to use for the group. Should implement GroupNostrInterface for group operations.
OptionalnowInjectable wall-clock (ms) for the convergence quiescence window (B5).
Defaults to Date.now; tests inject a fake clock for determinism.
OptionalretainedThe bounded convergence window, derived from the history tree on load. Set by the loader (GroupRegistry); not part of the public construction API.
OptionalrewindDedicated backend for the rewind-history blob (one entry per group). When provided, the convergence rewind window survives a restart. Optional — omitted means rewind history is in-memory only (legacy behavior).
OptionalschedulerInjectable settle-check timer for releasing queued outbound work (B5).
Defaults to setTimeout; tests pass a controllable fake.
OptionalsettlementQuiescence window (ms) before convergence may be treated as settled
(convergence.md settlementQuiescenceMs). Defaults to the profile-1 value.
The signer used for the clients identity
The key-value backend where serialized group state bytes are persisted
Optional forensic audit sink. Omitted by default; audit logging is app opt-in.