99f264fcd0
roadmap: rewrite CN/EN roadmap to focused P0/P1; remove non‑goals; add unified logging in P0 frontend: state management = Zustand + custom Hooks (CN/EN) with updated strategy
68 lines
3.0 KiB
Markdown
68 lines
3.0 KiB
Markdown
# 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)
|