- Make enqueue_enrich atomic by moving start_enrich call inside self._lock,
preventing pending work from being lost when a scan finishes between the
start attempt and the queue write.
- Call ensure_tags_exist before batch_insert_seed_assets in
ingest_existing_file to avoid FK violations on asset_reference_tags.
- Fix test_enrich helper to use real file mtime instead of hardcoded value
so the optimistic staleness guard in enrich_asset passes correctly.
- Add db_engine_fk fixture (SQLite with PRAGMA foreign_keys=ON) and a
regression test proving ingest_existing_file seeds Tag rows before
inserting reference tags.