Skip to content

Commit e669dd0

Browse files
authored
Merge pull request #2294 from dgageot/board/fix-docker-agent-issue-2255-root-cause-90dcf967
Fix TUI stuck in Working state after failed sub-agent transfer_task
2 parents 7ca61b9 + 2ef154a commit e669dd0

1 file changed

Lines changed: 7 additions & 1 deletion

File tree

pkg/runtime/agent_delegation.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,9 +125,15 @@ func newSubSession(parent *session.Session, cfg SubSessionConfig, childAgent *ag
125125
// This is the "interactive" path used by transfer_task where the parent agent
126126
// loop is blocked while the child executes.
127127
func (r *LocalRuntime) runSubSessionForwarding(ctx context.Context, parent, child *session.Session, span trace.Span, evts chan Event, callerAgent string) (*tools.ToolCallResult, error) {
128-
for event := range r.RunStream(ctx, child) {
128+
childEvents := r.RunStream(ctx, child)
129+
for event := range childEvents {
129130
evts <- event
130131
if errEvent, ok := event.(*ErrorEvent); ok {
132+
// Drain remaining events (including StreamStoppedEvent) so the
133+
// TUI's streamDepth counter stays balanced.
134+
for remaining := range childEvents {
135+
evts <- remaining
136+
}
131137
span.RecordError(fmt.Errorf("%s", errEvent.Error))
132138
span.SetStatus(codes.Error, "sub-session error")
133139
return nil, fmt.Errorf("%s", errEvent.Error)

0 commit comments

Comments
 (0)