Why:
- Compare is the wrong surface for two-stage family selection over the 10-doc set.
Changes:
- Add the Decision Tab; raise GET /experiments default/max so the board can load the grid client-side.
Impact:
- Operators pick fixed_size ±N vs semantic@Boundary from existing Experiments.
Co-authored-by: Cursor <cursoragent@cursor.com>
Why:
- Different Embedding Models must not share Qdrant collections; Admin needs persisted role defaults and Experiment provenance.
Changes:
- Scope collection names by model id; add app_settings, embedding provenance columns, and queries.expansion_tree.
Impact:
- Process/query write only Model Corpus collections; legacy unscoped names are read-only for Admin labeling.
Co-authored-by: Cursor <cursoragent@cursor.com>
Why:
- Dashboard needs system health, Qdrant management, chunk preview, questions, and cost estimation endpoints
Changes:
- Add admin router with 11 endpoints (health, Qdrant CRUD, chunk preview, questions management, cost estimation)
- Add delete_experiment to SQLite storage
- Mount admin router and dashboard static files at /app
Impact:
- New /admin/* API routes available
- Dashboard served at /app/ via StaticFiles