Skip to content

feat(uploads): folder upload, zip upload+extract, and batched/parallel multi-file upload #356

Description

@umi-appcoder

Split out from #336 (item B2, plus the still-valid half of B3). Verdict: PARTIAL.

Ask: multi-file, folder, and zip upload.

  • Multi-select: already worksmultiple is set at web/src/routes/hypervisor/Chat.tsx:631 and routes/tasks/MessageChat.tsx:353. But each file is a separate sequential request, which likely explains the "one file at a time" feel — worth batching or parallelizing with combined progress.
  • Folder upload: MISSING — no webkitdirectory anywhere in the SPA.
  • Zip: MISSING and actively blockedroutes/tasks/imageAttach.ts:52-66 (ALLOWED_EXTS), with imageAttach.test.ts:77 asserting archive.zip -> false. Server-side upload/extract would need to accompany any client change.

For the record (original item B3): general non-image uploads already work — the server enforces no type restriction at all (handle_file_upload, server.py:6728); the allowlist is client-side only and already includes documents, markdown, and source files. The "only images work" perception was likely the 413 ingress bug (#344) — most images are under 1 MiB, most documents aren't. Video is deliberately excluded (Claude can't read it); zip is the real gap.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions