Browser resumable upload (Uppy / tus-js) #21

Open
opened 2026-07-25 16:25:52 +00:00 by Cordy · 1 comment
Owner

The TUS server (/api/v1/tus/) is implemented and verified with eventials/go-tus, but the web UI still uses a plain POST upload. Wire a real browser resumable-upload UX (Uppy or tus-js-client) into the embedded UI for large-file / flaky-connection parity.

Nice-to-have parity item; server side already done.

The TUS server (`/api/v1/tus/`) is implemented and verified with `eventials/go-tus`, but the web UI still uses a plain POST upload. Wire a real browser resumable-upload UX (Uppy or tus-js-client) into the embedded UI for large-file / flaky-connection parity. Nice-to-have parity item; server side already done.
Author
Owner

Implemented in PR #39 (merged, ships in v0.2.7): files ≥16 MiB go through /api/v1/tus/ in 8 MiB chunks with a progress bar, exponential-backoff retry with HEAD offset re-sync, and resume across page reloads via a localStorage-remembered upload URL. node --check verified.

Left open for the human smoke-test on the .249 dogfood (that's the sign-off gate):

  1. Open http://192.168.10.249, pick a file >16 MiB (e.g. dd if=/dev/urandom of=big.bin bs=1M count=100 gives 100 MiB) — progress bar should tick in ~8% steps.
  2. Mid-upload, toggle Wi-Fi off/on (or close the tab) → reopen, reselect the same file → status should jump to roughly where it left off, not 0%.
  3. Let it finish → file appears in the listing, size correct.

Close this issue when that passes.

Implemented in PR #39 (merged, ships in v0.2.7): files ≥16 MiB go through `/api/v1/tus/` in 8 MiB chunks with a progress bar, exponential-backoff retry with HEAD offset re-sync, and resume across page reloads via a localStorage-remembered upload URL. `node --check` verified. **Left open for the human smoke-test on the .249 dogfood** (that's the sign-off gate): 1. Open http://192.168.10.249, pick a file >16 MiB (e.g. `dd if=/dev/urandom of=big.bin bs=1M count=100` gives 100 MiB) — progress bar should tick in ~8% steps. 2. Mid-upload, toggle Wi-Fi off/on (or close the tab) → reopen, reselect the same file → status should jump to roughly where it left off, not 0%. 3. Let it finish → file appears in the listing, size correct. Close this issue when that passes.
Sign in to join this conversation.
No labels
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: Cordy/Cairn#21
No description provided.