feat: parallelize export downloads with asyncio.gather (#545)
previously tracks were downloaded sequentially, making exports slow
for users with many tracks or large files. now downloads happen
concurrently (up to 4 at a time) while zip creation remains sequential
(zipfile isn't thread-safe).
- refactor process_export to use asyncio.gather + semaphore
- add regression test verifying concurrent download behavior
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-authored-by: Claude <noreply@anthropic.com>
authored by
zzstoatzz.io
Claude
and committed by
GitHub
5d53ac11
1cc36aa7