feat: hang detection and resumable task sessions
Some checks failed
port-to-omp / port (push) Failing after 4s

- 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
This commit is contained in:
2026-08-12 12:55:44 -04:00
parent c2525a6411
commit 100262b94f
6 changed files with 162 additions and 4 deletions

View File

@@ -124,6 +124,9 @@ Key config fields in `execution`:
- `autoCommit` / `autoReview` / `saveReviews` — loop options (selectable at
loop startup via `selectLoopOptions`; review is asked FIRST, commit is
mandated when review is on)
- `inactivityTimeoutMs` — hang detection: if no agent session event arrives
within this window (e.g. a bash subprocess that never returns), the task is
aborted (agent abort + bash subprocess kill). `0` = disabled (default)
- `models` — slot-aware round-robin model list for parallel mode, with
failover to the next model per task (only after exhausting same-model
retries, see `maxSameModelAttempts`)