Repository navigation
Conversation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Catalog moves every @tanstack/ai* package to 1.0 (ai, ai-client, ai-code-mode, ai-persistence 1.0.1; the rest 1.0.0). minimumReleaseAgeExclude collapses the per-package TanStack entries into one '@tanstack/*' pattern. claude-agent-sdk 0.3.312, opencode sdk 1.19.4, modelcontextprotocol sdk 1.32.2. @agentclientprotocol/sdk stays on ~1.8.0, the range the bundled @tanstack/ai-acp 1.0 is built against. The 0.x-keyed patchedDependencies entries cannot apply to 1.0 and are dropped. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
TOOL_CALL_START drops the toolName alias (toolCallName only); a TOOL_CALL_RESULT error is metadata.tanstack.state 'output-error' and success carries no state. ApprovalRequestedEvent is gone, so the gate's approval-requested chunk is typed as a plain CustomEvent. chat(), useChat() and tool-bridge provisioning now require threadId; stories and tests pass a stable one. A complete structured-output part carries data. The queued-message helpers take the readonly queue the client now returns. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Bumps vitest, @vitest/browser-playwright and @vitest/coverage-v8 from 4.1.12 to 5.0.5. Patches vitest@5.0.5 with the unreleased upstream fix vitest-dev/vitest#11709 (read cached server modules as utf-8), which otherwise crashes error formatting with code.charCodeAt (#11682). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
TanStack router/start set to latest (react-start 1.169.4, react-router 1.170.46, router-cli 1.167.46, router-plugin 1.168.48, solid-router 1.170.43, react-form 1.33.5, redact 0.2.3). Start 1.169 removed the built-in useSession; the try pairing token and dismissal flag move to Start's getCookie/setCookie helpers (token zod-validated as a uuid). redact 0.2's vite plugin now owns the react-dom/server and use-sync-external-store aliases, so the e2e app keeps only the static entries it does not cover. Site: fumadocs-core/ui 16.17.8, fumadocs-mdx 15.4.10, radix-ui 1.8.1, shadcn 4.23.0, tailwind-merge 3.7.0, takumi-js 2.18.2, wrangler 4.154.0, @cloudflare/vite-plugin 1.65.0, lenis 1.3.27, geist 5.3.0, magic-move 4.5.0, mermaid 12.2.0 (also ui-kit-chat). @huggingface/transformers held at 4.2.x: every 4.3 pulls onnxruntime-web 1.31 whose asyncify wasm is 25.6 MiB, over the Workers 25 MiB asset limit, which fails prerender. nextjs example: eslint 10.13.0, eslint-config-next 16.4.3. mermaid 12 bundles elkjs; the extension-testkit host's UnoCSS pipeline scanned it from node_modules and emitted an unparsable selector, so node_modules is excluded there. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
e2e/solid-start: @solidjs/start 2.1.0, @solidjs/router 1.0.0, @solidjs/vite-plugin-nitro-2 0.3.2; start 2.1 peers vite ^8 so the app now takes vite from the catalog. e2e/svelte: @sveltejs/kit 3.1.0, adapter-auto 8.0.0, vite-plugin-svelte 7.3.1, svelte 5.57.3, svelte-check 4.7.7. e2e/astro: astro 7.4.2 (engines follow astro's >=22.23.4). whiteboard: @excalidraw/mermaid-to-excalidraw 3.0.0, @takumi-rs/core + helpers 2.18.2, @libsql/client 0.18.0, cytoscape 3.34.4, drizzle-orm 0.45.4, drizzle-kit 0.31.11. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… vite exemption SvelteKit 3 removed $lib: the app declares #lib in package.json imports and its tsconfig extends $app/tsconfig. astro 7.4 auto-backgrounds astro dev when it detects an AI agent, so the playwright webServer exited early; --ignore-lock keeps it a foreground one-off server. solid-start no longer needs its own vite line, so check-catalog drops that exemption and its test exercises the remaining whiteboard drizzle exemption. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… latest turbo 2.11.10, @j178/prek 0.5.7, @arethetypeswrong/cli 0.18.5, fallow 3.36.0 (action pin moved to the v3.36.0 commit), @changesets/cli 3.0.3, @changesets/changelog-github 1.0.1, @changesets/parse 1.0.0, execa 10.2.1, js-yaml 5.5.0 (ships its own types, @types/js-yaml dropped), minimatch 10.2.6, @ast-grep/napi 0.51.0, nypm 0.6.12, @tanstack/intent 0.5.6. changesets 3: privatePackages.version defaults to false now, set it back to true so private @conciv/* stay in the fixed group; 'changeset tag' is 'git-tag'; publish passes --no-git-checks itself and rejects unknown flags; changesets/action v2 inputs renamed (version-script, publish-script, commit-message, pr-title). intent 0.5 requires reference files to be linked from SKILL.md. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…string, unplugin, chokidar) babel-dead-code-elimination 2.0.0, babel-preset-solid 1.9.16, magic-string 1.4.5, unplugin-solid 2.0.0, chokidar 6.0.0, unplugin 3.6.0, launch-editor 2.14.2. Held: @babel/core and @babel/preset-typescript stay 7.29.7 (babel-dead-code-elimination 2 and babel-preset-solid still build on babel 7). unplugin-solid stays on 2.0.0 (3.0 needs Solid 2). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… rrweb 2.2, pretext 1.0) @pierre/diffs 1.6.2: the third File/FileDiff constructor argument is now the owner render callback instead of a container-managed boolean; the Solid wrappers pass a callback that re-renders with the current props. @tanstack/solid-pacer 0.24.0. @tanstack/hotkeys 0.18.0 and @tanstack/solid-hotkeys 0.17.0: RawHotkey is RawHotkeyChord and a parsed chord is already a registerable chord. rrweb, @rrweb/types, @rrweb/rrweb-plugin-console-record, rrweb-player 2.2.0, js-beautify 2.0.3, @chenglou/pretext 1.0.0, fonts, @zag-js/json-tree-utils and focus-visible 1.47.0, @floating-ui/dom 1.8.0, @chromatic-com/storybook 5.6.0, @testing-library/dom 10.4.2. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
bippy 0.7 dropped getFiberStack, getNearestHostFiber, getTimings and getFallbackOwnerStack. The react bridge walks the return chain itself, finds host and composite fibers with traverseFiber (descending then ascending, as getNearestHostFiber did), and uses the renamed getFallbackParentStack. The render tracker computes self time from actualDuration directly. Lockfile for the whole lane. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…yncRender syncRender returns the owner render callback the 1.6 File/FileDiff constructors take, so a rerender the instance asks for renders the current payload from the one place that already owns rendering, instead of an untracked props read inside each wrapper. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@chenglou/pretext 1.0 rejects a font string that is not a canvas font. A detached viewport has no computed style, so the probe read an empty font and pretext threw; 0.0.8 measured that with the canvas default instead. The estimator now returns no estimate until the viewport is in the document, so metrics always come from real styles. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… on 1.0 1.0 still declares the projection capability on every withSandbox run while providing it only for a workspace, so each workspace-less turn ended in a RUN_ERROR from the engine's provides check, and still builds the projection root through resolveHarnessCwd. The local-process provider still forgets its handles, so destroy(id) cannot kill the CLI it spawned. Both 0.x patches are ported to the 1.0 dist; the stdin error-listener hunk is dropped because 1.0 ships it (src/handle.ts:918). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
rrweb 2.2 creates the replay iframe sandboxed and throws when the root is not in a document. The saved-recording player mounted from a ref callback, before the dialog attached it, so the replay never rendered. Both players now build through one whenConnected step, and the style scope is read once connected so rrweb's injected styles are found in the right root. The live tick feeds events through one helper and scrub steps come from a lookup, which keeps both callbacks under the complexity gate. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
toHaveTextContent is now strict equality: partial and RegExp checks move to toMatchTextContent, or assert the full text where it is stable. Locators match exactly by default: substring getByText calls pass exact: false. packages/extensions/page sets its React JSX transform via oxc. Failure screenshots and attachments now land in .vitest/. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
# Conflicts: # pnpm-lock.yaml
# Conflicts: # pnpm-lock.yaml
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ack AI docs Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ssion card Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…testkit subpaths Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
# Conflicts: # packages/ui-kit-chat/test/virtual-scroll-coverage.browser.test.tsx Co-authored-by: omridevk <9701896+omridevk@users.noreply.github.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…get the patches Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…the @conciv/ai changeset Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…alm approval pause checks Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…pes resolve Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…rowser suite Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…lves, delivery split An ask recorded outside a chat turn stores a one-time grant only that caller's retry consumes, and permissionDecision tells the widget whether to post the retry message. MCP asks share admitCall. settle survives a throwing end hook. Socket and SSE delivery move to delivery.ts. Run lifecycle reaches open panes over the push channel, and an adopted native session keeps its derived title. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ovals Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Other e2e runs leave AGENTS.md and .conciv inside the app directories, so the clone inherited them depending on task order. Copying git-tracked files replaces the skip list. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
next dev --webpack only compiles instrumentation.ts when its watcher has already reported the file by the time the server prepares. A scan that lags by about 80ms leaves instrumentation.js unemitted, Next memoizes the miss, and register() never runs for the process, so the engine never starts. Emit the entry in the first server build, which Next awaits before prepare. The packed spec gains a cell that delays the watcher's stat of instrumentation.ts, and the engine timeout now reports whether .next/dev/server/instrumentation.js exists. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The server no longer broadcasts run lifecycle over the push channel. When a
run starts it publishes one session-level conciv.session-run {runId} event.
A client that did not start that run re-hydrates the transcript and tails the
run through joinRun on its live subscription, so content, lifecycle and
errors all come from the run log.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…transcript Stop then refresh read the transcript between the run turning aborted and its end hook advancing the import anchor, so the stopped prompt was imported again as a second user message. A run now stays live until its end hook finishes, and hydrate waits for settling runs before syncing. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… works after a session switch The panel route passes chat() into one long-lived ChatProvider, which captured the first chat it saw. After New session the queue strip showed the new chat's queue but Remove cancelled on the old chat, so the item still ran. The provider now keys its scope on the chat it is given. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The user turn mapped only document parts to a card, so an image the user sent rendered nothing in the thread. Images now take the same attachment card, which falls back to the image tile. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
compact stored the raw thread length, but the widget gets the thread with a run's assistant segments joined, so after any tool turn the marker pointed past the end and the compact divider never drew. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…r the complexity gate Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
withPersistence throttles streaming snapshots to about once a second and does not write the remainder on abort, so a stopped turn rehydrated short. The conciv-turn middleware follows the streamed assistant text and, on abort, rewrites that message in the library's message store. Stop now returns once the run has settled, so the hydrate that follows reads the flushed text. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Mermaid rendered in its own lavender default. The diagram now uses mermaid's base theme with themeVariables resolved from the --chat-* tokens at render time, so light and dark both follow the widget scheme. No new tokens. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A CLI ask carries only provider and toolName beside its title, so the strip's first-string-argument target read "claude-code". The strip now renders the ask's title. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…atch matchingItems sorted only by group, and the listbox kept a stale highlight while the query narrowed, so /context + Enter ran /21st-ui-build. Matches now rank exact name, name prefix, name contains, then description, and the listbox highlights the first row whenever its collection changes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ore its first chunk The bar keyed busy off the stream's RUN_STARTED (sessionGenerating), which a CLI adapter emits only once the CLI prints; the thread already keyed off the server run lifecycle. The bar now also counts sessionRunning, so a compact run shows RUNNING from start to end. The scripted harness gains a start gate to hold a run before RUN_STARTED. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…er the complexity gate Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Draft. Every dependency to its latest release (48h release-age window,
@tanstack/*exempt), plus the@tanstack/ai1.0 migration and the chat plane rebuilt on the library. Follow-up to #612.In this branch now
apps/site, examples): TanStack router/start 1.169 (useSessionreplaced bygetCookie/setCookie), fumadocs, wrangler, mermaid 12 (ELK layout and the neo look are now the default: a visible diagram change), shadcn, radix and more.@solidjs/vite-plugin-nitro-2), SvelteKit 3, astro 7.4.2, whiteboard deps.release.ymlnow uses changesets/action v2 input names; main's workflow was silently ignoring the v1 inputs), fallow 3.36, turbo, bippy 0.7, pretext 1.0, rrweb 2.2, @pierre/diffs 1.6 and the rest.docs/superpowers/specs/2026-10-29-approvals-deny-and-retry.md,2026-10-30-conciv-ai-package.md,2026-10-30-chat-plane-on-library.md.Coming into this branch
@tanstack/ai1.0 family. New@conciv/aipackage, the only place that imports@tanstack/ai*(enforced by an oxlint rule). New@conciv/chat, which rebuilds the chat plane on the library's run:withPersistence,withLocks,withSandbox, library delivery,requestRunCancel,reconstructChat,discover_tools. Approvals use deny-and-retry. The chat tests become 2 files.minimumReleaseAgeExcludetrimmed to@tanstack/*, and the unused jazz entries removed.Held back
Local dependency patches (approved)
vitest@5.0.5: the vitest#11709 fix.@tanstack/ai-sandbox: workspace-less runs and the projection root.@tanstack/ai-sandbox-local-process: stop kills the stopped run's CLI, SIGTERM then SIGKILL.@tanstack/ai-code-mode: acallIdon thecode_mode:external_*events.Before ready
Full gates (frozen install, check-catalog, test, typecheck, lint, format, fallow, changesets, the calm perf gate in Chromium and Firefox), plus the site and widget checked in a browser.
🤖 Generated with Claude Code