Skip to content

feat(a2a): support streaming message output for Task and TaskStatusUpdateEvent#901

Open
JonXSnow wants to merge 1 commit into
release/a2a/v0.0.1-alpha.12from
release/a2a/v0.0.1-alpha.13
Open

feat(a2a): support streaming message output for Task and TaskStatusUpdateEvent#901
JonXSnow wants to merge 1 commit into
release/a2a/v0.0.1-alpha.12from
release/a2a/v0.0.1-alpha.13

Conversation

@JonXSnow

@JonXSnow JonXSnow commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

Previously, Task and TaskStatusUpdateEvent always emitted complete messages directly, even in streaming mode. This caused the consumer to receive disjointed individual messages instead of a continuous stream when the server sends incremental status updates for the same task.

Now in streaming mode, messages from Task and TaskStatusUpdateEvent are grouped by ID (preferring message.MessageID, falling back to TaskID) and delivered as a MessageStream via schema.Pipe — consistent with how chunked event.Message is already handled.

Key changes:

  • Add streaming field and IsStreaming() method to ResponseUnionReceiver so the output convertor can detect streaming mode.
  • Add isTerminalTaskState() helper to determine final state for Task events (completed/failed/canceled/rejected).
  • Refactor defaultOutputConvertor into smaller focused functions: handleMessageEvent, handleTaskEvent, handleTaskStatusUpdateEvent.

@github-actions

github-actions Bot commented Jul 3, 2026

Copy link
Copy Markdown

Need to create a new tag

The following modules have changes and may need version updates:

  • a2a (Current: a2a/v0.0.1-alpha.12)

⚠️ Please create and push new version tags for these modules after merging this PR.

@JonXSnow
JonXSnow force-pushed the release/a2a/v0.0.1-alpha.13 branch from da02af8 to aa918f9 Compare July 3, 2026 10:08
@github-actions

github-actions Bot commented Jul 3, 2026

Copy link
Copy Markdown

Need to create a new tag

The following modules have changes and may need version updates:

  • a2a (Current: a2a/v0.0.1-alpha.12)

⚠️ Please create and push new version tags for these modules after merging this PR.

@JonXSnow
JonXSnow force-pushed the release/a2a/v0.0.1-alpha.13 branch from aa918f9 to 5352525 Compare July 3, 2026 10:11
@github-actions

github-actions Bot commented Jul 3, 2026

Copy link
Copy Markdown

Need to create a new tag

The following modules have changes and may need version updates:

  • a2a (Current: a2a/v0.0.1-alpha.12)

⚠️ Please create and push new version tags for these modules after merging this PR.

…dateEvent

Previously, Task and TaskStatusUpdateEvent always emitted complete
messages directly, even in streaming mode. This caused the consumer
to receive disjointed individual messages instead of a continuous
stream when the server sends incremental status updates for the same
task.

Now in streaming mode, messages from Task and TaskStatusUpdateEvent
are grouped by ID (preferring message.MessageID, falling back to
TaskID) and delivered as a MessageStream via schema.Pipe — consistent
with how chunked event.Message is already handled.

Key changes:
- Add `streaming` field and `IsStreaming()` method to
  ResponseUnionReceiver so the output convertor can detect streaming
  mode.
- Add `isTerminalTaskState()` helper to determine final state for
  Task events (completed/failed/canceled/rejected).
- Refactor defaultOutputConvertor into smaller focused functions:
  handleMessageEvent, handleTaskEvent, handleTaskStatusUpdateEvent.
@JonXSnow
JonXSnow force-pushed the release/a2a/v0.0.1-alpha.13 branch from 5352525 to 23af5d1 Compare July 3, 2026 10:16
@github-actions

github-actions Bot commented Jul 3, 2026

Copy link
Copy Markdown

Need to create a new tag

The following modules have changes and may need version updates:

  • components/model/agenticdeepseek (Current: components/model/agenticdeepseek/v0.1.0-beta.1)

  • components/model/agenticqwen (Current: components/model/agenticqwen/v0.1.0-beta.1)

  • a2a (Current: a2a/v0.0.1-alpha.12)

⚠️ Please create and push new version tags for these modules after merging this PR.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant