scholarr/app
Justin Visser 4620978dce feat(ingestion,frontend): add live scholar progress counter to dashboard
Emit scholar_progress SSE events during two-pass ingestion so the
Activity Monitor shows "X / N visited · Y finished · Z new publications"
in real time instead of static post-run counts.

- scholar_processing: add on_progress callback to _run_first_pass and
  _run_depth_pass; build _emit closure in run_scholar_iteration that
  publishes visited/finished/total via run_events; batch-emit scholars
  finished in first pass before depth pass; skip emission on abort/cancel
- run_status store: add scholarProgress state, reset on stream open and
  reset(); subscribe to scholar_progress SSE events with safe parsing
- DashboardPage: show live counter during run, fall back to static text
  when run is not active or no progress received yet

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-03 17:36:43 +01:00
..
api fix(db,frontend): reserve DB connections for API and reduce frontend polling 2026-03-02 19:09:06 +01:00
auth Initial release prep 2026-02-27 10:46:05 +01:00
db fix(db,frontend): reserve DB connections for API and reduce frontend polling 2026-03-02 19:09:06 +01:00
http after audit 2026-03-01 18:14:22 +01:00
security after audit 2026-03-01 18:14:22 +01:00
services feat(ingestion,frontend): add live scholar progress counter to dashboard 2026-03-03 17:36:43 +01:00
__init__.py First product 2026-02-17 14:51:25 +01:00
logging_config.py ci: add ruff linting and mypy type checking 2026-02-26 22:11:41 +01:00
logging_context.py ci: add ruff linting and mypy type checking 2026-02-26 22:11:41 +01:00
logging_utils.py refactor: add structured_log utility to eliminate logging boilerplate 2026-02-26 21:31:32 +01:00
main.py Bugfixeds 2026-03-01 22:54:23 +01:00
settings.py fix(db,frontend): reserve DB connections for API and reduce frontend polling 2026-03-02 19:09:06 +01:00