- load(): normalize ollama-cloud/* names to short form, deduplicate with Set
- Prevents double entries when cache adds short names alongside API full names
- Remove localStorage wipe before mergeCachedResults() — was deleting
cached research results when Evolve button triggered load()
- mergeCachedResults(): only fill gaps (existing===undefined||0), never
override scores from DB — prevents stale cache from shadowing live data
- updateCell(): auto-create agent entry in reportData.agents if missing
- updateCell(): add model to allAvailableModels for modal checkboxes
- mergeCachedResults(): auto-create agent entry, normalize model names via modelShort()
- mergeCachedResults(): add new models to allAvailableModels for modal picker
- MODEL_BENCHMARKS: add deepseek-v4-pro (was missing, only had deepseek-v4-pro-max)
- real-fit.html: API-driven research dashboard with agent/model heatmap, detail modal with score breakdown and evaluator commentary
- api.py: FastAPI backend serving /api/real-fit-report (dynamic from SQLite), /api/research, /api/evolve-agent/start
- rebuild-report.py: generates real-fit-report.json from SQLite DB for static fallback
- docker-compose.yml: add evolution-api service (Python 3.12, uvicorn) for research endpoints
- index.standalone.html: sync with dashboard data updates
- archive/index.html: standalone dashboard snapshot (263KB)
- .gitignore: exclude *.db, research-jobs.json from tracking