- runAgentSession gains an inactivity watchdog (execution.inactivityTimeoutMs,
default 0 = off): when no session event arrives within the window, the
session is aborted (agent abort + bash subprocess kill) with a clear
"inactivity timeout" error
- agent sessions persist to .ralpi/sessions/*.jsonl; resume reopens the
JSONL via SessionManager.open so an interrupted task continues with its
prior conversation instead of restarting from scratch
- progress.json tracks sessionFile per task (persisted at session creation,
so kill/reload mid-run is resumable); the first attempt after resume
reuses it, failover retries stay fresh; corrupt/missing files fall back
to a fresh session with a warning
- bump version to 0.6.0
The resume prompt counted total/completed from progress.tasks, which only
records TOUCHED tasks (started/completed/failed) — never-started tasks were
silently missing, and file-checkbox completions weren't counted unless
markCompleted had run. With e.g. 10 tasks where 3 completed and 5 untouched,
it showed 3/5 done instead of 3/10 done.
- add countPRDResumeStats (src/utils.ts): total from parseTaskFile of the
PRD source; completed = progress completions ∪ PRD checkbox completions,
deduped by task id; failed from progress. Falls back to touched-task
counts when the source file is missing/unparseable.
- selectPRDToResume (index.ts) uses the helper instead of Object.keys().
- tests/resume-stats.test.ts: 4 regression tests.
Includes pre-existing uncommitted changes: index.ts tab-reformat (matches
src/ style) and package.json version bump 0.4.2 -> 0.4.3.
- DAG-based task execution with dependency resolution
- Persistent progress tracking in .ralph/progress.json
- Reflection system for cross-task context
- Support for Fio README, checkbox, and YAML formats
- Retry with exponential backoff
- Parallel batch execution