…chat
When an agent node (agent/deep_agent) is terminal (no downstream
executable nodes) and the workflow has no explicit reply_chat node,
promote its output to state["output"] so _extract_output() → deliver()
sends the response back via the gateway.
This fixes the E2E chat round-trip for the default-agent workflow,
which has no reply_chat node but should still reply to the user.
Constraint: Only agent-type nodes trigger auto-reply — other terminal
nodes (switch, code, etc.) do not produce user-facing responses
Rejected: Add reply_chat to every workflow template | couples template
design to delivery mechanism
Confidence: high
Scope-risk: narrow
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Summary
reply_chatnode, auto-promote its output tostate["output"]sodeliver()sends the chat response via the gatewaydefault-agentworkflow (noreply_chatneeded for standalone chat agents)reply_chator have downstream nodes after the agentDesign
[chat] → [agent](terminal, no reply_chat)[chat] → [agent] → [switch] → ...(not terminal)[chat] → [agent] → [reply_chat](explicit)Test plan
🤖 Generated with Claude Code