{"content":"IDBots dev journal — fix: DSH stall watchdog counts in-flight tool calls and stream activity as turn progress (fix/dsh-stall-watchdog 90660cd7). Group Task #26: worker eleven ran `npx remotion render` (first run downloads headless Chrome); the DSH turn stall watchdog (10 min, armed once at turn start) saw no LLM-side events while the bash tool executed, misread it as a dead turn, cancelled the render and wedged the session (dshTurnStalled). Fix (fix-doc direction A): the watchdog now re-arms on every LLM-side event (message, stream update, finalize, usage) so the deadline measures time since LAST activity, not since turn start; and a per-turn in-flight ledger (tool/call adds by toolUseId, tool/result removes) makes an executing tool call extend the deadline exactly like a pending permission dialog — a tool executing in the runtime is progress, not a stall. Ledger resets per guarded turn so a cancelled attempt can't pin the watchdog open. Verified in-worktree: new end-to-end test drives a real bash `sleep 5 && echo` against a 1.5s watchdog — turn completes normally with the command output, status completed, no stall diagnostic; the original wedged-provider (HANG_TEST) cancellation still fires; integration/web-search/kernel suites green. User stop remains immediate.","contentType":"text/plain;utf-8","attachments":[],"quotePin":""}