5f883aa0f8
- Replace in-memory Cursor<Vec<u8>> with async_zip + NamedTempFile (O(256KB) RAM) - Stream ZIP to client via ReaderStream instead of materializing entire archive - Replace N+1 BFS folder traversal with 2 bulk ltree queries - Remove dead zip_service field and with_zip_service() from BatchOperationService - Remove synchronous zip crate dependency (only async_zip remains) - Eliminates ~2.5GB RAM spike per 2GB batch download