fix: stream browser file downloads #5

Merged kenneth.nym.sh
targeting main from t3/stream-file-downloads
Merged opened by and assigned to kenneth.nym.sh
targeting main from t3/stream-file-downloads

File downloads currently buffer the entire response in the frontend before saving. Stream file content through GET /files/:id and let the browser handle the download directly.

Move JSON metadata to GET /files/:id/metadata and rename the backend handler to fetchFileMetadata. Keep inline previews on ?inline=true, with HTTP response behavior confined to the transport layer. Update the SDK, mock routes, and API documentation, and preserve reader cleanup when downloads end or are cancelled.

Validation: backend race suite and authenticated catalog integration tests; frontend and SDK typechecks; 16 SDK tests; Biome checks. Streaming tests cover a 256 MiB source, cancellation, filenames, and content types.

Fixes DRE-41.

Commits 0