diff options
Diffstat (limited to 'subagents')
| -rw-r--r-- | subagents/workflow.lua | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/subagents/workflow.lua b/subagents/workflow.lua index ff534cb..28a76a6 100644 --- a/subagents/workflow.lua +++ b/subagents/workflow.lua @@ -760,7 +760,17 @@ local function notify(record) local submitted = pcall(primary.submit, primary, string.format( "[subagents] Workflow %s %s. Inspect subagents.workflows[%q] with subagents.lua.", record.id, record.status, record.id)) - if submitted then emit("agent_submission") end + if not submitted then return end + + -- Completion runs inside a host callback. Let it unwind before asking the + -- TUI to drain the queued submission; synchronous dispatch can observe a + -- transient busy state and leave that submission parked until another turn. + local timer = uv.new_timer() + timer:start(0, 0, function() + timer:stop() + timer:close() + emit("agent_submission") + end) end local function finish_workflow(record, status, result, err) |
