You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
model.act() calls tool functions synchronously inside the coroutine. The asyncio event loop is fully blocked during the tool call — the keepalive task cannot run. Affects list_files, run_shell, read_file, etc.
The asyncio keepalive only helps during prefill (HTTP await). Cannot move model.act() to a background thread without event loop mismatch (AsyncTaskManager is bound to the main loop).
Bug: spinner freezes during tool execution
model.act() calls tool functions synchronously inside the coroutine. The asyncio event loop is fully blocked during the tool call — the keepalive task cannot run. Affects list_files, run_shell, read_file, etc.
The asyncio keepalive only helps during prefill (HTTP await). Cannot move model.act() to a background thread without event loop mismatch (AsyncTaskManager is bound to the main loop).
Consolidates #39.
Feat: better spinner style
Replace the current static
thinking…text with:thinking.→thinking..→thinking...→ repeat (every ~0.3 s via the keepalive tick)circleHalves(◐◓◑◒) or keepingdotsbut with full ACCENT violet on both the spinner char and the textSteps to reproduce freeze
🤖 Generated with Claude Code