fn backfill_contentless_fts(conn: &Connection) -> Result<(), String>Expand description
Backfill FTS5 contentless shadow tables from primary tables for rows missing from FTS.
Migration v9 created empty FTS tables; existing audio_samples (etc.) rows were never
indexed, so MATCH returned no hits while the base tables still showed full library counts.