2.8 KiB
2.8 KiB
PROGRESS_MARMOT (ephemeral)
Marmot-specific implementation checklist for Parrhesia relay interoperability.
Spec source: ~/marmot/README.md + MIP-00..05.
M0 — spec lock + interoperability profile
- Freeze target profile to MIP-00..03 (mandatory)
- Keep MIP-04 and MIP-05 behind feature flags (optional)
- Document that legacy NIP-EE is superseded and no dedicated transition compatibility mode is planned
- Publish operator-facing compatibility statement in docs
M1 — MIP-00 (credentials + keypackages)
- Enforce kind
443required tags and encoding (encoding=base64) - Validate
mls_protocol_version,mls_ciphersuite,mls_extensions,relays, anditag shape - Add efficient
#iquery/index path for KeyPackageRef lookup - Keep replaceable behavior for kind
10051relay-list events - Add conformance tests for valid/invalid KeyPackage envelopes
M2 — MIP-01 (group construction data expectations)
- Enforce relay-side routing prerequisites for Marmot groups (
#hquery path) - Keep deterministic ordering for group-event catch-up (
created_at+idtie-break) - Add guardrails for group metadata traffic volume and filter windows
- Add tests for
#hrouting and ordering invariants
M3 — MIP-02 (welcome events)
- Support wrapped Welcome delivery via NIP-59 (
1059) recipient-gated reads - Validate relay behavior for unsigned inner Welcome semantics (kind
444envelope expectations) - Ensure durability/ack semantics support Commit-then-Welcome sequencing requirements
- Add negative tests for malformed wrapped Welcome payloads
M4 — MIP-03 (group events)
- Enforce kind
445envelope validation (#htag presence/shape, base64 content shape) - Keep relay MLS-agnostic (no MLS decrypt/inspect in relay hot path)
- Add configurable retention policy for kind
445traffic - Add tests for high-volume fanout behavior and deterministic query results
M5 — optional MIP-04 (encrypted media)
- Accept/store MIP-04 metadata-bearing events as regular Nostr events
- Add policy hooks for media metadata limits and abuse controls
- Add tests for search/filter interactions with media metadata tags
M6 — optional MIP-05 (push notifications)
- Accept/store notification coordination events required by enabled profile
- Add policy/rate-limit controls for push-related event traffic
- Add abuse and replay protection tests for notification trigger paths
M7 — hardening + operations
- Add Marmot-focused telemetry breakdowns (ingest/query/fanout, queue pressure)
- Add query-plan regression checks for
#hand#iheavy workloads - Add fault-injection scenarios for relay outage/reordering behavior in group flows
- Add docs for operator limits tuned for Marmot traffic patterns
- Final
mix precommitbefore merge