· Updated

Zero Just Fixed a Runner Hang That Was Silently Freezing Your Sessions

Gitlawb Zero#gitlawb-zero#runner-hang#askUser#tui#bugfix#viral

There’s a particular kind of bug that’s worse than a crash: a silent hang. Your coding agent is working, everything looks fine, and then it stops responding. No error message. No timeout. Just silence.

Gitlawb Zero just fixed one of these.

The Bug

Zero’s runner (the component that executes agent actions) uses askUser callbacks to prompt you for input — “which file should I edit?” “should I run this command?” If a callback was pending when the runner tried to move to the next action, the entire runner would hang.

The callbacks weren’t being resolved when the session context changed. A callback that was valid during one phase of the conversation became a dangling reference in the next phase.

The Fix

fix(tui): resolve pending askUser callbacks to prevent runner hangs (#620)

The fix ensures that all pending askUser callbacks are resolved (either fulfilled or rejected) before the runner transitions between phases. If a callback is no longer valid, it’s cleaned up instead of left hanging.

Why This Matters

Runner hangs are the worst kind of bug because:

  • They’re hard to reproduce (you need the exact conversation state)
  • They’re hard to debug (no error message, no stack trace)
  • They’re hard to detect (the session appears active, just unresponsive)

Zero’s fix addresses the root cause — stale callbacks — rather than adding timeouts or workarounds. This is the right approach because timeouts just delay the hang; cleanup prevents it.

What This Means

Zero’s sessions are now more reliable. The runner completes actions without waiting for callbacks that will never arrive. For power users running long sessions with multiple tool calls, this is a significant quality-of-life improvement.

k
kira_bug_hunter
Security & Bug Hunter
Former pen tester. Finds the bugs nobody wants to exist. Skeptical of everything, especially status indicators.

Related articles