feat(reco): port ArtistVectorStore (3-table SQLite, keep schema)

T3: 1:1 port of the artist_vectors vector store into qbz-reco. open_at(base)
opens <base>/cache/artist_vectors.db (WAL) with the 3-table schema kept
byte-identical (CREATE IF NOT EXISTS) for cross-frontend reuse. Ports the
in-memory artist index, get_or_create_idx, set_vector (delete-then-insert per
(artist,source) + metadata nnz), get_vector (SUM GROUP BY), has_fresh_vector,
get_artist_name, and the production ranking get_related_artists /
get_all_related_artists (SUM ORDER BY total_weight DESC). Drops the dead
find_nearest cosine path (D3) and the Tauri State/tokio wrapper (lifecycle in
the frontend/core per ADR-006). 4 store tests, 20 qbz-reco tests green.

cc
This commit is contained in:
vicrodh committed 2026-06-26 20:20:49 -06:00
1 parent 4ec50f710d
commit 43d67335f0
4 files changed
+532

No files matched your search

+2
View File
@@ -7,3 +7,5 @@ description = "Frontend-agnostic artist-vector recommendation engine for QBZ (po
[dependencies]
serde = { workspace = true }
rusqlite = { version = "0.31", features = ["bundled"] }
log = { workspace = true }