# What changed in braintrust

> 204 changes in braintrust 3 from its official release notes, upgrade guides and advisories: 8 breaking, 1 deprecations, 78 new APIs and options. Each one cited. Sources checked 2026-10-18. HTML: https://unstale.sh/npm/braintrust/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## braintrust 3

### Breaking changes

- Changes the batch evals API into an API for evals with deferred AI provider calls. (3.33.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.33.0)
- Removes output from the dataset pipeline row type definition. (3.16.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.16.0)
- The @flue/runtime export wrapFlueContext was removed. (3.15.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.15.0)
- The @flue/runtime export wrapFlueSession was removed. (3.15.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.15.0)
- Rejects `__proto__`, `constructor`, and `prototype` keys to prevent prototype pollution from untrusted merge sources. (3.12.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.12.0)
- Rejects `__proto__`, `constructor`, and `prototype` keys to prevent prototype pollution from untrusted merge sources. (3.12.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.12.0)
- Adds the canonical Next.js setup utility in place of the webpack loader/plugin. (3.12.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.12.0)
- Built-in tools are now nested under sub-agents. (3.10.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.10.0)

### Deprecations

- Deprecates the old bundler plugin aliases in favor of the new aliases. (3.12.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.12.0)

### New APIs and options

- Workflow evals now support batch tasks and scorers. (3.37.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.37.0)
- Eval cancellation now stops scheduling trials, aborts the signal passed to task hooks, and waits for in-flight tasks and scorers to settle before rejecting. Pass hooks.signal to task APIs or check signal.aborted to stop work early. (3.37.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.37.0)
- Logger options now include _createInProjectGroup. (3.36.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.36.0)
- Helper types for pushing pre-processors are now exposed. (3.36.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.36.0)
- Add projectGroupName to create projects inside a project group. (3.36.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.36.0)
- Adds span provenance for Temporal and OpenAI Agents SDK. (3.36.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.36.0)
- Adds instrumentation for OpenAI multimodal APIs. (3.35.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.35.0)
- Adds hooks for exporting spans. (3.35.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.35.0)
- Adds AI SDK instrumentation for typesafe ai jev. (3.34.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.34.0)
- Adds instrumentation for @typesafe-ai/sdk, allowing developers to instrument its usage with Braintrust. (3.34.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.34.0)
- Adds utilities to push and preview custom views. (3.33.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.33.0)
- Adds instrumentation for Google GenAI multimodal embeddings. (3.33.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.33.0)
- Adds instrumentation for the LangGraph SDK. (3.33.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.33.0)
- Adds instrumentation for the OpenAI agents API. (3.33.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.33.0)
- Adds advanced filters to Trace.getSpans(), allowing developers to filter spans with more control. (3.33.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.33.0)
- Prompt templates support input audio content. (3.32.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.32.0)
- Tool IDs are tracked for AI SDK v6. (3.31.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.31.0)
- Adds instrumentation for the OpenAI Batch API. (3.30.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.30.0)
- initDataset() supports datasetId. (3.29.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.29.0)
- loadPrompt accepts an apiKey argument. (3.29.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.29.0)
- Instrumentation now supports Vercel AI SDK image generation. (3.29.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.29.0)
- An experimental batch evals API was added. (3.28.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.28.0)
- Voyage instrumentation was added. (3.28.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.28.0)
- Adds instrumentation for @cloudflare/think. (3.27.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.27.0)
- Adds support for flue v2. (3.27.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.27.0)
- Adds meta.eval.input to vitest-evals. (3.27.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.27.0)
- Adds instrumentation for ollama. (3.27.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.27.0)
- Adds instrumentation for agents. (3.26.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.26.0)
- Adds instrumentation for @cloudflare/ai-chat. (3.26.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.26.0)
- Adds instrumentation for @huggingface/transformers. (3.26.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.26.0)
- Support is added for v1 of the OpenRouter SDK. (3.25.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.25.0)
- Adds LangSmith tracing. (3.23.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.23.0)
- Adds a scorer that exposes helpers to evaluate agents. (3.21.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.21.0)
- Forwards and picks up the `--sample N` flag. (3.21.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.21.0)
- Adds an API for distributed tracing across service boundaries. (3.21.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.21.0)
- Adds an API for distributed tracing across service boundaries. (3.21.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.21.0)
- Adds a flag to toggle realtime mode in the span fetcher. (3.21.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.21.0)
- Adds braintrustFlueInstrumentation() to make manual instrumentation slightly cleaner. (3.20.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.20.0)
- Adds support for @anthropic-ai/bedrock-sdk. (3.19.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.19.0)
- Adds support for @aws-sdk/client-bedrock-runtime. (3.19.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.19.0)
- Adds support for manual instrumentation for flue v1. (3.19.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.19.0)
- Adds support for @strands-agents/sdk. (3.19.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.19.0)
- Adds AI SDK v7 support. (3.18.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.18.0)
- Adds instrumentation for the pi-coding-agent package. (3.18.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.18.0)
- Adds project-level classifier builder support for function push. (3.18.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.18.0)
- Adds Google GenAI instrumentation for the interactions API. (3.18.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.18.0)
- Inline eval cases can carry explicit origin metadata. (3.18.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.18.0)
- Installing braintrust exposes a bt command in node_modules/.bin that runs the prebuilt native binary for your platform. (3.17.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.17.0)
- invoke() now accepts overrides. (3.16.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.16.0)
- Exports LocalTrace for use by developers. (3.16.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.16.0)
- Adds an environment variable to control the caching location. (3.14.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.14.0)
- Adds auto-instrumentation for Mastra. (3.14.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.14.0)
- The dataset pipeline argument now includes the span id. (3.13.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.13.0)
- Dataset pipelines are available as an experimental feature. (3.13.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.13.0)
- Adds an entrypoint for CJS/TS patching. (3.12.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.12.0)
- Adds an esbuild bundler plugin alias. (3.12.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.12.0)
- Adds a Rollup bundler plugin alias. (3.12.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.12.0)
- Adds a Vite bundler plugin alias. (3.12.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.12.0)
- Adds a webpack bundler plugin alias. (3.12.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.12.0)
- Adds instrumentation for @flue/runtime. (3.12.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.12.0)
- Adds automatic instrumentation for LangChain. (3.12.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.12.0)
- Adds automatic instrumentation for LangGraph. (3.12.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.12.0)
- Adds automatic instrumentation for the OpenAI Agents SDK. (3.12.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.12.0)
- Adds instrumentation for Firebase genkit. (3.11.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.11.0)
- Captures multi-turn message APIs with a wrapper. (3.11.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.11.0)
- Captures reasoning for Groq reasoning models. (3.11.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.11.0)
- wrapVitest now supports projectId. (3.11.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.11.0)
- Thinking is now captured with Cohere. (3.10.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.10.0)
- Dataset versioning support was added, allowing developers to work with versioned datasets. (3.10.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.10.0)
- Experiment dataset filters are now included in experiment metadata. (3.10.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.10.0)
- Instrumentation was added for groq-sdk. (3.10.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.10.0)
- Adds cohere-ai instrumentation. (3.9.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.9.0)
- Adds per-input trialCount support to Eval(). (3.9.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.9.0)
- Captures grounding metadata for Google GenAI. (3.9.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.9.0)
- Adds instrumentation for @huggingface/inference. (3.9.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.9.0)
- Adds reranking instrumentation for AI SDK and Openrouter SDK. (3.9.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.9.0)
- Tracks server tool use metrics for the Anthropic SDK. (3.9.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.9.0)
- Adds x-bt-use-gateway to the allowed CORS headers. (3.9.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.9.0)

### Performance

- Project lookup is cached. (3.36.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.36.0)
- Streamlines SDK flushing. (3.34.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.34.0)
- Flue instrumentation uses less memory. (3.28.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.28.0)

### Behavior and default changes

- Made @types/react an optional peer dependency so braintrust no longer installs React 18 types for every consumer, avoiding ReactNode type conflicts in React 19 projects. (3.37.2) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.37.2)
- Eve compatibility now includes versions 0.62 and 0.70. (3.37.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.37.0)
- Streams ending with response.incomplete or response.failed now log output and token metrics; response.failed also logs the error. (3.37.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.37.0)
- Eve turns are now nested under the caller's propagated trace context. (3.37.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.37.0)
- Span customizers are enhanced. (3.36.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.36.0)
- Zod v4 schemas are supported for eval parameters and function parameters. (3.36.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.36.0)
- Scorer results can be nameless. (3.31.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.31.0)
- The eval command applies auto instrumentation. (3.29.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.29.0)
- Instrumentation uses new eve instrumentation hooks. (3.29.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.29.0)
- The instrumentation name is recorded as part of span provenance. (3.25.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.25.0)
- Captures readable reasoning on the originating LLM span across workflow resumes. (3.24.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.24.0)
- Adds span origin provenance metadata to Braintrust and OpenTelemetry spans. (3.24.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.24.0)
- Eve session IDs are recorded on all spans. (3.23.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.23.0)
- Eve turns are tracked as individual traces. (3.23.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.23.0)
- Strands logs inline document, image, and video bytes as Braintrust attachments. (3.23.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.23.0)
- Parallel tool calls are captured in Eve LLM span output. (3.23.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.23.0)
- Mastra now records `time_to_first_token` for streaming. (3.23.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.23.0)
- Stops capturing message history in AI SDK tool spans. (3.21.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.21.0)
- When optional dependencies are skipped, a postinstall script downloads the matching binary from the npm registry as a fallback. (3.17.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.17.0)
- Node.js login now searches upwards recursively for .env.braintrust containing BRAINTRUST_API_KEY. (3.13.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.13.0)
- Adds exponential backoff between existing retry attempts. (3.12.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.12.0)
- Git metadata is not collected by default when organization-level git metadata settings are absent. (3.12.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.12.0)
- Allows tracing across multiple projects by removing the parent project ID restriction. (3.12.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.12.0)
- OpenRouter instrumentation now captures reasoning. (3.11.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.11.0)
- The supported patching range now includes google ADK 1.0.0. (3.10.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.10.0)
- Improves task lifecycle handling and lifecycle details in the claude-agent-sdk. (3.9.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.9.0)

### Tooling

- Adds instrumentation for Google GenAI multimodal APIs. (3.35.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.35.0)
- Adds instrumentation for Groq audio APIs. (3.35.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.35.0)
- Instrumentation is added for @google/generative-ai. (3.32.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.32.0)
- Instrumentation is added for synchronous elevenlabs SDK APIs. (3.32.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.32.0)
- Adds instrumentation for anthropic.beta.sessions. (3.27.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.27.0)
- Auto instrumentation is updated to the current Pi Coding Agent SDK release. (3.25.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.25.0)
- Adds tracing support for HarnessAgent. (3.24.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.24.0)
- First-party eve instrumentation was added. (3.22.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.22.0)
- Adds instrumentation for Workflow Agent. (3.21.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.21.0)
- Adds a reporter for vitest-evals. (3.19.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.19.0)
- Adds instrumentation for Mistral classification and moderation APIs. (3.11.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.11.0)
- Adds instrumentation for @github/copilot-sdk. (3.11.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.11.0)
- Adds instrumentation for @openai/codex-sdk. (3.11.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.11.0)
- Instrumentation was added for @cursor/sdk. (3.10.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.10.0)
- Adds instrumentation for Google GenAI embedContent calls for text. (3.9.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.9.0)
- Adds instrumentation for the Anthropic SDK tool runner. (3.9.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.9.0)

### Fixes and other changes

- The Vite integration now supports Vite 8 dependency optimization. (3.37.1) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.37.1)
- Claude token usage statistics are fixed. (3.37.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.37.0)
- Empty numeric environment variables are ignored instead of being read as 0. (3.36.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.36.0)
- Empty numeric environment variables are ignored instead of being read as 0. (3.36.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.36.0)
- Preserves LangChain model attribution. (3.36.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.36.0)
- Fixes reasoning_content handling for OpenAI-compatible responses. (3.36.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.36.0)
- Stops resending span metadata on end rows. (3.36.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.36.0)
- Fixes token metrics when using AI SDK middleware. (3.35.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.35.0)
- Prevents dataset snapshots from silently including deleted rows. (3.35.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.35.0)
- Keeps tool spans current during execution so nested spans attach to the tool span. (3.35.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.35.0)
- Captures provider managed tool calls. (3.35.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.35.0)
- Captures the right provider when using the Vercel AI gateway. (3.35.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.35.0)
- OpenAI batch instrumentation now supports Uint8Array and Buffer JSONL sources. (3.34.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.34.0)
- OpenAI batch instrumentation now supports the /v1/embeddings endpoint. (3.34.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.34.0)
- Prevents collisions when eval trials are upserted. (3.33.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.33.0)
- Fixes a race in OTEL trace context propagation. (3.33.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.33.0)
- Fixes LangChain Anthropic token metrics. (3.31.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.31.0)
- Injects the instrumentation hook on Next.js versions below 15. (3.31.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.31.0)
- Fixes instrumentation of streamFunction. (3.30.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.30.0)
- Instrumentation output preserves all streaming chat choices. (3.29.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.29.0)
- LangChain reasoning tokens are recorded as a metric. (3.29.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.29.0)
- Anthropic thinking tokens are recorded as a metric. (3.29.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.29.0)
- noTraceIO is no longer ignored when wrapTraced wraps plain functions. (3.29.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.29.0)
- The limit is enforced across paginated dataset fetches. (3.28.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.28.0)
- Per-call token and cost metrics are now calculated correctly in the Claude Agent SDK integration. (3.28.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.28.0)
- The scorer now receives id and tags. (3.28.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.28.0)
- Subagent tool spans are now correctly parented in the Claude Agent SDK integration. (3.28.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.28.0)
- Returns any to fix type compatibility. (3.26.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.26.0)
- Fixes token counting in Google ADK. (3.26.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.26.0)
- Fixes output token counting for the generate content API. (3.26.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.26.0)
- Fixes output token counting for the interactions API. (3.26.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.26.0)
- Captures the system prompt in Strands agent model span input. (3.26.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.26.0)
- Fixes eval hanging until its configured timeout resolves. (3.25.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.25.0)
- Preserves HarnessAgent trace context across suspended turns. (3.25.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.25.0)
- Emits canonical LangChain JS total token metrics. (3.24.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.24.0)
- Cleans up span metadata produced by the Claude Agent SDK integration. (3.23.1) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.23.1)
- Transient failures are retried for internal, read-only BTQL requests used to fetch datasets, objects, spans, and prompt versions. (3.23.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.23.0)
- Unresolved dynamic model fallbacks are no longer reported as model metadata. (3.23.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.23.0)
- Mastra span IDs are used as Braintrust row IDs so logFeedback attaches feedback to the correct row. (3.22.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.22.0)
- Closes parent spans using AI SDK 7 `onEnd` callbacks. (3.21.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.21.0)
- Fixes function invocations by stripping `/v1/proxy` from the functions endpoint. (3.21.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.21.0)
- Properly anchors the preview domain CORS regex. (3.21.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.21.0)
- Synthesizes AI SDK total token metrics from prompt and completion counts. (3.21.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.21.0)
- Keeps model child spans correctly parented for concurrent calls sharing a model instance. (3.21.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.21.0)
- Logs the Anthropic system message first in span input. (3.19.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.19.0)
- Fixes dataset row origin for evals and playgrounds. (3.19.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.19.0)
- Fixes subagent span nesting and input. (3.18.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.18.0)
- Eval summaries compare against the experiment’s explicit base experiment ID. (3.18.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.18.0)
- Fixes span nesting. (3.18.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.18.0)
- Validates inline row origin for evals. (3.18.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.18.0)
- Fixes TTFT in AI SDK v6. (3.18.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.18.0)
- Preserves multi-byte UTF-8 characters split across chunk boundaries in streams. (3.16.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.16.0)
- Fixes instrumentation wrapping for the Cohere v2 subclient. (3.11.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.11.0)
- Fixes Google ADK agent naming in instrumentation. (3.11.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.11.0)
- Prevents duplicate LLM spans when multiple SDK instances are loaded in the same process. (3.11.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.11.0)
- Cancels body consumption immediately for object store uploads. (3.11.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.11.0)
- Prevents OpenAI instrumentation from reading a request body more than once. (3.11.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.11.0)
- Marks callModel parent spans as tasks and avoids double-counting metrics. (3.11.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.11.0)
- File transforms are skipped when the transform id is undefined, avoiding processing them in that case. (3.10.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.10.0)
- The export map for bundler plugins was corrected. (3.10.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.10.0)
- Directory warnings now show the correct eval file extension. (3.10.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.10.0)
- Streamed tool calls are now captured for Hugging Face. (3.10.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.10.0)
- Reasoning capture in Mistral was corrected. (3.10.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.10.0)
- Sets AI SDK top-level api spans to type function. (3.9.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.9.0)
- Ends OpenAI Agents child spans when the trace ends. (3.9.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.9.0)
- Collects logprob and refusals output for OpenAI streaming APIs. (3.9.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.9.0)
- Restores prompt cache metrics for the AI SDK. (3.9.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.9.0)
- Collects logprob and refusals output for OpenAI streaming APIs. (3.9.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.9.0)
- Captures Anthropic server tool use inputs for streaming APIs. (3.9.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.9.0)
- Uses a sync channel for AI SDK CJS streamText and streamObject in v4+. (3.9.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.9.0)
- Uses a sync channel for AI SDK CJS streamText and streamObject in v4+. (3.9.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.9.0)
- Prevents tool spans from being dropped when spawning subagents in the claude-agent-sdk. (3.9.0) — [release notes](https://github.com/braintrustdata/braintrust-sdk-javascript/releases/tag/braintrust%403.9.0)
