build_seed.py gains --tmdb-key to sweep art for every movie missing a
cached entry. HF Spaces' filesystem is ephemeral: live-fetched posters
were wiped on each restart, which is why titles like Seven Chances kept
losing images. Seed v3 (3.9 MB gz) ships with 91% coverage; the rest are
films genuinely absent from TMDB.
fix(seed): integer rating keys β popularity was all zerosβ
Ratings were counted under string keys ('2') but looked up by int (2),
so pop() returned 0.0 for every movie and browse fell back to movie_id
order β surfacing obscure, artless titles first. Rebuilt seed: 3706
movies now carry real Bayesian popularity and the top pages are popular,
poster-backed titles.
chore(seed): embed ALS item factors + item-sim mapsβ
Seed v2 carries 3706x50 float32 factors and 3706 similarity maps so the
lite re-ranker and /movies/{id} similar-titles work without Spark.
Rebuilt via scripts/build_seed.py (3.3 MB gz).
feat: CineMatch Lite β single-container HF Space demo (FastAPI + SQLite)β
Same HTTP contract as the full stack on main, served from one SQLite file:
/recommend with 3-layer fallback, /simulate promoting the ALS baseline,
catalogue browse/search, genres, stats, events feed, Prometheus metrics,
WebSocket keep-alive and the static React build.
No Kafka, Spark, Redis or Postgres β everything HF Spaces free tier
supports reliably. Seed restore gives a ~0.1 s cold start; retraining
from scratch via python -m app.bootstrap_lite needs PySpark + JVM.