From b9fe189a97a4ef5bab53fba56a486091e2975f22 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 5 Oct 2026 11:41:53 +0000 Subject: [PATCH] ci: Version Packages --- .changeset/chat-hydrate-strict-mode.md | 5 ----- .changeset/clean-stream-readers.md | 9 --------- .changeset/code-mode-stubs-enum-description.md | 9 --------- .changeset/durable-batch-live-flush.md | 7 ------- ...x-malformed-chat-completions-tool-arguments.md | 5 ----- .changeset/openrouter-optional-tool-fields.md | 5 ----- .changeset/sync-models.md | 6 ------ .changeset/tidy-boxd-cancellation.md | 5 ----- examples/ag-ui/CHANGELOG.md | 8 ++++++++ examples/ag-ui/package.json | 2 +- packages/ai-client/CHANGELOG.md | 15 +++++++++++++++ packages/ai-client/package.json | 2 +- packages/ai-code-mode/CHANGELOG.md | 12 ++++++++++++ packages/ai-code-mode/package.json | 2 +- packages/ai-octane/CHANGELOG.md | 8 ++++++++ packages/ai-octane/package.json | 2 +- packages/ai-openrouter/CHANGELOG.md | 11 +++++++++++ packages/ai-openrouter/package.json | 2 +- packages/ai-sandbox-boxd/CHANGELOG.md | 9 +++++++++ packages/ai-sandbox-boxd/package.json | 2 +- packages/ai-vercel-gateway/CHANGELOG.md | 10 ++++++++++ packages/ai-vercel-gateway/package.json | 2 +- packages/ai/CHANGELOG.md | 8 ++++++++ packages/ai/package.json | 2 +- packages/openai-base/CHANGELOG.md | 9 +++++++++ packages/openai-base/package.json | 2 +- 26 files changed, 99 insertions(+), 60 deletions(-) delete mode 100644 .changeset/chat-hydrate-strict-mode.md delete mode 100644 .changeset/clean-stream-readers.md delete mode 100644 .changeset/code-mode-stubs-enum-description.md delete mode 100644 .changeset/durable-batch-live-flush.md delete mode 100644 .changeset/fix-malformed-chat-completions-tool-arguments.md delete mode 100644 .changeset/openrouter-optional-tool-fields.md delete mode 100644 .changeset/sync-models.md delete mode 100644 .changeset/tidy-boxd-cancellation.md diff --git a/.changeset/chat-hydrate-strict-mode.md b/.changeset/chat-hydrate-strict-mode.md deleted file mode 100644 index 06a593c6d0..0000000000 --- a/.changeset/chat-hydrate-strict-mode.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@tanstack/ai-client': patch ---- - -Send one hydrate `GET` when a chat with `persistence: true` mounts in React Strict Mode. Strict Mode attaches, detaches and attaches the client again in dev, and each attach sent its own `GET`. A re-attach now reuses the `GET` that is still in flight. diff --git a/.changeset/clean-stream-readers.md b/.changeset/clean-stream-readers.md deleted file mode 100644 index 64ce96f74f..0000000000 --- a/.changeset/clean-stream-readers.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -'@tanstack/ai-client': patch ---- - -Cancel fetch response bodies when SSE or NDJSON parsing fails, the consumer exits early, or SSE reaches a `[DONE]` marker. This closes unfinished connections and preserves the original error if cancellation fails. - -Also cancel streaming generation responses when the client stops reading, including after a `RUN_ERROR` event. - -Start cancellation without waiting for custom hooks, so pending hooks cannot delay errors, iterator completion, or reader lock release. diff --git a/.changeset/code-mode-stubs-enum-description.md b/.changeset/code-mode-stubs-enum-description.md deleted file mode 100644 index 5773bb3e91..0000000000 --- a/.changeset/code-mode-stubs-enum-description.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -'@tanstack/ai-code-mode': patch ---- - -Keep `enum` and `const` values and property descriptions in the generated -Code Mode type stubs. A typed schema such as `{ type: 'string', enum: ['a', 'b'] }` -now renders as `'a' | 'b'` instead of `string`, and property `description`s are -emitted as JSDoc, as the `includeDescriptions` option of `generateTypeStubs` -already documented. diff --git a/.changeset/durable-batch-live-flush.md b/.changeset/durable-batch-live-flush.md deleted file mode 100644 index 44682e5c1b..0000000000 --- a/.changeset/durable-batch-live-flush.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@tanstack/ai': patch ---- - -Stream durable responses live again. With `durability` set, a chunk waited in the append batch until 32 chunks arrived or the run finished, so a short reply showed up all at once at the end. Now the batch also flushes when the model sends no new chunk for 50ms. You do not need `batch: 1` for live text any more. `batch` stays the largest number of chunks in one append. - -Set the wait with the new `batchWaitMs` option on `durability` (`toServerSentEventsResponse`, `toHttpResponse`) and on `toWebSocketStream` / `toWebSocketResponse`. A higher value means fewer writes to the log but slower live text. `0` appends every chunk on its own. diff --git a/.changeset/fix-malformed-chat-completions-tool-arguments.md b/.changeset/fix-malformed-chat-completions-tool-arguments.md deleted file mode 100644 index 8177744062..0000000000 --- a/.changeset/fix-malformed-chat-completions-tool-arguments.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@tanstack/openai-base': patch ---- - -Preserve malformed Chat Completions tool arguments so they return a tool error without executing the tool with an empty object. diff --git a/.changeset/openrouter-optional-tool-fields.md b/.changeset/openrouter-optional-tool-fields.md deleted file mode 100644 index d2b99083f9..0000000000 --- a/.changeset/openrouter-optional-tool-fields.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@tanstack/ai-openrouter': patch ---- - -Keep optional tool fields optional. The Chat Completions adapter now sends function tools with `strict: false`. With `strict` omitted, OpenAI models through OpenRouter were observed to treat the schema as strict and make every optional field required, so before this fix the model could not leave one out. The Responses adapter now strips the `null` that strict mode puts in an omitted optional field before the tool input is validated, so the tool runs and sees the field as absent. A `.nullable()` field keeps its `null`. Known limit: an optional field inside a union of several object shapes is not stripped and still arrives as `null`. diff --git a/.changeset/sync-models.md b/.changeset/sync-models.md deleted file mode 100644 index 5d9ff267d8..0000000000 --- a/.changeset/sync-models.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -'@tanstack/ai-openrouter': patch -'@tanstack/ai-vercel-gateway': patch ---- - -Update model metadata from OpenRouter API diff --git a/.changeset/tidy-boxd-cancellation.md b/.changeset/tidy-boxd-cancellation.md deleted file mode 100644 index 7e1d0b553f..0000000000 --- a/.changeset/tidy-boxd-cancellation.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@tanstack/ai-sandbox-boxd': patch ---- - -Delete newly created machines when create or snapshot restore is aborted during readiness or workspace setup. diff --git a/examples/ag-ui/CHANGELOG.md b/examples/ag-ui/CHANGELOG.md index c50f4e07fc..8feaadf6c7 100644 --- a/examples/ag-ui/CHANGELOG.md +++ b/examples/ag-ui/CHANGELOG.md @@ -1,5 +1,13 @@ # ag-ui +## 0.0.32 + +### Patch Changes + +- Updated dependencies [[`4c57d04`](https://github.com/TanStack/ai/commit/4c57d04f0f5dd98e176386f3208b68daf9e7d929), [`e436250`](https://github.com/TanStack/ai/commit/e4362509fd7becad7175ce895178cd3b107fcd4b)]: + - @tanstack/ai-client@0.36.2 + - @tanstack/ai-react@0.29.4 + ## 0.0.31 ### Patch Changes diff --git a/examples/ag-ui/package.json b/examples/ag-ui/package.json index a1504f441f..8d2581e11f 100644 --- a/examples/ag-ui/package.json +++ b/examples/ag-ui/package.json @@ -2,7 +2,7 @@ "name": "ag-ui", "private": true, "type": "module", - "version": "0.0.31", + "version": "0.0.32", "scripts": { "detect-servers": "node scripts/detect-servers.mjs", "predev": "node scripts/detect-servers.mjs", diff --git a/packages/ai-client/CHANGELOG.md b/packages/ai-client/CHANGELOG.md index cdd89eed8c..edf0ae5a06 100644 --- a/packages/ai-client/CHANGELOG.md +++ b/packages/ai-client/CHANGELOG.md @@ -1,5 +1,20 @@ # @tanstack/ai-client +## 0.36.2 + +### Patch Changes + +- [#1620](https://github.com/TanStack/ai/pull/1620) [`4c57d04`](https://github.com/TanStack/ai/commit/4c57d04f0f5dd98e176386f3208b68daf9e7d929) - Send one hydrate `GET` when a chat with `persistence: true` mounts in React Strict Mode. Strict Mode attaches, detaches and attaches the client again in dev, and each attach sent its own `GET`. A re-attach now reuses the `GET` that is still in flight. + +- [#1598](https://github.com/TanStack/ai/pull/1598) [`e436250`](https://github.com/TanStack/ai/commit/e4362509fd7becad7175ce895178cd3b107fcd4b) - Cancel fetch response bodies when SSE or NDJSON parsing fails, the consumer exits early, or SSE reaches a `[DONE]` marker. This closes unfinished connections and preserves the original error if cancellation fails. + + Also cancel streaming generation responses when the client stops reading, including after a `RUN_ERROR` event. + + Start cancellation without waiting for custom hooks, so pending hooks cannot delay errors, iterator completion, or reader lock release. + +- Updated dependencies [[`4c57d04`](https://github.com/TanStack/ai/commit/4c57d04f0f5dd98e176386f3208b68daf9e7d929)]: + - @tanstack/ai@0.64.1 + ## 0.36.1 ### Patch Changes diff --git a/packages/ai-client/package.json b/packages/ai-client/package.json index 40147b9cff..a230463c11 100644 --- a/packages/ai-client/package.json +++ b/packages/ai-client/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/ai-client", - "version": "0.36.1", + "version": "0.36.2", "description": "Framework-agnostic headless client for TanStack AI chat, realtime sessions, streaming transports, and media generations.", "author": "Tanner Linsley", "license": "MIT", diff --git a/packages/ai-code-mode/CHANGELOG.md b/packages/ai-code-mode/CHANGELOG.md index 8ebd73b482..23676a6e2d 100644 --- a/packages/ai-code-mode/CHANGELOG.md +++ b/packages/ai-code-mode/CHANGELOG.md @@ -1,5 +1,17 @@ # @tanstack/ai-code-mode +## 0.4.20 + +### Patch Changes + +- [#1600](https://github.com/TanStack/ai/pull/1600) [`b8bab43`](https://github.com/TanStack/ai/commit/b8bab43b98ac91e201dc1dae8a3811b348d34504) - Keep `enum` and `const` values and property descriptions in the generated + Code Mode type stubs. A typed schema such as `{ type: 'string', enum: ['a', 'b'] }` + now renders as `'a' | 'b'` instead of `string`, and property `description`s are + emitted as JSDoc, as the `includeDescriptions` option of `generateTypeStubs` + already documented. +- Updated dependencies [[`4c57d04`](https://github.com/TanStack/ai/commit/4c57d04f0f5dd98e176386f3208b68daf9e7d929)]: + - @tanstack/ai@0.64.1 + ## 0.4.19 ### Patch Changes diff --git a/packages/ai-code-mode/package.json b/packages/ai-code-mode/package.json index 8497bfaf5e..364bf8aa58 100644 --- a/packages/ai-code-mode/package.json +++ b/packages/ai-code-mode/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/ai-code-mode", - "version": "0.4.19", + "version": "0.4.20", "description": "Secure TypeScript Code Mode for TanStack AI agents to execute sandboxed tool orchestration programs.", "author": "Tanner Linsley", "license": "MIT", diff --git a/packages/ai-octane/CHANGELOG.md b/packages/ai-octane/CHANGELOG.md index 4def5874a6..6062731750 100644 --- a/packages/ai-octane/CHANGELOG.md +++ b/packages/ai-octane/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/ai-octane +## 0.6.5 + +### Patch Changes + +- Updated dependencies [[`4c57d04`](https://github.com/TanStack/ai/commit/4c57d04f0f5dd98e176386f3208b68daf9e7d929), [`e436250`](https://github.com/TanStack/ai/commit/e4362509fd7becad7175ce895178cd3b107fcd4b), [`4c57d04`](https://github.com/TanStack/ai/commit/4c57d04f0f5dd98e176386f3208b68daf9e7d929)]: + - @tanstack/ai-client@0.36.2 + - @tanstack/ai@0.64.1 + ## 0.6.4 ### Patch Changes diff --git a/packages/ai-octane/package.json b/packages/ai-octane/package.json index 6c4a2209bb..442f01d8c0 100644 --- a/packages/ai-octane/package.json +++ b/packages/ai-octane/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/ai-octane", - "version": "0.6.4", + "version": "0.6.5", "description": "Octane bindings for TanStack AI streaming chat, structured outputs, and media generation.", "author": "Dominic Gannaway", "license": "MIT", diff --git a/packages/ai-openrouter/CHANGELOG.md b/packages/ai-openrouter/CHANGELOG.md index d95378b13b..284861e40f 100644 --- a/packages/ai-openrouter/CHANGELOG.md +++ b/packages/ai-openrouter/CHANGELOG.md @@ -1,5 +1,16 @@ # @tanstack/ai-openrouter +## 0.20.3 + +### Patch Changes + +- [#1545](https://github.com/TanStack/ai/pull/1545) [`aadfed3`](https://github.com/TanStack/ai/commit/aadfed3cff1925f647cbf956f309f0a38b7ccf85) - Keep optional tool fields optional. The Chat Completions adapter now sends function tools with `strict: false`. With `strict` omitted, OpenAI models through OpenRouter were observed to treat the schema as strict and make every optional field required, so before this fix the model could not leave one out. The Responses adapter now strips the `null` that strict mode puts in an omitted optional field before the tool input is validated, so the tool runs and sees the field as absent. A `.nullable()` field keeps its `null`. Known limit: an optional field inside a union of several object shapes is not stripped and still arrives as `null`. + +- [#1576](https://github.com/TanStack/ai/pull/1576) [`0977222`](https://github.com/TanStack/ai/commit/097722249c033792538d6f95f5db76473a6e3035) - Update model metadata from OpenRouter API + +- Updated dependencies [[`4c57d04`](https://github.com/TanStack/ai/commit/4c57d04f0f5dd98e176386f3208b68daf9e7d929)]: + - @tanstack/ai@0.64.1 + ## 0.20.2 ### Patch Changes diff --git a/packages/ai-openrouter/package.json b/packages/ai-openrouter/package.json index 9a02feece2..544bb010eb 100644 --- a/packages/ai-openrouter/package.json +++ b/packages/ai-openrouter/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/ai-openrouter", - "version": "0.20.2", + "version": "0.20.3", "description": "TanStack AI adapter for OpenRouter chat, provider tools, structured outputs, and access to hundreds of LLMs.", "author": "Tanner Linsley", "license": "MIT", diff --git a/packages/ai-sandbox-boxd/CHANGELOG.md b/packages/ai-sandbox-boxd/CHANGELOG.md index 2bc88d0828..02981d013d 100644 --- a/packages/ai-sandbox-boxd/CHANGELOG.md +++ b/packages/ai-sandbox-boxd/CHANGELOG.md @@ -1,5 +1,14 @@ # @tanstack/ai-sandbox-boxd +## 0.2.1 + +### Patch Changes + +- [#1607](https://github.com/TanStack/ai/pull/1607) [`7216c7b`](https://github.com/TanStack/ai/commit/7216c7b5813074eafad52028b3d6d7fec1f7d08c) - Delete newly created machines when create or snapshot restore is aborted during readiness or workspace setup. + +- Updated dependencies []: + - @tanstack/ai-sandbox@0.5.18 + ## 0.2.0 ### Minor Changes diff --git a/packages/ai-sandbox-boxd/package.json b/packages/ai-sandbox-boxd/package.json index c3a51ffd23..aa4689796c 100644 --- a/packages/ai-sandbox-boxd/package.json +++ b/packages/ai-sandbox-boxd/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/ai-sandbox-boxd", - "version": "0.2.0", + "version": "0.2.1", "description": "boxd sandbox provider for TanStack AI — run harness adapters inside isolated boxd KVM microVMs through the uniform SandboxHandle.", "author": "", "license": "MIT", diff --git a/packages/ai-vercel-gateway/CHANGELOG.md b/packages/ai-vercel-gateway/CHANGELOG.md index 4cd8221cde..17902476f3 100644 --- a/packages/ai-vercel-gateway/CHANGELOG.md +++ b/packages/ai-vercel-gateway/CHANGELOG.md @@ -1,5 +1,15 @@ # @tanstack/ai-vercel-gateway +## 0.3.3 + +### Patch Changes + +- [#1576](https://github.com/TanStack/ai/pull/1576) [`0977222`](https://github.com/TanStack/ai/commit/097722249c033792538d6f95f5db76473a6e3035) - Update model metadata from OpenRouter API + +- Updated dependencies [[`4c57d04`](https://github.com/TanStack/ai/commit/4c57d04f0f5dd98e176386f3208b68daf9e7d929), [`6d8e648`](https://github.com/TanStack/ai/commit/6d8e6485f92c98a6f2200471e2aff21ab50be013)]: + - @tanstack/ai@0.64.1 + - @tanstack/openai-base@0.12.3 + ## 0.3.2 ### Patch Changes diff --git a/packages/ai-vercel-gateway/package.json b/packages/ai-vercel-gateway/package.json index 4e28f95956..10a834c5c2 100644 --- a/packages/ai-vercel-gateway/package.json +++ b/packages/ai-vercel-gateway/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/ai-vercel-gateway", - "version": "0.3.2", + "version": "0.3.3", "description": "Vercel AI Gateway adapter for TanStack AI chat, embeddings, and image generation.", "author": "Tanner Linsley", "license": "MIT", diff --git a/packages/ai/CHANGELOG.md b/packages/ai/CHANGELOG.md index a827d7a2d8..2bba51580a 100644 --- a/packages/ai/CHANGELOG.md +++ b/packages/ai/CHANGELOG.md @@ -1,5 +1,13 @@ # @tanstack/ai +## 0.64.1 + +### Patch Changes + +- [#1620](https://github.com/TanStack/ai/pull/1620) [`4c57d04`](https://github.com/TanStack/ai/commit/4c57d04f0f5dd98e176386f3208b68daf9e7d929) - Stream durable responses live again. With `durability` set, a chunk waited in the append batch until 32 chunks arrived or the run finished, so a short reply showed up all at once at the end. Now the batch also flushes when the model sends no new chunk for 50ms. You do not need `batch: 1` for live text any more. `batch` stays the largest number of chunks in one append. + + Set the wait with the new `batchWaitMs` option on `durability` (`toServerSentEventsResponse`, `toHttpResponse`) and on `toWebSocketStream` / `toWebSocketResponse`. A higher value means fewer writes to the log but slower live text. `0` appends every chunk on its own. + ## 0.64.0 ### Minor Changes diff --git a/packages/ai/package.json b/packages/ai/package.json index 83f24a51fc..6df3584912 100644 --- a/packages/ai/package.json +++ b/packages/ai/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/ai", - "version": "0.64.0", + "version": "0.64.1", "description": "Type-safe TypeScript AI SDK for streaming chat, tool calling, agents, structured outputs, and multimodal generation.", "author": "Tanner Linsley", "license": "MIT", diff --git a/packages/openai-base/CHANGELOG.md b/packages/openai-base/CHANGELOG.md index ff3bd22482..40712f881a 100644 --- a/packages/openai-base/CHANGELOG.md +++ b/packages/openai-base/CHANGELOG.md @@ -1,5 +1,14 @@ # @tanstack/openai-base +## 0.12.3 + +### Patch Changes + +- [#1602](https://github.com/TanStack/ai/pull/1602) [`6d8e648`](https://github.com/TanStack/ai/commit/6d8e6485f92c98a6f2200471e2aff21ab50be013) - Preserve malformed Chat Completions tool arguments so they return a tool error without executing the tool with an empty object. + +- Updated dependencies [[`4c57d04`](https://github.com/TanStack/ai/commit/4c57d04f0f5dd98e176386f3208b68daf9e7d929)]: + - @tanstack/ai@0.64.1 + ## 0.12.2 ### Patch Changes diff --git a/packages/openai-base/package.json b/packages/openai-base/package.json index 1b8c474cdf..13c2ecc311 100644 --- a/packages/openai-base/package.json +++ b/packages/openai-base/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/openai-base", - "version": "0.12.2", + "version": "0.12.3", "description": "Shared OpenAI SDK base adapters for TanStack AI providers using Chat Completions and Responses APIs.", "author": "Tanner Linsley", "license": "MIT",