v1.5.1 — UX, Chunked Generation, CI
What's new
Cleaner controls layout
Action buttons (Profile, Run, Quick, Clear) on the left. Date range, language, and idea count on the right. First-time users see primary actions immediately.
Chunked idea generation
Large requests split into batches of 3 per LLM call. If one batch fails (truncated JSON), remaining batches still succeed. No more lost ideas from a single malformed response.
Cache expiry
Papers older than 7 days auto-pruned from cache. Configurable via \eatures.cache_expiry_days\ in config.yaml.
Feature flags
Centralized in config.yaml:
All overridable via env vars (\SCOUT_REFINE=1, etc).
CI/CD
GitHub Actions on every push/PR:
- Python 3.10 / 3.11 / 3.12 matrix
- pytest + npm test
- Node.js 22
Bug fixes
- Deep Dive modal no longer appears on page refresh
- Structural tests updated to match actual code
Upgrade
git pull origin main
pip install -e .
No config changes required. Existing config.yaml works as-is.
Full Changelog: https://github.com/neej4/ScholarScout/blob/main/CHANGELOG.md