docs/plan/01-foundation.md
Resume after refresh
Finish the transfer flow. Read RELIABILITY.md before transfer code. Optional tooling and UI follow-up in 02-pre-upload-readiness.md does not block this milestone.
Remaining work:
- Pass the 350 GB promise gate (
GATE=promise vp run test:gate). The 10 GB internal and 100 GB beta gates passed on staging; evidence is in #75. Record correctness, avoidable bytes resent and manual intervention the same way. - Before that run, speed up re-pick verification.
verifyPartshashes the held parts one at a time, and the time grows with progress (82 s at 25% to 228 s at 70% of 100 GiB, a steady 312 MiB/s; see BENCHMARKS.md). At 85% of 350 GiB that is about 16 minutes of a stuck-looking screen. - Restore persistent
FileSystemFileHandles where Chromium supports them, so a refresh needs no reselection. - Cross-tab ownership (e.g. Web Locks), so a second tab doesn't offer to resume an upload another tab is running.
- Rate-limit the browser trace relay (
/api/telemetry/traces). It checks origin, content type and size, but a script can still post junk spans. A Cloudflare rate-limit binding would close that. - Upstream the Uppy
ListPartspagination fix and drop the patch.
Run existing tests and direct runtime checks. New test files still require explicit approval.