Add direct messages between friends after the social MVP
- Lingua principale
- JavaScript
- Stelle
- 30
- Fork
- 9
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Descrizione
## Goal
Let accepted friends coordinate outside a room after the friendship, blocking, notification, retention, and abuse controls have proven stable.
## Required contract before implementation
- Only accepted friends may start or continue a conversation.
- Blocking immediately prevents new delivery and hides actionable contact paths.
- Define retention, deletion, export, and account-removal behavior before storing messages.
- Add reporting/moderation and rate limits before broad enablement.
- Treat message content as sensitive: do not put it in analytics, routine logs, notification previews, or PostgreSQL metrics.
- Reconnect and multi-device delivery must reconcile from durable paginated history; Socket.IO is delivery, not the source of truth.
## Acceptance criteria
- [ ] Complete a threat/privacy review covering minors, harassment, impersonation, spam, and moderation access.
- [ ] Define conversation/message schemas, cursor pagination, delivery/read semantics, and retention.
- [ ] Add authenticated APIs and realtime delivery with per-message authorization and idempotency.
- [ ] Add block/report/delete flows before enabling message composition.
- [ ] Add limits for message size, frequency, links, and duplicate/replayed sends.
- [ ] Add tests for unfriending/blocking races, ID tampering, reconnect, multiple tabs, retention, deletion, and rate limits.
- [ ] Roll out behind a separate feature flag with privacy-safe reliability metrics.
## Dependencies
- #75
- #105
- #188
## Non-goals
- Group chat.
- File/image uploads.
- End-to-end encryption claims without a separately reviewed design.
- Shipping as part of the Friend System MVP.
Guida per i contributori
Apri la guida per i contributori
Direzione di ricerca
Inizia esaminando le dipendenze #75, #105 e #188, quindi completa la revisione richiesta delle minacce e della privacy prima dell’implementazione. Il lavoro sarà considerato completato quando saranno stati affrontati gli schemi, le API, i flussi di moderazione e sicurezza, i test e il rollout controllato tramite feature flag indicati; la composizione dei messaggi deve rimanere disabilitata finché le misure di protezione non saranno in atto.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- javascript, mongodb, nodejs, react
- Ambito
- api, backend, security
- Tipo di issue
- Funzionalità
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Stato di attività
- Tranquilla
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 25/100