Outbound A2A: consume streaming responses via SendStreamingMessageAsync#273
Merged
rockfordlhotka merged 3 commits intomainfrom Apr 14, 2026
Merged
Outbound A2A: consume streaming responses via SendStreamingMessageAsync#273rockfordlhotka merged 3 commits intomainfrom
rockfordlhotka merged 3 commits intomainfrom
Conversation
When a remote A2A v1 agent advertises capabilities.streaming: true, the outbound dispatcher now uses SendStreamingMessageAsync to consume SSE events in real time instead of polling with GetTask + exponential backoff. This eliminates polling latency and forwards intermediate status updates to the user immediately. - Add SupportsStreaming (bool?) to AgentCard - Extract capabilities.streaming from v1 agent card during detection - Add DispatchV1StreamingAsync with full InputRequired follow-up support - Fall back to polling if streaming throws - Add StreamingEvents counter and transport tags for observability - Surface supportsStreaming in get_agent_details output - 7 new unit tests for MapV1StatusUpdateEvent Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
New scenario exercises the same streaming event processing path that DispatchV1StreamingAsync uses: fetches the agent card to verify capabilities.streaming is advertised, sends a streaming request, classifies each SSE event by PayloadCase, verifies contextId consistency across events, and validates the terminal event contains text content. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Remove unused 'publisher' parameter from InputRequiredHandler - Add null-conditional operators for PushNotificationConfig access - Add null-forgiving operators after null assertions in integration tests - Fix possible null dereference in RockBotTaskHandlerTests.ExtractText Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
SupportsStreaming(bool?) toAgentCardfor tracking remote agent streaming capabilitycapabilities.streamingfrom v1 agent card JSON during protocol auto-detection inRegisterAgentExecutorDispatchV1StreamingAsynctoInvokeAgentExecutor— consumesIAsyncEnumerable<StreamResponse>via SSE, forwardingStatusUpdateevents as real-time progress updates instead of polling with exponential backoffStreamingEventscounter andtransporttag to diagnostics for observabilitysupportsStreaminginget_agent_detailstool outputTest plan
MapV1StatusUpdateEventtests)capabilities.streaming: true)Closes #270
🤖 Generated with Claude Code