- Move AI parsing and matching into BackgroundTasks so both endpoints
return immediately instead of blocking until Claude finishes (~60s+)
- Frontend now polls project status after upload/match POST returns,
keeping the spinner/progress UI working as before
- Replace <a href> export links with programmatic Axios downloads to fix
missing /gsb base path and missing auth token (401 in production)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>