# Documents and large uploads

Files upload directly to R2, including multipart uploads up to 5 GiB, and supported documents become searchable text for the assistant and MCP.

Uploads now go directly from the browser to R2 through signed PUTs. Files above 16 MiB use resumable multipart uploads with 8 MiB parts. Images can be up to 100 MiB, documents 1 GiB and ZIP archives 5 GiB; cron recovers lost acknowledgements and aborts abandoned sessions.

Supported documents (text-layer PDF, Office, OpenDocument, RTF, EPUB, CSV and plain text) are converted in a browser Web Worker with AnyDoc WASM. Cron validates and indexes up to 192 KiB of Markdown per document. A server-side conversion was measured and rejected because it exceeded the 128 MiB isolate limit. The assistant and MCP read the indexed text through `files_list`, `search`, `fetch` and paged `document_read`, plus the `plan-from-document` prompt.

- [Files and uploads](/docs/features/files)
- [Documents](/docs/features/documents)
- [Scheduled jobs](/docs/features/scheduled-jobs)
- [ADR-0008](/docs/adr/0008-documents-and-large-uploads)

Sources: [direct uploads and conversion](https://github.com/CarlosZiegler/doro/commit/81a60af), [document tools](https://github.com/CarlosZiegler/doro/commit/20d34f5), [browser workers](https://github.com/CarlosZiegler/doro/commit/e3ec8b0), [bounded indexing](https://github.com/CarlosZiegler/doro/commit/b973be0).

