StreamProcessor drops TEXT_MESSAGE_CHUNK events without a warning
メンテナーはふだん 1 日以内に返信
@AlemTuzlak がすでに取り組んでいます。
2026年9月27日 から。
評価
この issue はまだ評価されていません。
説明
TanStack AI version
v0.61.0
Framework/Library version
React v19.2.0
Describe the bug and the steps to reproduce it
StreamProcessor has no handler for TEXT_MESSAGE_CHUNK. The event reaches
the default branch of processChunk and the processor drops it. There is no
warning.
AG-UI defines TEXT_MESSAGE_CHUNK as a short form of the
TEXT_MESSAGE_START / TEXT_MESSAGE_CONTENT / TEXT_MESSAGE_END triad. A
server can send one chunk event instead of three events. The AG-UI spec gives
the expansion job to the client stream transformer.
Two parts of this repository say that the event is supported:
packages/ai/src/types.tsdeclaresTextMessageChunkEventand puts it in
theAGUIEventunion. That union is the exportedStreamChunktype.packages/ai/src/utilities/spec-event-keys.tsgives the event an allowlist
entry, sostripToSpeckeepsmessageId,role,delta, andmetadata
at the top level.
The runtime does not match this. TOOL_CALL_CHUNK and
REASONING_MESSAGE_CHUNK have the same problem.
Steps to reproduce
live:
https://codesandbox.io/p/sandbox/hvf3mx
Open the sandbox. It needs no API key and makes no network calls. The AG-UI
events are constants in src/App.js.
- Build a
StreamProcessor. - Send
RUN_STARTED, then oneTEXT_MESSAGE_CHUNKwith amessageId, a
delta, and ametadata.error, thenRUN_ERROR. - Read
processor.getMessages(). - Do the same again with the explicit triad in place of the chunk event.
Result
The chunk event loses three things that the triad keeps:
| The server sent this, and the client | TEXT_MESSAGE_CHUNK | START / CONTENT / END |
|---|---|---|
shows the text "the run failed" |
lost | yes |
keeps the message id "msg-1" |
lost | yes |
keeps metadata.error |
lost | yes |
The assistant message is not absent. It is empty, and it has a new id:
[{ "id": "msg-1790507900666-2mxf4p", "role": "assistant", "parts": [] }]
RUN_ERROR created that message. The id msg-1 from the server is gone, so a
later event that uses msg-1 cannot find the message.
Expected result
Both forms describe the same turn. Both must produce the same message.
Notes
MESSAGES_SNAPSHOT is a plain messages[], so a reload of a saved thread
shows the correct text. The fault is visible only during a live run. A unit
test that sends the triad cannot find this fault.
processChunk already has the three handlers that an expansion needs. A
case per chunk event can call them, hold the open message id, and close the
message when the id changes or when finalizeStream runs.
Related: #1465 tried this and closed without a merge. #1460 added the AG-UI 1.0
types and left the runtime out of scope.
Your Minimal, Reproducible Example - (Sandbox Highly Recommended)
https://codesandbox.io/p/sandbox/hvf3mx
Screenshots or Videos (Optional)
Do you intend to try to help solve this bug with your own PR?
None
Terms & Code of Conduct
- I agree to follow this project's Code of Conduct
- I understand that if my bug cannot be reliable reproduced in a debuggable environment, it will probably not be fixed and this issue may even be closed.
- 主要言語
- TypeScript
- スター
- 3.1k
- フォーク
- 340
- 平均マージ
- 2日 10時間
- マージ済み PR(30日)
- 174
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
TanStack/ai のほかの issue
-
StreamProcessor ignores the stream's message ids and files agent-loop calls on the wrong assistant message対応中かも @tombeckenham が今日担当しました。 オープンwaiting-on: maintainer
メンテナーはふだん 1 日以内に返信
-
feat(ai): add a timeout option to chat(), matching the media activities対応中かも @AlemTuzlak が 1 日前に担当しました。 オープンwaiting-on: maintainer
メンテナーはふだん 1 日以内に返信
-
Does a hosted provider package have to carry a key?対応中かも @AlemTuzlak が 2 日前に担当しました。 オープンwaiting-on: author
TanStack/ai#1506 · コメント 1 件 · 担当者 1 名 ·
メンテナーはふだん 1 日以内に返信
-
Client tools never execute against spec-compliant AG-UI servers (plain `success` RUN_FINISHED)対応中かも @jherr が 4 日前に担当しました。 オープンwaiting-on: maintainer
TanStack/ai#1464 · リアクション 1 件 · 担当者 1 名 ·
メンテナーはふだん 1 日以内に返信
-
Add ai to awesome-ai-plugins?対応中かも @tombeckenham が 10 日前に担当しました。 オープンwaiting-on: maintainer
メンテナーはふだん 1 日以内に返信
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
rohitg00/agentmemory#1428 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 86/100
boxlite-ai/boxlite#1729 ·
メンテナーはふだん 1 日以内に返信
-
detectors enhancement good first issue
難易度 2/5 1〜3時間 初心者へのやさしさ 86/100
SM260845/readme-gen#1 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
angular/angularfire#3774 ·
メンテナーはふだん 2 日以内に返信