Composer: Queue never reaches the agent, and Redirect stops it and fails the step #29
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
The composer's two verbs do not reach the agent.
human.queue_promptand nothing delivers it.What happened (production, soundcheck run
run_01M2HF4SNRBVJ6TA8ZX11T2Z4H,openspec.apply[1])npm test 2>&1 | tail -30human.queue_prompt"how are the unit tests?" (never reaches opencode: no user message follows)human.redirect"status of the unit test suite?"oc.session.errorMessageAbortedError, thensession.idleosf.step.failedpredicate_failed "group 1: 0/2 done"; groups 2–4 skipped, run failedThe redirect's prompt was never sent.
Cause
AgentExecutor.queue_prompt()andAgentExecutor.redirect()(src/osf/engine/executors.py) exist, but nothing calls them:step_prompt,step_queueandstep_redirectonly append the human event.human.redirecttoCancelIntent.INTERRUPTin_CANCEL_INTENTS, so Redirect is exactly Stop. The executor's wait loop returns ABORTED,_finishchecks the completion predicate, and the step fails.human.queue_prompt: it is read by nothing but boot recovery's "undelivered prompts" count, which already expects an executor to deliver it and writeadmit_prompt.Also seen, not a Braid bug
The agent looked stuck because soundcheck's
vitest runtakes 5–12 s per test in the production container (events.test.ts alone took 102 s).| tail -30hid all progress until exit. Worth a separate look at the VM's CPU and PGlite start-up cost.Done when
human.queue_promptfor a running agent step is delivered to its session (prompt_async, anadmit_promptoperation with the same message id) without appending another human event.human.redirectaborts the turn, then sends the text, and the step keeps running: its wait loop never ends the step on the redirect's own abort, and nothing marks the step interrupted.Shipped in
acbc533and2ca5a7c, change archived as2026-09-26-composer-verbs-reach-the-agent(2334877), live in production (4f19d6f).Verified in production on run
run_01M3F8PTF3EWBCB721BP869E9N(soundcheck#32,minimalist), duringopenspec.propose.proposal:human.queue_prompt(seq 54114) was followed by opencode recording it asoc.message.user(54117), and the agent carried on.human.redirect(54187) aborted the turn (MessageAbortedError, 54188), was delivered asoc.message.user(54196), and the step stayedrunningon attempt 1.