Skip to content

v0.6.4

Choose a tag to compare

@danieliser danieliser released this 20 Mar 22:38
· 126 commits to main since this release

Bug Fix

Docker batch chats stuck in "running" after turn completion (#7)

Chat sessions spawn with Interactive=true, so the agent process stays alive between turns waiting for input. The session watcher only transitioned chats to idle on process exit (terminal state), which never happens for interactive sessions. After the first turn completes, the chat is permanently stuck in "running" — follow-up messages eventually hit 429 "chat busy".

Fix

watchSessionLoop now calls handleSessionExit on result events (turn completion), not just on process exit. The old interactive session is killed after transitioning to idle or respawning with a pending message. The ticker remains as a safety net for crashes/disconnects.

Multi-message cycle now works reliably

POST /chats/test/messages  {"message":"Hi"}   → spawns session 1 → result → idle
POST /chats/test/messages  {"message":"Bye"}  → spawns session 2 (with resume) → result → idle
POST /chats/test/messages  {"message":"Again"} → spawns session 3 (with resume) → works ✓

Each turn spawns a fresh session with --resume wired from the previous turn's Claude session ID.