Skip to content

ci: Version Packages#608

Open
github-actions[bot] wants to merge 1 commit into
mainfrom
changeset-release/main
Open

ci: Version Packages#608
github-actions[bot] wants to merge 1 commit into
mainfrom
changeset-release/main

Conversation

@github-actions
Copy link
Copy Markdown
Contributor

@github-actions github-actions Bot commented May 21, 2026

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.

Releases

@tanstack/ai@0.21.0

Minor Changes

  • Middleware now wraps the final structured-output provider call in chat({ outputSchema }) (both Promise and streaming variants). Closes chat({ outputSchema }) runs final structured output request outside middleware #390. (#600)

    New public surface:

    • ChatMiddlewarePhase gains a 'structuredOutput' value, set on ChatMiddlewareContext for the duration of the final structured-output adapter call.
    • New optional ChatMiddleware.onStructuredOutputConfig hook receives a StructuredOutputMiddlewareConfig (including the JSON Schema being sent to the provider) and can return a partial to transform the config before the final call.
    • New exported type StructuredOutputMiddlewareConfig extends ChatMiddlewareConfig with outputSchema: JSONSchema.

    Behavior change for existing middleware:

    • onChunk now observes chunks from the final structured-output call. Phase-aware middleware can branch on ctx.phase === 'structuredOutput' to opt out: if (ctx.phase === 'structuredOutput') return.
    • onFinish fires once at the end of the whole chat() invocation, after finalization completes — not after the agent loop.
    • onFinish.info reflects the agent loop's terminal state only. info.usage / info.finishReason / info.content do not include the final structured-output adapter call. To observe finalization tokens, use onUsage (fires for both agent-loop and finalization RUN_FINISHED events).

    Internal cleanup:

    • The previous RUN_STARTED/RUN_FINISHED suppression hack in runStreamingStructuredOutput was relocated into the engine (streamModelResponse) and gated on finalStructuredOutput.yieldChunks. The streaming consumer still sees exactly one outer pair around the whole run.

Patch Changes

  • Adopt @tanstack/eslint-config@0.4.0 and clean up the local override layer. (#607)

    • Bump @tanstack/eslint-config from 0.3.3 to 0.4.0.
    • Drop dead pnpm/enforce-catalog and pnpm/json-enforce-catalog disables (upstream removed eslint-plugin-pnpm in 0.3.1).
    • Drop the no-case-declarations: off override — no current source actually violates it.
    • Drop the no-shadow: off override — upstream sets it to warn, so it surfaces in editors without blocking CI.
    • Remove ~25 unnecessary type assertions across the publishable packages that the upgraded typescript-eslint now catches via no-unnecessary-type-assertion. One deliberately defensive cast in ag-ui-wire.ts is preserved with an inline opt-out and a reason comment.

    No public-API or runtime-behavior changes.

  • Updated dependencies []:

    • @tanstack/ai-event-client@0.3.7

@tanstack/ai-react-ui@0.8.0

Minor Changes

  • TextPart now accepts remarkPlugins, rehypePlugins, and (React/Solid) (#599)
    components props, plus a disableDefaultPlugins escape hatch. User plugins
    merge with the secure defaults — rehype-sanitize continues to run last
    unless defaults are disabled.

    This fixes #164: bold and
    emphasis in Japanese, Chinese, and Korean text rendered incorrectly because
    of a CommonMark spec defect. Consumers can now drop in
    remark-cjk-friendly
    with a single prop:

    import remarkCjkFriendly from 'remark-cjk-friendly'
    ;<TextPart content={content} remarkPlugins={[remarkCjkFriendly]} />

    Also fixes a latent bug in @tanstack/ai-react-ui where remark-gfm was
    passed inside the rehype plugin array, silently disabling GFM features
    (tables, strikethrough, task lists) in the React TextPart.

    @tanstack/ai-vue-ui omits the components prop because its underlying
    renderer (@crazydos/vue-markdown) does not expose component overrides;
    use that library's slot API for custom rendering.

Patch Changes

  • Adopt @tanstack/eslint-config@0.4.0 and clean up the local override layer. (#607)

    • Bump @tanstack/eslint-config from 0.3.3 to 0.4.0.
    • Drop dead pnpm/enforce-catalog and pnpm/json-enforce-catalog disables (upstream removed eslint-plugin-pnpm in 0.3.1).
    • Drop the no-case-declarations: off override — no current source actually violates it.
    • Drop the no-shadow: off override — upstream sets it to warn, so it surfaces in editors without blocking CI.
    • Remove ~25 unnecessary type assertions across the publishable packages that the upgraded typescript-eslint now catches via no-unnecessary-type-assertion. One deliberately defensive cast in ag-ui-wire.ts is preserved with an inline opt-out and a reason comment.

    No public-API or runtime-behavior changes.

  • Updated dependencies [a03d12b]:

    • @tanstack/ai-client@0.11.4
    • @tanstack/ai-react@0.11.4

@tanstack/ai-solid-ui@0.7.0

Minor Changes

  • TextPart now accepts remarkPlugins, rehypePlugins, and (React/Solid) (#599)
    components props, plus a disableDefaultPlugins escape hatch. User plugins
    merge with the secure defaults — rehype-sanitize continues to run last
    unless defaults are disabled.

    This fixes #164: bold and
    emphasis in Japanese, Chinese, and Korean text rendered incorrectly because
    of a CommonMark spec defect. Consumers can now drop in
    remark-cjk-friendly
    with a single prop:

    import remarkCjkFriendly from 'remark-cjk-friendly'
    ;<TextPart content={content} remarkPlugins={[remarkCjkFriendly]} />

    Also fixes a latent bug in @tanstack/ai-react-ui where remark-gfm was
    passed inside the rehype plugin array, silently disabling GFM features
    (tables, strikethrough, task lists) in the React TextPart.

    @tanstack/ai-vue-ui omits the components prop because its underlying
    renderer (@crazydos/vue-markdown) does not expose component overrides;
    use that library's slot API for custom rendering.

Patch Changes

  • Updated dependencies [a03d12b]:
    • @tanstack/ai-client@0.11.4
    • @tanstack/ai-solid@0.10.4

@tanstack/ai-vue-ui@0.2.0

Minor Changes

  • TextPart now accepts remarkPlugins, rehypePlugins, and (React/Solid) (#599)
    components props, plus a disableDefaultPlugins escape hatch. User plugins
    merge with the secure defaults — rehype-sanitize continues to run last
    unless defaults are disabled.

    This fixes #164: bold and
    emphasis in Japanese, Chinese, and Korean text rendered incorrectly because
    of a CommonMark spec defect. Consumers can now drop in
    remark-cjk-friendly
    with a single prop:

    import remarkCjkFriendly from 'remark-cjk-friendly'
    ;<TextPart content={content} remarkPlugins={[remarkCjkFriendly]} />

    Also fixes a latent bug in @tanstack/ai-react-ui where remark-gfm was
    passed inside the rehype plugin array, silently disabling GFM features
    (tables, strikethrough, task lists) in the React TextPart.

    @tanstack/ai-vue-ui omits the components prop because its underlying
    renderer (@crazydos/vue-markdown) does not expose component overrides;
    use that library's slot API for custom rendering.

Patch Changes

  • Updated dependencies [a03d12b]:
    • @tanstack/ai-vue@0.10.5

@tanstack/ai-anthropic@0.10.2

Patch Changes

  • Fix streaming corruption when Anthropic responses mix client tool_use with server-side tools (web_fetch, web_search). Closes bug(ai-anthropic): webFetchTool streaming corrupts prior tool_use input; server_tool_use is unhandled #604. (#606)

    The Anthropic streaming adapter previously had no handler for server_tool_use / web_fetch_tool_result / web_search_tool_result content blocks. When a client tool_use was followed by a server_tool_use in the same response, the server tool's input_json_delta events appended onto the prior client tool's input buffer — producing concatenated JSON like {...prevToolArgs...}{"url":"..."} that threw in the agent loop's JSON.parse.

    • server_tool_use is now tracked in a separate buffer so its deltas can't bleed into client tool args.
    • input_json_delta is dispatched by the current block type instead of unconditionally appending to toolCallsMap[currentToolIndex].
    • web_fetch_tool_result and web_search_tool_result blocks are explicitly acknowledged (and ignored — they are consumed by Anthropic, not the client), so they no longer fall through to the text-block handler.

    No new public events are introduced: server-side tool execution stays internal to the provider, matching how webFetchTool() / webSearchTool() were always intended to be used.

  • Updated dependencies [ec1393d, 188fe11]:

    • @tanstack/ai@0.21.0

@tanstack/ai-client@0.11.4

Patch Changes

  • Expose the connection adapter primitives needed to build custom (#597)
    transports from every framework hook package. @tanstack/ai-client
    now re-exports RunAgentInputContext at its entry point, and
    @tanstack/ai-react, @tanstack/ai-vue, @tanstack/ai-solid,
    @tanstack/ai-svelte, and @tanstack/ai-preact now re-export
    rpcStream, ConnectConnectionAdapter, SubscribeConnectionAdapter,
    and RunAgentInputContext alongside the existing stream,
    fetchServerSentEvents, and fetchHttpStream re-exports.

    Previously, authors of WebSocket / persistent or RPC-backed adapters
    had to import these symbols from @tanstack/ai-client even though
    they were already pulling useChat from a framework package. No
    runtime change.

  • Updated dependencies [ec1393d, 188fe11]:

    • @tanstack/ai@0.21.0
    • @tanstack/ai-event-client@0.3.7

@tanstack/ai-code-mode@0.1.17

Patch Changes

  • Adopt @tanstack/eslint-config@0.4.0 and clean up the local override layer. (#607)

    • Bump @tanstack/eslint-config from 0.3.3 to 0.4.0.
    • Drop dead pnpm/enforce-catalog and pnpm/json-enforce-catalog disables (upstream removed eslint-plugin-pnpm in 0.3.1).
    • Drop the no-case-declarations: off override — no current source actually violates it.
    • Drop the no-shadow: off override — upstream sets it to warn, so it surfaces in editors without blocking CI.
    • Remove ~25 unnecessary type assertions across the publishable packages that the upgraded typescript-eslint now catches via no-unnecessary-type-assertion. One deliberately defensive cast in ag-ui-wire.ts is preserved with an inline opt-out and a reason comment.

    No public-API or runtime-behavior changes.

  • Updated dependencies [ec1393d, 188fe11]:

    • @tanstack/ai@0.21.0

@tanstack/ai-code-mode-skills@0.1.17

Patch Changes

  • Adopt @tanstack/eslint-config@0.4.0 and clean up the local override layer. (#607)

    • Bump @tanstack/eslint-config from 0.3.3 to 0.4.0.
    • Drop dead pnpm/enforce-catalog and pnpm/json-enforce-catalog disables (upstream removed eslint-plugin-pnpm in 0.3.1).
    • Drop the no-case-declarations: off override — no current source actually violates it.
    • Drop the no-shadow: off override — upstream sets it to warn, so it surfaces in editors without blocking CI.
    • Remove ~25 unnecessary type assertions across the publishable packages that the upgraded typescript-eslint now catches via no-unnecessary-type-assertion. One deliberately defensive cast in ag-ui-wire.ts is preserved with an inline opt-out and a reason comment.

    No public-API or runtime-behavior changes.

  • Updated dependencies [ec1393d, 188fe11]:

    • @tanstack/ai@0.21.0
    • @tanstack/ai-code-mode@0.1.17

@tanstack/ai-devtools-core@0.3.34

Patch Changes

  • Updated dependencies [ec1393d, 188fe11]:
    • @tanstack/ai@0.21.0
    • @tanstack/ai-event-client@0.3.7

@tanstack/ai-elevenlabs@0.2.9

Patch Changes

  • Adopt @tanstack/eslint-config@0.4.0 and clean up the local override layer. (#607)

    • Bump @tanstack/eslint-config from 0.3.3 to 0.4.0.
    • Drop dead pnpm/enforce-catalog and pnpm/json-enforce-catalog disables (upstream removed eslint-plugin-pnpm in 0.3.1).
    • Drop the no-case-declarations: off override — no current source actually violates it.
    • Drop the no-shadow: off override — upstream sets it to warn, so it surfaces in editors without blocking CI.
    • Remove ~25 unnecessary type assertions across the publishable packages that the upgraded typescript-eslint now catches via no-unnecessary-type-assertion. One deliberately defensive cast in ag-ui-wire.ts is preserved with an inline opt-out and a reason comment.

    No public-API or runtime-behavior changes.

  • Updated dependencies [ec1393d, a03d12b, 188fe11]:

    • @tanstack/ai@0.21.0
    • @tanstack/ai-client@0.11.4

@tanstack/ai-event-client@0.3.7

Patch Changes

@tanstack/ai-fal@0.7.10

Patch Changes

  • Adopt @tanstack/eslint-config@0.4.0 and clean up the local override layer. (#607)

    • Bump @tanstack/eslint-config from 0.3.3 to 0.4.0.
    • Drop dead pnpm/enforce-catalog and pnpm/json-enforce-catalog disables (upstream removed eslint-plugin-pnpm in 0.3.1).
    • Drop the no-case-declarations: off override — no current source actually violates it.
    • Drop the no-shadow: off override — upstream sets it to warn, so it surfaces in editors without blocking CI.
    • Remove ~25 unnecessary type assertions across the publishable packages that the upgraded typescript-eslint now catches via no-unnecessary-type-assertion. One deliberately defensive cast in ag-ui-wire.ts is preserved with an inline opt-out and a reason comment.

    No public-API or runtime-behavior changes.

  • Updated dependencies [ec1393d, 188fe11]:

    • @tanstack/ai@0.21.0

@tanstack/ai-gemini@0.10.9

Patch Changes

  • Adopt @tanstack/eslint-config@0.4.0 and clean up the local override layer. (#607)

    • Bump @tanstack/eslint-config from 0.3.3 to 0.4.0.
    • Drop dead pnpm/enforce-catalog and pnpm/json-enforce-catalog disables (upstream removed eslint-plugin-pnpm in 0.3.1).
    • Drop the no-case-declarations: off override — no current source actually violates it.
    • Drop the no-shadow: off override — upstream sets it to warn, so it surfaces in editors without blocking CI.
    • Remove ~25 unnecessary type assertions across the publishable packages that the upgraded typescript-eslint now catches via no-unnecessary-type-assertion. One deliberately defensive cast in ag-ui-wire.ts is preserved with an inline opt-out and a reason comment.

    No public-API or runtime-behavior changes.

  • Updated dependencies [ec1393d, 188fe11]:

    • @tanstack/ai@0.21.0

@tanstack/ai-grok@0.8.6

Patch Changes

  • Adopt @tanstack/eslint-config@0.4.0 and clean up the local override layer. (#607)

    • Bump @tanstack/eslint-config from 0.3.3 to 0.4.0.
    • Drop dead pnpm/enforce-catalog and pnpm/json-enforce-catalog disables (upstream removed eslint-plugin-pnpm in 0.3.1).
    • Drop the no-case-declarations: off override — no current source actually violates it.
    • Drop the no-shadow: off override — upstream sets it to warn, so it surfaces in editors without blocking CI.
    • Remove ~25 unnecessary type assertions across the publishable packages that the upgraded typescript-eslint now catches via no-unnecessary-type-assertion. One deliberately defensive cast in ag-ui-wire.ts is preserved with an inline opt-out and a reason comment.

    No public-API or runtime-behavior changes.

  • Updated dependencies [ec1393d, 188fe11]:

    • @tanstack/ai@0.21.0
    • @tanstack/openai-base@0.3.5

@tanstack/ai-groq@0.2.5

Patch Changes

  • Updated dependencies [ec1393d, 188fe11]:
    • @tanstack/ai@0.21.0
    • @tanstack/openai-base@0.3.5

@tanstack/ai-isolate-cloudflare@0.2.8

Patch Changes

  • Updated dependencies [ec1393d]:
    • @tanstack/ai-code-mode@0.1.17

@tanstack/ai-isolate-node@0.1.17

Patch Changes

  • Updated dependencies [ec1393d]:
    • @tanstack/ai-code-mode@0.1.17

@tanstack/ai-isolate-quickjs@0.1.17

Patch Changes

  • Updated dependencies [ec1393d]:
    • @tanstack/ai-code-mode@0.1.17

@tanstack/ai-ollama@0.6.20

Patch Changes

@tanstack/ai-openai@0.9.6

Patch Changes

  • Adopt @tanstack/eslint-config@0.4.0 and clean up the local override layer. (#607)

    • Bump @tanstack/eslint-config from 0.3.3 to 0.4.0.
    • Drop dead pnpm/enforce-catalog and pnpm/json-enforce-catalog disables (upstream removed eslint-plugin-pnpm in 0.3.1).
    • Drop the no-case-declarations: off override — no current source actually violates it.
    • Drop the no-shadow: off override — upstream sets it to warn, so it surfaces in editors without blocking CI.
    • Remove ~25 unnecessary type assertions across the publishable packages that the upgraded typescript-eslint now catches via no-unnecessary-type-assertion. One deliberately defensive cast in ag-ui-wire.ts is preserved with an inline opt-out and a reason comment.

    No public-API or runtime-behavior changes.

  • Updated dependencies [ec1393d, a03d12b, 188fe11]:

    • @tanstack/ai@0.21.0
    • @tanstack/ai-client@0.11.4
    • @tanstack/openai-base@0.3.5

@tanstack/ai-openrouter@0.9.6

Patch Changes

  • Adopt @tanstack/eslint-config@0.4.0 and clean up the local override layer. (#607)

    • Bump @tanstack/eslint-config from 0.3.3 to 0.4.0.
    • Drop dead pnpm/enforce-catalog and pnpm/json-enforce-catalog disables (upstream removed eslint-plugin-pnpm in 0.3.1).
    • Drop the no-case-declarations: off override — no current source actually violates it.
    • Drop the no-shadow: off override — upstream sets it to warn, so it surfaces in editors without blocking CI.
    • Remove ~25 unnecessary type assertions across the publishable packages that the upgraded typescript-eslint now catches via no-unnecessary-type-assertion. One deliberately defensive cast in ag-ui-wire.ts is preserved with an inline opt-out and a reason comment.

    No public-API or runtime-behavior changes.

  • Updated dependencies [ec1393d, 188fe11]:

    • @tanstack/ai@0.21.0

@tanstack/ai-preact@0.6.29

Patch Changes

  • Expose the connection adapter primitives needed to build custom (#597)
    transports from every framework hook package. @tanstack/ai-client
    now re-exports RunAgentInputContext at its entry point, and
    @tanstack/ai-react, @tanstack/ai-vue, @tanstack/ai-solid,
    @tanstack/ai-svelte, and @tanstack/ai-preact now re-export
    rpcStream, ConnectConnectionAdapter, SubscribeConnectionAdapter,
    and RunAgentInputContext alongside the existing stream,
    fetchServerSentEvents, and fetchHttpStream re-exports.

    Previously, authors of WebSocket / persistent or RPC-backed adapters
    had to import these symbols from @tanstack/ai-client even though
    they were already pulling useChat from a framework package. No
    runtime change.

  • Updated dependencies [ec1393d, a03d12b, 188fe11]:

    • @tanstack/ai@0.21.0
    • @tanstack/ai-client@0.11.4

@tanstack/ai-react@0.11.4

Patch Changes

  • Expose the connection adapter primitives needed to build custom (#597)
    transports from every framework hook package. @tanstack/ai-client
    now re-exports RunAgentInputContext at its entry point, and
    @tanstack/ai-react, @tanstack/ai-vue, @tanstack/ai-solid,
    @tanstack/ai-svelte, and @tanstack/ai-preact now re-export
    rpcStream, ConnectConnectionAdapter, SubscribeConnectionAdapter,
    and RunAgentInputContext alongside the existing stream,
    fetchServerSentEvents, and fetchHttpStream re-exports.

    Previously, authors of WebSocket / persistent or RPC-backed adapters
    had to import these symbols from @tanstack/ai-client even though
    they were already pulling useChat from a framework package. No
    runtime change.

  • Updated dependencies [ec1393d, a03d12b, 188fe11]:

    • @tanstack/ai@0.21.0
    • @tanstack/ai-client@0.11.4

@tanstack/ai-solid@0.10.4

Patch Changes

  • Expose the connection adapter primitives needed to build custom (#597)
    transports from every framework hook package. @tanstack/ai-client
    now re-exports RunAgentInputContext at its entry point, and
    @tanstack/ai-react, @tanstack/ai-vue, @tanstack/ai-solid,
    @tanstack/ai-svelte, and @tanstack/ai-preact now re-export
    rpcStream, ConnectConnectionAdapter, SubscribeConnectionAdapter,
    and RunAgentInputContext alongside the existing stream,
    fetchServerSentEvents, and fetchHttpStream re-exports.

    Previously, authors of WebSocket / persistent or RPC-backed adapters
    had to import these symbols from @tanstack/ai-client even though
    they were already pulling useChat from a framework package. No
    runtime change.

  • Updated dependencies [ec1393d, a03d12b, 188fe11]:

    • @tanstack/ai@0.21.0
    • @tanstack/ai-client@0.11.4

@tanstack/ai-svelte@0.10.4

Patch Changes

  • Expose the connection adapter primitives needed to build custom (#597)
    transports from every framework hook package. @tanstack/ai-client
    now re-exports RunAgentInputContext at its entry point, and
    @tanstack/ai-react, @tanstack/ai-vue, @tanstack/ai-solid,
    @tanstack/ai-svelte, and @tanstack/ai-preact now re-export
    rpcStream, ConnectConnectionAdapter, SubscribeConnectionAdapter,
    and RunAgentInputContext alongside the existing stream,
    fetchServerSentEvents, and fetchHttpStream re-exports.

    Previously, authors of WebSocket / persistent or RPC-backed adapters
    had to import these symbols from @tanstack/ai-client even though
    they were already pulling useChat from a framework package. No
    runtime change.

  • Updated dependencies [ec1393d, a03d12b, 188fe11]:

    • @tanstack/ai@0.21.0
    • @tanstack/ai-client@0.11.4

@tanstack/ai-vue@0.10.5

Patch Changes

  • Expose the connection adapter primitives needed to build custom (#597)
    transports from every framework hook package. @tanstack/ai-client
    now re-exports RunAgentInputContext at its entry point, and
    @tanstack/ai-react, @tanstack/ai-vue, @tanstack/ai-solid,
    @tanstack/ai-svelte, and @tanstack/ai-preact now re-export
    rpcStream, ConnectConnectionAdapter, SubscribeConnectionAdapter,
    and RunAgentInputContext alongside the existing stream,
    fetchServerSentEvents, and fetchHttpStream re-exports.

    Previously, authors of WebSocket / persistent or RPC-backed adapters
    had to import these symbols from @tanstack/ai-client even though
    they were already pulling useChat from a framework package. No
    runtime change.

  • Updated dependencies [ec1393d, a03d12b, 188fe11]:

    • @tanstack/ai@0.21.0
    • @tanstack/ai-client@0.11.4

@tanstack/openai-base@0.3.5

Patch Changes

@tanstack/preact-ai-devtools@0.1.38

Patch Changes

  • Updated dependencies []:
    • @tanstack/ai-devtools-core@0.3.34

@tanstack/react-ai-devtools@0.2.38

Patch Changes

  • Updated dependencies []:
    • @tanstack/ai-devtools-core@0.3.34

@tanstack/solid-ai-devtools@0.2.38

Patch Changes

  • Updated dependencies []:
    • @tanstack/ai-devtools-core@0.3.34

@github-actions github-actions Bot force-pushed the changeset-release/main branch from b5c0e74 to 04280ff Compare May 21, 2026 05:50
@github-actions github-actions Bot force-pushed the changeset-release/main branch from 04280ff to c816fd0 Compare May 21, 2026 05:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

0 participants