diff --git a/docs/ROADMAP.md b/docs/ROADMAP.md index d55cba6..8d346b3 100644 --- a/docs/ROADMAP.md +++ b/docs/ROADMAP.md @@ -30,6 +30,83 @@ *Prioritized for upcoming phases.* +### v3.0 — Modern Room Chat + +- **Release date:** Not scheduled +- **Priority:** P1 +- **Category:** Social / Communication / Privacy +- **Status:** Planned. This is a roadmap target, not a release announcement. +- **Existing foundation:** Opt-in, live-only end-to-end encrypted room chat; a floating + chat bubble over the selected player opens a dockable, detachable, resizable overlay. + The relay stores no chat history and mixed extension versions use capability-gated + delivery. + +#### Core experience + +- Floating bubble with an accessible unread badge (`1`, `2`, `3`, …, `99+`), cleared + only when the chat is actually viewed. +- Subtle new-message pulse with reduced-motion support; no animation or sound while + muted or during Do Not Disturb. +- Drag-and-snap bubble positioning, remembered per site, with reset-to-default. +- Dock left/right, detached overlay, compact mode, fullscreen-safe placement, responsive + narrow-player layout, and keyboard-only operation. +- Per-room mute, mention-only mode, notification sound controls, browser notifications, + and a visible mute state. +- Unread state survives overlay close/reopen and tab focus changes, but room messages + remain memory-only unless a future storage option is explicitly enabled. + +#### Messaging + +- Replies with quoted context, emoji reactions, emoji picker, mentions, and typing + indicators. +- Edit and delete own messages with clear local tombstones; no silent mutation. +- Delivery states (`sending`, `sent`, `failed`, `retry`) with idempotent retries and + duplicate suppression after reconnects. +- Message timestamps, date separators, jump-to-latest, unread divider, search within + the current live session, copy, and selectable text. +- Link detection with safe external opening, explicit scheme allowlist, and no automatic + previews or remote-media loading. +- Optional image/GIF/file sharing only after encrypted size limits, malware-risk UX, + relay bandwidth limits, and privacy behavior are designed and tested. + +#### Presence, safety, and control + +- Online/reconnecting status, join/leave events, and room-member presence without + exposing IP addresses or cross-room identity. +- Local mute/block, host moderation controls, slow mode, spam limits, and configurable + maximum message length. +- Optional read receipts and activity indicators default off; never infer or expose + viewing behavior without explicit consent. +- Clear live-only/no-history explanation, encrypted-chat indicator, room-key fingerprint, + and key-rotation/rejoin UX. + +#### Reliability and compatibility + +- Versioned chat capabilities for every new wire feature; unknown fields/events remain + harmless to older extensions and old non-chat clients receive no chat traffic. +- Server-first and extension-first rollout tests, including current, first-chat-beta, + old non-chat, reconnect, duplicate-frame, and malformed-capability clients. +- Bounded queues, payloads, unread counters, typing events, reactions, and attachment + metadata; backpressure and rate limits on both client and relay. +- Real Chrome and Firefox extension E2E coverage for bubble, unread count, overlay, + fullscreen, reconnect, and mixed-version rooms before v3.0 can ship. + +#### Accessibility and localization + +- Screen-reader announcements that do not read every busy-room message by default. +- Complete focus management, logical tab order, Escape behavior, high contrast, + zoom/reflow, reduced motion, and touch target coverage. +- All chat UI, notification text, moderation states, and errors localized across every + supported locale before release. + +#### Explicit non-goals for the first v3.0 release + +- No server-readable plaintext. +- No mandatory accounts, public room directory, advertising, tracking, or presence + across rooms. +- No unencrypted server-side history. Any future encrypted history requires a separate + threat model, retention controls, export/delete behavior, and explicit opt-in. + ### 2. Invite link with target URL for auto-redirect - **Priority:** P2 @@ -49,17 +126,6 @@ *Ideas and feature requests under evaluation.* -### In-room chat overlay (like TeleParty) - -- **Priority:** P3 -- **Category:** Social / Communication -- **Background:** A collapsible chat panel to the right of the video (or as an overlay) allowing text-based communication with everyone in the room. -- **Why backlog (still uncertain):** - - **Use case:** No strong personal need — with chat, latency matters less than with voice; async communication tolerates a few seconds of delay. - - **Complexity:** Relatively large feature (UI + message persistence + possibly history). - - **Legal/moderation:** Unclear what moderation requirements would apply if users can exchange chat messages. Could be relevant depending on jurisdiction. -- **Status:** Under evaluation, may come later. - ### Cross-frame video detection and control - **Priority:** P3