Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

StreamProcessor discards metadata from REASONING_MESSAGE_START

Abierto
#1,667 0 comentarios 0 reacciones 1 asignado Ver en GitHub

Los mantenedores suelen responder en 1 día

@tombeckenham ya está trabajando en esto.

Desde el 9/10/2026.

Evaluación

Este issue todavía no se ha evaluado.

Descripción

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.
Lenguaje dominante
TypeScript
Estrellas
3.2k
Forks
361
Merge medio
1 d 15 h
PR fusionados (30 d)
210

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de TanStack/ai

Todos los issues de TanStack/ai

Issues similares

Más issues de TypeScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.