blastoise/todo/README.md

37 lines
2.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# TODO — Implementation Plans
Eight plans derived from the architecture assessment, ordered by priority and with
effort/risk so you can sequence the work. Each lives in `todo/<topic>/overview.md`.
## Critical / High — do first (all low effort, low risk)
| # | Topic | Priority | Effort | Depends on |
|---|-------|----------|--------|------------|
| 1 | [xss-fixes](xss-fixes/overview.md) — escape server data at `innerHTML`; add CSP | Critical | Low | — |
| 2 | [websocket-robustness](websocket-robustness/overview.md) — try/catch parse, reconnect backoff, dead-channel fallback | High | LowMed | — |
| 3 | [ws-guest-control-permission](ws-guest-control-permission/overview.md) — route WS control through `userHasPermission` | High | Trivial | — |
| 4 | [channel-get-auth](channel-get-auth/overview.md) — add auth to `GET /api/channels/:id` | High | Trivial | — |
Items 14 are independent and can be done in parallel. Each is a small, isolated change.
## Medium — correctness and efficiency
| # | Topic | Priority | Effort | Depends on |
|---|-------|----------|--------|------------|
| 5 | [fetch-response-validation](fetch-response-validation/overview.md) — `res.ok` checks before `res.json()` | Medium | Low | — |
| 6 | [duplicate-download-race](duplicate-download-race/overview.md) — synchronous check-and-claim for bulk downloads | Medium | Low | — |
| 7 | [client-cache-correctness](client-cache-correctness/overview.md) — revoke blob URLs, LRU prune, real `streamOnly` | Medium | Medium | #6 (shares `downloadAndCacheTrack`) |
## Strategic — refactor, do last
| # | Topic | Priority | Effort | Depends on |
|---|-------|----------|--------|------------|
| 8 | [client-store-and-windowing](client-store-and-windowing/overview.md) — virtualize list + minimal store + decompose god module | Strategic | High | #1, #6, #7 (inherit correct behavior first) |
## Suggested order
1, 3, 4 (one-line/server-side, ship immediately) → 2 → 5 → 6 → 7 → 8.
All plans include affected file:line references, a step-by-step implementation
sketch, validation steps, and rollback notes.