Build — Windows, Linux & macOS / GDPRScanner / linux (push) Has been cancelled
Build — Windows, Linux & macOS / GDPRScanner / macos (push) Has been cancelled
Build — Windows, Linux & macOS / GDPRScanner / windows (push) Has been cancelled
Build — Windows, Linux & macOS / Create GitHub Release (push) Has been cancelled
document_scanner.py: `import fitz` is PyMuPDF's deprecated import alias, scheduled for removal - switched both sites to `import pymupdf as _fitz`. Pure rename, no behavior change (all 227 tests still pass). routes/scan.py: the background scan thread caught no exceptions, so an unexpected crash in run_scan() escaped into Python's default unhandled-thread-exception hook instead of the app's own logging/audit trail. The scan lock was already released correctly via `finally` - now the crash itself is also logged (`_log.exception`, full traceback) and audit-recorded before that. Confirmed by test_lock_released_when_ run_scan_raises: the PytestUnhandledThreadExceptionWarning it triggered is now gone, with no change to the test's own assertions.