Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

StreamProcessor discards metadata from REASONING_MESSAGE_START

Đang mở
#1,667 0 bình luận 0 reaction 1 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

@tombeckenham đang làm issue này rồi.

Từ ngày 9/10/2026.

Đánh giá

Issue này chưa được đánh giá.

Mô tả

waiting-on: maintainer
TanStack AI version

@tanstack/ai 0.66.0, installed from npm in an isolated directory.
The same behavior also occurs on main commit 96191eafee12040c78f849fe7d47220f64591684.

Framework/Library version

Node.js 26.6.0, with a bare StreamProcessor.
The reproduction does not need React, a provider, or an API key.

Describe the bug and the steps to reproduce it

Custom metadata on REASONING_MESSAGE_START does not survive conversion into a UIMessage.
The thinking text appears, but the resulting message has no metadata.

The reproduction uses one root run.
It compares the same metadata on two events:

  • On REASONING_MESSAGE_START: the metadata is lost.
  • On REASONING_MESSAGE_CONTENT: the metadata is preserved.

Expected

The metadata remains available after processing the reasoning stream, consistently with the content-event case.

Actual

UIMessage.metadata is undefined when only the start event carries the metadata.

Steps

  1. Download the files from the reproduction gist.
  2. Run npm install --ignore-scripts --no-audit --no-fund.
  3. Run npm run metadata.

The script first checks the content-event control.
That check passes.
The assertion for the start event then fails:

Metadata on START: undefined
Metadata on CONTENT: { source: 'reasoning', traceId: 'trace-1' }
AssertionError [ERR_ASSERTION]: Metadata on reasoning start is lost

Source

The dispatcher ignores REASONING_MESSAGE_START.
The content handler only merges metadata from the content event.

Please clarify the intended destination for reasoning-start metadata: the owning UIMessage or its ThinkingPart.
At present, neither exposes it.

Related issue

#1533 concerns reasoning ownership across different messages.
This report isolates metadata loss in one run.
Our local workaround copies the metadata onto reasoning content events.

Your Minimal, Reproducible Example - (Sandbox Highly Recommended)

Complete runnable reproduction: metadata.mjs, package.json, and instructions

The package version is pinned to 0.66.0.
The second script in the gist provides an additional reproduction for #1533.

Screenshots or Videos (Optional)

No screenshot is needed for this framework-independent reproduction.

Do you intend to try to help solve this bug with your own PR?

Maybe, I'll investigate and start debugging.

No PR accompanies this report.

Terms & Code of Conduct
  • I agree to follow this project's Code of Conduct.
  • I understand that if my bug cannot be reliably reproduced in a debuggable environment, it will probably not be fixed and this issue may even be closed.
Ngôn ngữ chính
TypeScript
Star
3.2k
Fork
361
Merge trung bình
1 ngày 15 giờ
Pull request đã merge (30 ngày)
210

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của TanStack/ai

Tất cả issue của TanStack/ai

Issue tương tự

Thêm issue về TypeScript

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.