docs: add technical plan for dispute chat shared key and multimedia support#478
docs: add technical plan for dispute chat shared key and multimedia support#478
Conversation
|
No actionable comments were generated in the recent review. 🎉 WalkthroughAdds a new planning document that defines a five‑phase migration to a shared‑key (ECDH adminSharedKey) dispute chat model and phased multimedia support via Blossom servers, specifying protocol changes, data/model updates, tests, UI considerations, timelines, and coordination notes. Changes
Sequence Diagram(s)sequenceDiagram
participant Client as Client (Web/Mobile)
participant Server as App Server
participant Blossom as Blossom Media Server
participant DB as Database
participant Notifier as Notifier Service
Client->>Server: open dispute chat / request key (ECDH)
Server->>Client: deliver adminSharedKey (encrypted)
Client->>Server: send encrypted text/message + attachment metadata
Server->>Blossom: upload encrypted attachment (store & return URL)
Blossom-->>Server: attachment URL / storage confirmation
Server->>DB: persist message record (refs to attachment URL, crypto metadata)
Server->>Notifier: emit message event (includes minimal metadata)
Notifier->>Client: push notification / event
Client->>Blossom: fetch/render encrypted attachment via signed URL (decrypt locally)
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Poem
🚥 Pre-merge checks | ✅ 4✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Fix all issues with AI agents
In `@docs/DISPUTE_CHAT_MULTIMEDIA_PLAN.md`:
- Line 89: Add language specifiers ("text") to the fenced code blocks used for
test pseudocode in DISPUTE_CHAT_MULTIMEDIA_PLAN.md; locate the eight opening
backticks that precede the test group headings (e.g., group('Dispute Shared Key
Computation'), group('p2pWrap / p2pUnwrap round-trip'),
group('DisputeChatNotifier message model'), group('Dispute chat message type
detection'), group('P2P EncryptedImageMessage regression after decoupling'),
group('Dispute chat file upload'), group('NostrUtils.sharedKeyToBytes'), and
group('MediaCacheMixin')) and change the opening ``` to ```text for each block
to satisfy markdownlint MD040.
🧹 Nitpick comments (1)
docs/DISPUTE_CHAT_MULTIMEDIA_PLAN.md (1)
76-83: Clarify the subscription approach decision.The document presents an alternative approach for subscription management but doesn't specify which one should be implemented. Consider adding a clear recommendation or decision marker (e.g., "Recommended: Integrate into SubscriptionManager...") to help implementers choose the right path.
Technical plan for migrating dispute chat (user-admin) from direct gift wrap encryption to shared key (ECDH), unifying it with the P2P chat mechanism, and enabling multimedia (images/files) via Blossom servers.
Phases
DisputeChattoNostrEvent(internal refactor)Each phase = 1 PR, with tests and manual testing checklist.
Full plan:
docs/DISPUTE_CHAT_MULTIMEDIA_PLAN.mdSummary by CodeRabbit