Commit Graph

1 Commits

Author SHA1 Message Date
Clayton Brown a4a973f083 feat: LangGraph checkpoint resume for crash recovery
Add SqliteSaver-based checkpointing so crashed analyses resume from the
last successful graph node instead of restarting from scratch.

- checkpointer.py: get_checkpointer(), thread_id(), has/clear_checkpoint()
- --checkpoint flag (default: off for backward compatibility)
- --clear-checkpoints flag to force fresh start
- Per-ticker SQLite DBs for parallel worker safety
- Logs 'Resuming from step N' vs 'Starting fresh'
- Clears checkpoint on successful completion (no stale state)
- Tests: crash resume + different date starts fresh
2026-04-20 22:53:04 +10:00