Bug 1: When a tool stalls longer than idle_timeout, the watchdog notifies but falls through to detectWorkingTreeActivity(), which resets lastProgressAt when files were modified earlier in the task. Recovery is never called — the session burns tokens indefinitely. Fix: Add stalledToolDetected flag + clearInFlightTools() call. The filesystem-activity check is guarded by !stalledToolDetected so it cannot override the stall verdict. Bug 2: After async recoverTimedOutUnit(), pauseAuto/stopAuto may set s.currentUnit = null during the await, but the next line accesses s.currentUnit.startedAt without a null guard — crash. Fix: Add null guard for s.currentUnit after the recovery call. Closes #2527 |
||
|---|---|---|
| .. | ||
| agents | ||
| extensions | ||
| skills | ||
| GSD-WORKFLOW.md | ||