The export loop was opening a new DB connection per file AND starving
the Qt event loop, causing the progress bar to freeze then jump and
the app to crash during large copy exports.
Fixes:
- All record_symlink calls in both export paths now collect records
and batch-insert in a single transaction at the end
- Added explicit QApplication.processEvents() in export loops
- Throttled progress label updates to every 10 files (text rendering
was adding overhead on every iteration)
- Moved shutil import out of inner loops
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>