fix(H-08): replace substring audit name match with relationship-based + word-boundary match -- eliminates false positives for common words like 'India', 'National'
fix(H-07,CodeQL#12-17): use file-anchored absolute paths for path traversal guards in dossier_generator and export -- relative realpath() was CWD-dependent
fix(BUG-C3,C-03,M-13): wrap synchronous Neo4j session in run_in_executor inside async WebSocket; fix feed change-detection to compare full ID set not just first scraped_at