Skip to content

chore: bump unreleased docs dates, squash pending changesets - #1051

Merged
AlemTuzlak merged 2 commits into
mainfrom
chore/bump-unreleased-docs-dates
Aug 4, 2026
Merged

chore: bump unreleased docs dates, squash pending changesets#1051
AlemTuzlak merged 2 commits into
mainfrom
chore/bump-unreleased-docs-dates

Conversation

@AlemTuzlak

@AlemTuzlak AlemTuzlak commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

What

Two housekeeping changes before the next release.

1. Docs dates. Every docs page added after the last release commit (55db7d458, ci: Version Packages) is not on npm yet, so its addedAt now points to today (2026-08-04). Their updatedAt is removed — a page that ships today was never updated in public.

25 pages: interrupts/* (5), resumable-streams/* (3), persistence/* (10), memory/* (5), advanced/locks, sandbox/durability.

2. One changeset. The 50 pending changesets are merged into .changeset/unreleased.md. The package list is the union of all of them, and each package keeps its highest bump level. Every summary is kept in the body, so no release note is lost.

Verification

  • pnpm changeset status before and after the merge produce the same per-level bump lists (19 packages: 15 minor, 4 patch, 0 major).
  • pnpm test:docs — no broken links.
  • docs/config.json still parses as JSON.

Note

Because it is one changeset now, each package's CHANGELOG entry will carry the full combined body, including notes about other packages. That is the trade-off of squashing.

Summary by CodeRabbit

  • Chores

    • Consolidated and removed processed changesets for upcoming releases
    • Bumped initial package versions to 0.0.1 for @tanstack/ai-byteplus, @tanstack/ai-durable-stream, and @tanstack/ai-memory
  • Documentation

    • Updated documentation navigation dates and metadata for new feature guides

@coderabbitai

coderabbitai Bot commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 4398fbcf-58eb-4d30-9417-40eed8f73701

📥 Commits

Reviewing files that changed from the base of the PR and between f775c5b and 66c1824.

📒 Files selected for processing (3)
  • packages/ai-byteplus/package.json
  • packages/ai-durable-stream/package.json
  • packages/ai-memory/package.json
💤 Files with no reviewable changes (3)
  • packages/ai-memory/package.json
  • packages/ai-durable-stream/package.json
  • packages/ai-byteplus/package.json

📝 Walkthrough

Walkthrough

This PR consolidates broad TanStack AI release notes into .changeset/unreleased.md, removes superseded changesets, updates documentation navigation dates, and increments the versions of three packages.

Changes

Release metadata consolidation

Layer / File(s) Summary
Release note consolidation
.changeset/unreleased.md, .changeset/*.md
Release notes for persistence, durability, generation, client, sandbox, memory, interrupt, and provider changes are consolidated. Superseded changesets are removed.
Core contracts and stream behavior
.changeset/unreleased.md
The consolidated notes cover interrupt ownership, run contracts, stream handling, middleware completion, process cleanup, tool continuation, OpenAI compatibility, and summarization identity.
Persistence, generation, and client lifecycle
.changeset/unreleased.md
The notes cover browser chat persistence, hydration, generation reconstruction, artifact storage, resumable transport, client lifecycle, hook run IDs, and removed exports.
Durable runs and sandbox lifecycle
.changeset/unreleased.md
The notes cover detached runs, durability snapshots, sandbox journals, run-store capabilities, reaping, durable agents, and sandbox instance stores.
Memory, documentation, and package publishing
.changeset/unreleased.md, docs/config.json, packages/ai-byteplus/package.json, packages/ai-durable-stream/package.json, packages/ai-memory/package.json
Memory and shared scope changes are documented. Documentation dates are updated, and three package versions are incremented to 0.0.1.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Possibly related PRs

  • TanStack/ai#984 — Covers related server persistence and browser-refresh durability changes consolidated here.
  • TanStack/ai#997 — Introduces generation persistence and client-side resume-snapshot changes documented here.
  • TanStack/ai#1015 — Covers related durable-run, RunStore, sandbox durability, and reconnection changes.
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the documentation date updates and changeset consolidation.
Description check ✅ Passed The description explains both changes, motivation, verification steps, and the trade-off of consolidating release notes.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/bump-unreleased-docs-dates

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 6

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
.changeset/unreleased.md (1)

992-1017: 🗄️ Data Integrity & Integration | 🟡 Minor | ⚡ Quick win

Separate the OpenRouter summary from the chat identity summary.

Line [992] introduces “Update model metadata from OpenRouter API,” but lines [994]-[1017] describe only removal of the chat hook id option.

Add the missing OpenRouter details or move the heading. Add a separate heading for the chat identity change so the consolidated release notes retain the correct summaries.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.changeset/unreleased.md around lines 992 - 1017, Separate the release-note
entries so “Update model metadata from OpenRouter API” has its own corresponding
details, and add a distinct heading for the chat hook identity changes described
in the current paragraph. Keep the existing threadId/id migration details under
the new chat identity heading.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.changeset/unreleased.md:
- Around line 181-185: Clarify the changelog with one deterministic run ID
formula, explicitly stating whether it uses the provider or adapter together
with jobId. Ensure both generateVideo() and getVideoJobStatus() descriptions
reference that exact same formula, including the same identifier source and
ordering, so polling always resumes the submitted run.
- Around line 653-657: Update the persistence package bullet in the unreleased
changeset to remove LockStore, withLocks, and InMemoryLockStore from
`@tanstack/ai-persistence`, directing users to `@tanstack/ai/locks` instead;
preserve the stated persistence APIs and surrounding release notes.
- Around line 171-175: Update the later “no public API change” statement to
acknowledge that summarize() now accepts middleware and GenerationActivity
includes “summarize”; limit the claim to the resumability change, or explicitly
include these middleware API changes in the migration notes.
- Around line 248-252: Update the Memory tab description in the unreleased
changeset to use the final threadId-based scope terminology instead of
“session,” including the related text at the referenced later section. Ensure
the wording distinguishes telemetry scope from the removed sessionId identity
field.
- Around line 65-67: Update the persistence documentation to describe both
hydration paths: server-authoritative persistence requires either the server GET
endpoint reconstructChat or an explicitly supplied
hydrateGeneration/stream/rpcStream handler when no HTTP endpoint exists. Clarify
that automatic restore is not available without one of these options, and keep
the framework integration and adapter descriptions unchanged.
- Around line 320-324: Remove the "optional, feature-detected" language from the
RunStore.findActiveRun description in lines 320-324 to align with the
required-method guidance stated in lines 874-891. This ensures adapter
developers reading the earlier section understand that RunStore.findActiveRun is
a required method, not an optional one, preventing them from omitting it and
encountering compilation or conformance failures.

---

Outside diff comments:
In @.changeset/unreleased.md:
- Around line 992-1017: Separate the release-note entries so “Update model
metadata from OpenRouter API” has its own corresponding details, and add a
distinct heading for the chat hook identity changes described in the current
paragraph. Keep the existing threadId/id migration details under the new chat
identity heading.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 6dbe8f9a-ac25-4aae-9dd6-55954a40dc96

📥 Commits

Reviewing files that changed from the base of the PR and between d9d1e1f and 6599536.

📒 Files selected for processing (52)
  • .changeset/ag-ui-interrupts.md
  • .changeset/artifact-persistence-options-rename.md
  • .changeset/client-browser-refresh-durability.md
  • .changeset/client-declined-generation-restore.md
  • .changeset/client-generation-hydration-errors.md
  • .changeset/client-truncated-generation-stream.md
  • .changeset/client-typed-storage-adapter-defaults.md
  • .changeset/conformance-generation-stores.md
  • .changeset/core-jsdoc-server-fn-example.md
  • .changeset/core-result-transforms-required.md
  • .changeset/core-summarize-generation-middleware.md
  • .changeset/core-video-job-run-lifecycle.md
  • .changeset/define-lock.md
  • .changeset/define-store-helpers.md
  • .changeset/deprecate-generation-id.md
  • .changeset/devtools-memory-inspector.md
  • .changeset/durable-runs-survive-disconnect.md
  • .changeset/fast-fail-rejoin.md
  • .changeset/fresh-client-tail.md
  • .changeset/generate-video-result-transforms.md
  • .changeset/generation-mount-hydration-and-speech-restore.md
  • .changeset/generation-persistence-server-only.md
  • .changeset/generation-persistence.md
  • .changeset/generation-rejoin-settles-to-error.md
  • .changeset/generation-run-status-matches-run-status.md
  • .changeset/generation-run-threadid-required.md
  • .changeset/generation-threadid-from-the-activity.md
  • .changeset/hooks-angular-chat-option-parity.md
  • .changeset/hooks-expose-run-id.md
  • .changeset/hooks-generation-persistence-docs.md
  • .changeset/interrupt-binding-ownership.md
  • .changeset/interrupts-validation-ownership.md
  • .changeset/locks-to-core.md
  • .changeset/max-tool-calls-middleware.md
  • .changeset/memory-middleware.md
  • .changeset/memory-scope-threadid.md
  • .changeset/memorystream-agent-loop-delivery.md
  • .changeset/openai-reasoning-sampling.md
  • .changeset/persistence-packages.md
  • .changeset/rejoin-not-aborted-on-mount.md
  • .changeset/resumable-streams.md
  • .changeset/run-store-find-active-run-required.md
  • .changeset/sandbox-durability.md
  • .changeset/seamless-reload-resume.md
  • .changeset/server-function-generation-persistence.md
  • .changeset/shared-scope.md
  • .changeset/skill-discoverability.md
  • .changeset/summarize-resumable.md
  • .changeset/sync-models.md
  • .changeset/unreleased.md
  • .changeset/usechat-threadid-identity.md
  • docs/config.json
💤 Files with no reviewable changes (50)
  • .changeset/define-lock.md
  • .changeset/ag-ui-interrupts.md
  • .changeset/artifact-persistence-options-rename.md
  • .changeset/durable-runs-survive-disconnect.md
  • .changeset/core-summarize-generation-middleware.md
  • .changeset/run-store-find-active-run-required.md
  • .changeset/max-tool-calls-middleware.md
  • .changeset/memory-middleware.md
  • .changeset/generation-run-threadid-required.md
  • .changeset/locks-to-core.md
  • .changeset/memorystream-agent-loop-delivery.md
  • .changeset/fast-fail-rejoin.md
  • .changeset/hooks-generation-persistence-docs.md
  • .changeset/generation-mount-hydration-and-speech-restore.md
  • .changeset/define-store-helpers.md
  • .changeset/sync-models.md
  • .changeset/conformance-generation-stores.md
  • .changeset/generation-run-status-matches-run-status.md
  • .changeset/generation-persistence.md
  • .changeset/fresh-client-tail.md
  • .changeset/persistence-packages.md
  • .changeset/core-jsdoc-server-fn-example.md
  • .changeset/client-typed-storage-adapter-defaults.md
  • .changeset/seamless-reload-resume.md
  • .changeset/openai-reasoning-sampling.md
  • .changeset/deprecate-generation-id.md
  • .changeset/generation-rejoin-settles-to-error.md
  • .changeset/client-generation-hydration-errors.md
  • .changeset/generate-video-result-transforms.md
  • .changeset/core-result-transforms-required.md
  • .changeset/summarize-resumable.md
  • .changeset/server-function-generation-persistence.md
  • .changeset/client-declined-generation-restore.md
  • .changeset/sandbox-durability.md
  • .changeset/interrupt-binding-ownership.md
  • .changeset/memory-scope-threadid.md
  • .changeset/rejoin-not-aborted-on-mount.md
  • .changeset/shared-scope.md
  • .changeset/resumable-streams.md
  • .changeset/interrupts-validation-ownership.md
  • .changeset/client-browser-refresh-durability.md
  • .changeset/generation-persistence-server-only.md
  • .changeset/generation-threadid-from-the-activity.md
  • .changeset/skill-discoverability.md
  • .changeset/hooks-expose-run-id.md
  • .changeset/core-video-job-run-lifecycle.md
  • .changeset/usechat-threadid-identity.md
  • .changeset/hooks-angular-chat-option-parity.md
  • .changeset/client-truncated-generation-stream.md
  • .changeset/devtools-memory-inspector.md

Comment thread .changeset/unreleased.md
Comment on lines +65 to +67
The `persistence` option also accepts `true` for a server-authoritative chat: the client caches nothing, and on mount it hydrates the thread from the server by its `threadId` (painting the stored transcript and tailing any run still generating). Use it to keep large transcripts off the client while the server stays authoritative for history; it needs a connection with a `hydrate` handler and a server GET endpoint (`reconstructChat`). Passing an adapter is client-authoritative; omitting `persistence` (or `false`) is ephemeral, in-memory only.

New web storage adapters are exported for this: `localStoragePersistence`, `sessionStoragePersistence`, and `indexedDBPersistence` (plus `StorageUnavailableError` and the `ChatPersistedState` / `ChatStorageAdapter` / `ChatPersistenceOption` types). Because durability rides the existing `persistence` option, every framework integration (`react`, `solid`, `vue`, `svelte`, `angular`, `preact`) gets it with no framework-specific code.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Document both supported hydration paths.

Line [65] says server-authoritative persistence requires a server GET endpoint. Line [400] says every built-in connection has a hydrateGeneration handler. Lines [918]-[922] add lightweight stream() / rpcStream() handlers that must be supplied when no HTTP endpoint exists.

State the final requirement as “an HTTP endpoint or an explicitly supplied handler.” Otherwise users can expect automatic restore and receive a warning or no-op.

Also applies to: 397-401, 918-922

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.changeset/unreleased.md around lines 65 - 67, Update the persistence
documentation to describe both hydration paths: server-authoritative persistence
requires either the server GET endpoint reconstructChat or an explicitly
supplied hydrateGeneration/stream/rpcStream handler when no HTTP endpoint
exists. Clarify that automatic restore is not available without one of these
options, and keep the framework integration and adapter descriptions unchanged.

Comment thread .changeset/unreleased.md
Comment on lines +171 to +175
`summarize()` accepts generation middleware, so summaries can be persisted.

`useSummarize({ persistence: true, threadId })` type-checked exactly like the six media hooks, but `summarize()` took no `middleware`, so no library path could ever write its run record and a reload restored nothing. It now takes `middleware` like the `generate*` activities: one `onStart`, the result transforms applied to the `SummarizationResult`, then `onFinish` / `onError`, in both streaming and non-streaming mode (a consumer that disconnects mid-summary fires `onAbort`). In streaming mode the transformed result is what is yielded, so the client and the persisted record hold the same object.

`GenerationActivity` gained `'summarize'`, and `otelMiddleware` maps it to the `summarize` operation name. Summaries are text, so there are no artifacts: a persistence middleware stores the run record and its result and nothing else.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Scope the “no public API change” claim.

Lines [171]-[175] add middleware to summarize() and add the summarize activity. Lines [979]-[983] say there is no public API change beyond runId and threadId.

Qualify the later statement as applying only to the resumability change, or include the middleware migration.

Also applies to: 979-983

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.changeset/unreleased.md around lines 171 - 175, Update the later “no public
API change” statement to acknowledge that summarize() now accepts middleware and
GenerationActivity includes “summarize”; limit the claim to the resumability
change, or explicitly include these middleware API changes in the migration
notes.

Comment thread .changeset/unreleased.md
Comment on lines +181 to +185
Submitting a job now OPENS the run and `getVideoJobStatus()` closes it, with the two calls correlated by the provider's **`jobId`** — the one id a poller structurally cannot be missing, since it cannot poll without it. Nothing else has to be threaded through:

- `generateVideo()` (non-streaming) passes `threadId` and the prompt inputs to middleware, files the run under an id derived from the provider + `jobId`, applies the result transforms to the submission (so the run record captures the `jobId` and stays resumable from a later request or process), and fires **no terminal hook**.
- `getVideoJobStatus()` accepts `threadId` and `middleware`, and recomputes the same run id from `adapter` + `jobId`. On the poll that first observes a terminal job state it resumes that run, applies the result transforms — which is where persistence copies the video into the blob store and rewrites `url` to a durable one, so the returned result and the stored record carry the same urls — and fires `onFinish`, or `onError` when the job (or the url fetch) failed. Intermediate polls invoke nothing. Its result gained `jobId`, `expiresAt`, and `artifacts`; `VideoJobResult` gained `artifacts` (refs for persisted prompt INPUTS, e.g. a start frame).
- `runId` on a non-streaming `generateVideo()` call is **ignored** (it remains the wire run id in stream mode). The run id has to be recomputable by the poll from the `jobId` alone; honoring a custom one would reintroduce the failure this avoids — a caller who set it on the submit and forgot it on the poll would silently open a second record while the first sat unfinished forever.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🗄️ Data Integrity & Integration | 🟡 Minor | ⚡ Quick win

State one deterministic video run ID formula.

Line [183] says the run ID is derived from the provider and jobId. Line [185] says it must be recomputable from jobId alone.

Clarify whether the provider or adapter is part of the key. The submit and poll paths must use the exact same formula to avoid orphaned runs.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.changeset/unreleased.md around lines 181 - 185, Clarify the changelog with
one deterministic run ID formula, explicitly stating whether it uses the
provider or adapter together with jobId. Ensure both generateVideo() and
getVideoJobStatus() descriptions reference that exact same formula, including
the same identifier source and ordering, so polling always resumes the submitted
run.

Comment thread .changeset/unreleased.md
Comment on lines +248 to +252
The DevTools panel now has a **Memory** tab for any chat wired with
`memoryMiddleware`. It shows, per scope (session), an operations timeline (each
turn's recall — query, fragment count, injected system-prompt size, whether
memory tools were exposed, duration) and the current stored records/facts when
the adapter implements the optional `inspect`/`listFacts` methods.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🗄️ Data Integrity & Integration | 🟡 Minor | ⚡ Quick win

Use the final memory scope terminology.

Line [249] describes the Memory tab as scoped by “session.” Lines [750]-[768] remove public sessionId and require threadId.

Replace “session” with the final threadId-based scope terminology. This prevents consumers from selecting the removed identity field or confusing telemetry scope with isolation scope.

Also applies to: 750-768

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.changeset/unreleased.md around lines 248 - 252, Update the Memory tab
description in the unreleased changeset to use the final threadId-based scope
terminology instead of “session,” including the related text at the referenced
later section. Ensure the wording distinguishes telemetry scope from the removed
sessionId identity field.

Comment thread .changeset/unreleased.md Outdated
Comment on lines +320 to +324
- **`RunStore.findActiveRun(threadId)`** — new optional, feature-detected store
method returning the most recent `'running'` run for a thread. Implemented by
the in-memory reference backend and covered by the conformance testkit, so any
adapter that provides it is held to the same invariants (most-recent-running
wins, thread-scoped, null when idle).

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Use one findActiveRun contract.

Lines [320]-[324] describe RunStore.findActiveRun as optional. Lines [874]-[891] say it is required. An adapter following the earlier section will omit the method and then fail compilation or conformance checks.

Remove the stale optional description and keep the required-method migration guidance.

Also applies to: 874-891

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.changeset/unreleased.md around lines 320 - 324, Remove the "optional,
feature-detected" language from the RunStore.findActiveRun description in lines
320-324 to align with the required-method guidance stated in lines 874-891. This
ensures adapter developers reading the earlier section understand that
RunStore.findActiveRun is a required method, not an optional one, preventing
them from omitting it and encountering compilation or conformance failures.

Comment thread .changeset/unreleased.md
Comment on lines +653 to +657
Move multi-instance **locks** to `@tanstack/ai` under a dedicated `@tanstack/ai/locks` subpath, and nest persistence agent skills like `ai-core`.

- **`LockStore` / `InMemoryLockStore` / `LocksCapability` / `getLocks` / `provideLocks` / `withLocks`** live in `@tanstack/ai/locks` (not the main `@tanstack/ai` barrel, and not `@tanstack/ai-persistence`).
- `@tanstack/ai-sandbox` consumes the core `LocksCapability` token (no local lock re-export).
- The locks agent skill moves with the code: `ai-core/locks` in `@tanstack/ai`, not `ai-persistence/locks`.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Correct the lock package ownership.

Line [809] says @tanstack/ai-persistence ships LockStore, withLocks, and InMemoryLockStore. Lines [653]-[657] move these APIs to @tanstack/ai/locks and explicitly exclude them from persistence.

Update the persistence bullet so users do not import the locks from the wrong package.

Also applies to: 804-810

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.changeset/unreleased.md around lines 653 - 657, Update the persistence
package bullet in the unreleased changeset to remove LockStore, withLocks, and
InMemoryLockStore from `@tanstack/ai-persistence`, directing users to
`@tanstack/ai/locks` instead; preserve the stated persistence APIs and surrounding
release notes.

@AlemTuzlak
AlemTuzlak force-pushed the chore/bump-unreleased-docs-dates branch from 26b8c0a to f775c5b Compare August 4, 2026 15:26
…ackages

Three housekeeping changes before the next release.

Docs dates: every page added after the last release commit (55db7d4) is
not on npm yet, so its `addedAt` is today. Their `updatedAt` is dropped — a
page that ships today was never updated in public. 34 pages.

Changesets: the 70 pending changesets are merged into one. The package list
is the union of all of them, and each package keeps its highest bump level,
so the release is identical (31 packages: 20 minor, 11 patch, 0 major).
Every summary is kept in the body.

New packages: `ai-byteplus`, `ai-durable-stream`, `ai-memory` and
`ai-persistence` now carry `publishConfig.access: "public"`, and their
versions match what is on npm after the first manual publish. npm can only
attach a trusted publisher to a package that already exists, so the first
version had to be published by hand; every release after this one goes
through OIDC like the other packages.
@nx-cloud

nx-cloud Bot commented Aug 4, 2026

Copy link
Copy Markdown

View your CI Pipeline Execution ↗ for commit f775c5b

Command Status Duration Result
nx run-many --targets=build --exclude=examples/... ✅ Succeeded 2s View ↗

☁️ Nx Cloud last updated this comment at 2026-08-04 15:33:40 UTC

@pkg-pr-new

pkg-pr-new Bot commented Aug 4, 2026

Copy link
Copy Markdown

Open in StackBlitz

@tanstack/ai

npm i https://pkg.pr.new/@tanstack/ai@1051

@tanstack/ai-acp

npm i https://pkg.pr.new/@tanstack/ai-acp@1051

@tanstack/ai-angular

npm i https://pkg.pr.new/@tanstack/ai-angular@1051

@tanstack/ai-anthropic

npm i https://pkg.pr.new/@tanstack/ai-anthropic@1051

@tanstack/ai-bedrock

npm i https://pkg.pr.new/@tanstack/ai-bedrock@1051

@tanstack/ai-byteplus

npm i https://pkg.pr.new/@tanstack/ai-byteplus@1051

@tanstack/ai-claude-code

npm i https://pkg.pr.new/@tanstack/ai-claude-code@1051

@tanstack/ai-client

npm i https://pkg.pr.new/@tanstack/ai-client@1051

@tanstack/ai-code-mode

npm i https://pkg.pr.new/@tanstack/ai-code-mode@1051

@tanstack/ai-code-mode-skills

npm i https://pkg.pr.new/@tanstack/ai-code-mode-skills@1051

@tanstack/ai-codex

npm i https://pkg.pr.new/@tanstack/ai-codex@1051

@tanstack/ai-devtools-core

npm i https://pkg.pr.new/@tanstack/ai-devtools-core@1051

@tanstack/ai-durable-stream

npm i https://pkg.pr.new/@tanstack/ai-durable-stream@1051

@tanstack/ai-elevenlabs

npm i https://pkg.pr.new/@tanstack/ai-elevenlabs@1051

@tanstack/ai-event-client

npm i https://pkg.pr.new/@tanstack/ai-event-client@1051

@tanstack/ai-fal

npm i https://pkg.pr.new/@tanstack/ai-fal@1051

@tanstack/ai-gemini

npm i https://pkg.pr.new/@tanstack/ai-gemini@1051

@tanstack/ai-grok

npm i https://pkg.pr.new/@tanstack/ai-grok@1051

@tanstack/ai-grok-build

npm i https://pkg.pr.new/@tanstack/ai-grok-build@1051

@tanstack/ai-groq

npm i https://pkg.pr.new/@tanstack/ai-groq@1051

@tanstack/ai-isolate-cloudflare

npm i https://pkg.pr.new/@tanstack/ai-isolate-cloudflare@1051

@tanstack/ai-isolate-node

npm i https://pkg.pr.new/@tanstack/ai-isolate-node@1051

@tanstack/ai-isolate-quickjs

npm i https://pkg.pr.new/@tanstack/ai-isolate-quickjs@1051

@tanstack/ai-mcp

npm i https://pkg.pr.new/@tanstack/ai-mcp@1051

@tanstack/ai-memory

npm i https://pkg.pr.new/@tanstack/ai-memory@1051

@tanstack/ai-mistral

npm i https://pkg.pr.new/@tanstack/ai-mistral@1051

@tanstack/ai-ollama

npm i https://pkg.pr.new/@tanstack/ai-ollama@1051

@tanstack/ai-openai

npm i https://pkg.pr.new/@tanstack/ai-openai@1051

@tanstack/ai-opencode

npm i https://pkg.pr.new/@tanstack/ai-opencode@1051

@tanstack/ai-openrouter

npm i https://pkg.pr.new/@tanstack/ai-openrouter@1051

@tanstack/ai-persistence

npm i https://pkg.pr.new/@tanstack/ai-persistence@1051

@tanstack/ai-preact

npm i https://pkg.pr.new/@tanstack/ai-preact@1051

@tanstack/ai-react

npm i https://pkg.pr.new/@tanstack/ai-react@1051

@tanstack/ai-react-ui

npm i https://pkg.pr.new/@tanstack/ai-react-ui@1051

@tanstack/ai-sandbox

npm i https://pkg.pr.new/@tanstack/ai-sandbox@1051

@tanstack/ai-sandbox-cloudflare

npm i https://pkg.pr.new/@tanstack/ai-sandbox-cloudflare@1051

@tanstack/ai-sandbox-daytona

npm i https://pkg.pr.new/@tanstack/ai-sandbox-daytona@1051

@tanstack/ai-sandbox-docker

npm i https://pkg.pr.new/@tanstack/ai-sandbox-docker@1051

@tanstack/ai-sandbox-local-process

npm i https://pkg.pr.new/@tanstack/ai-sandbox-local-process@1051

@tanstack/ai-sandbox-sprites

npm i https://pkg.pr.new/@tanstack/ai-sandbox-sprites@1051

@tanstack/ai-sandbox-vercel

npm i https://pkg.pr.new/@tanstack/ai-sandbox-vercel@1051

@tanstack/ai-solid

npm i https://pkg.pr.new/@tanstack/ai-solid@1051

@tanstack/ai-solid-ui

npm i https://pkg.pr.new/@tanstack/ai-solid-ui@1051

@tanstack/ai-svelte

npm i https://pkg.pr.new/@tanstack/ai-svelte@1051

@tanstack/ai-utils

npm i https://pkg.pr.new/@tanstack/ai-utils@1051

@tanstack/ai-vue

npm i https://pkg.pr.new/@tanstack/ai-vue@1051

@tanstack/ai-vue-ui

npm i https://pkg.pr.new/@tanstack/ai-vue-ui@1051

@tanstack/openai-base

npm i https://pkg.pr.new/@tanstack/openai-base@1051

@tanstack/preact-ai-devtools

npm i https://pkg.pr.new/@tanstack/preact-ai-devtools@1051

@tanstack/react-ai-devtools

npm i https://pkg.pr.new/@tanstack/react-ai-devtools@1051

@tanstack/solid-ai-devtools

npm i https://pkg.pr.new/@tanstack/solid-ai-devtools@1051

commit: 66c1824

It was only needed for the first manual `npm publish`, which is done. The
release publishes through changesets, and `.changeset/config.json` already
sets `"access": "public"`.
@AlemTuzlak
AlemTuzlak merged commit 7499171 into main Aug 4, 2026
9 checks passed
@AlemTuzlak
AlemTuzlak deleted the chore/bump-unreleased-docs-dates branch August 4, 2026 15:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant