Skip to content

Latest commit

 

History

History
67 lines (45 loc) · 3 KB

File metadata and controls

67 lines (45 loc) · 3 KB

PrivyDrop Roadmap

Overview

  • Vision: keep file/text transfer lightweight, smooth, reliable, and easy to self‑host.
  • Current snapshot: resumable transfer, chunking + backpressure, Safari/Firefox support, Docker one‑click deploy.

Scope

  • Scope: file/text transfer only (one‑to‑many), room‑based sessions.

Near‑Term Roadmap (by priority, no dates)

  • P0 Code Optimization & Slimming

    • Architecture convergence & clear boundaries: transport (send/receive), WebRTC wrapper, state, and UI separated; split oversized files; centralize shared types/constants.
    • Redundancy cleanup: remove dead code/unused exports; merge duplicate utilities and logic (keep a single authority for packet encode/decode).
    • Unified config & naming: chunk/batch/backpressure thresholds from a single source; unify naming; do not change behavior.
    • State management coherence: Zustand as the single source of truth; custom hooks only subscribe/dispatch intent, no business logic.
    • Async & error path simplification: unify Promise/event patterns and return values; centralize error types and boundaries.
    • Logging & debug (key runtime item): unified logger with levels (error/warn/info/debug) and toggle; default low‑noise in production; replace scattered console/postLog; consistent IDs by room/session/file.
    • Type & build health: gradually tighten TS, reduce any/implicit any; keep lint/format consistent.
  • P0 Minimal Test Set

    • Unit tests: chunk read/slice, embedded packet parse, sequenced disk writer handling of out‑of‑order/duplicate/tail chunks.
    • Lightweight integration: headless/fake data channel to verify send→receive→persist, covering backpressure wait and resume path.
    • Backend minimal tests: room and rate‑limit core contracts.
  • P1 Error UX & Read‑only Network Check

    • Clear, actionable errors with retry suggestions; visible send/receive states and failure summaries.
    • Read‑only panel: connection state, data channel state, send buffer, current/avg rate, recent errors. Display only; no complex probing.
  • P1 Docs & Deployment Consistency

    • Aligned quickstart and Docker self‑hosting; FAQ and troubleshooting; consistent screenshots and terminology.
    • Frontend architecture docs synced (Zustand + custom hooks).

Definition of Done

  • P0 Code Optimization & Slimming

    • Clear module boundaries; unified directory/naming; duplicates merged; dead code removed.
    • Single source for chunk/batch/backpressure config, with behavior unchanged.
    • Zustand as the only state source; components free of business side‑effects; custom hooks roles are clear.
    • Logger levels and toggle in place; production low‑noise; no stray debug output.
    • Build and lint pass; TypeScript warnings significantly reduced.
  • P0 Minimal Test Set

    • Core edge cases covered by unit tests; at least one minimal integration path completes send→receive→persist.

Terminology

  • Sender/Receiver
  • Room
  • Chunk / Backpressure
  • Resume
  • DataChannel
  • Persist to disk (OPFS/disk write)