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
{{ message }}
Repository navigation
A message from another thread cancels the agent's pending question (AskUserQuestion) before the person sees it #119
An agent's pending question to the person disappears before they see it when another thread's message arrives in the same thread. Here the agent is Claude via AskUserQuestion, with T3 showing it as a pending user-input request.
On 2026-10-24, in one Claude Code thread that coordinates several others, the agent asked the person five times with AskUserQuestion. Each time a message from another thread arrived through t3 thread send / the MCP t3_thread_send while the question was pending, and the tool call returned Tool permission request aborted. The person never saw those questions and asked afterwards why they had missed requests. The agent had to fall back to text, which is what root decision 0211 wants to avoid. A question asked while no message arrived came through and was answered normally.
Why it happens (reading the code at v0.1.1-lazurio.2)
ClaudeAdapterV2.ts resolves a pending AskUserQuestion with the person's answers, or with deny ("User cancelled tool execution.") when the SDK's callbackOptions.signal aborts (around L8785–8806). A message sent with mode: auto steers into a fully active turn. Steering a new user message into the turn appears to abort the SDK's pending permission callback, and with it the question. The thread looks busy, and the person's notification is gone.
Expected
A message that arrives while the thread's turn waits on the person's answer to a question does not cancel that question. Possible approaches:
In auto, a turn with a pending user-input request counts as not steerable, so the message queues behind it. The question stays, and the message runs after the answer.
Or the steer is held until the pending request is answered or dismissed by the person.
An explicit steer or restart from the person may still interrupt, as today.
Why it matters
Lazurio's agents ask through the question tool so that the person gets a notification in T3 Code (root decision 0211 and its addendum of 2026-10-24). Coordinating threads receive messages from other threads all the time, and every such message silently cancels the question.
Activity
fix(server): a message sent in auto mode queues while the turn waits …
release: row 30 on the allowlist and in the runbook
fix(server): a message sent in auto mode queues while the turn waits …
fix(server): a steer waits behind a turn that waits on the person
release: the steer guard and the one-time steer migration in the runbook
fix(server): a steer waits behind a turn that waits on the person
fix(server): a steer waits behind a turn that waits on the person
fix(server): a steer waits behind a turn that waits on the person
fix(server): a steer waits behind a turn that waits on the person
fix(server): a steer waits behind a turn that waits on the person
fix(server): a steer waits behind a turn that waits on the person
fix(server): a steer waits behind a turn that waits on the person