Skip to content

Surface the 20 MB CSV upload cap in the upload UI #11

Description

@jeanclawd

Problem

CSV uploads larger than ~20 MB fail because of Pyodide's WASM heap limit (documented in `CLAUDE.md`). Users only discover the cap by trying — the upload silently errors out (or surfaces a cryptic Python exception) and they assume the app is broken.

Proposal

Show the cap before the upload starts:

  • In the upload modal (`frontend/index.html`, the CSV upload section): a small badge or note "Max 20 MB · runs in your browser".
  • Client-side check: if `file.size > 20 * 1024 * 1024`, reject with a friendly error toast ("File is too large for the browser runtime — please subsample first") before calling `pyCallBinary`.

Acceptance criteria

  • The 20 MB limit is visible in the UI before the user picks a file.
  • An oversized file produces a clear, user-facing error and never reaches Pyodide.
  • Files within the limit upload as today.

Why now

Two lines of HTML, ~10 lines of JS. Removes the worst silent failure mode in the app.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workinggood first issueGood for newcomers

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions