> ## Documentation Index
> Fetch the complete documentation index at: https://laminar.sh/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Changelog

New releases and improvements.

## July 2026

* **Claude Code and Codex plugins** - Trace [Claude Code](/tracing/integrations/claude-code) and [OpenAI Codex CLI](/tracing/integrations/codex) sessions in Laminar with a one-command install: `npx lmnr-cli@latest plugin add claude-code` (or `codex`) logs you in, picks a project, mints a key, and installs the plugin. Each turn becomes a trace with LLM calls, tool executions, and (for Claude Code) subagents, grouped into one session per conversation.
* **Generate render templates in the editor** - The [render template](/platform/render-templates#generate-a-template) editor now generates the JSX for you: name the template, describe the view you want, click **Generate**, and iterate with **Request changes**. For trace templates, generation also writes the span filter from an outline of the trace's real spans and refreshes the sample data against it. No more copying a prompt to an external AI tool, though the **Copy prompt** fallback remains in the Code tab.
* **Enable or disable Signals and alerts** - [Pause a Signal](/signals/quickstart#pause-and-resume-a-signal) with the **Active** switch in its settings: new traces stop being evaluated while existing events and clusters are kept, and paused Signals are grouped under a **Disabled** section on the Signals list. [Alerts](/signals/alerts#enable-or-disable-an-alert) get the same treatment, with an on/off switch directly on each alert card to silence notifications without losing the alert's configuration.
* **Evaluations UI refresh** - The [evaluations page](/evaluations/comparing-runs) now has a groups sidebar with run counts, a combined progression chart with one line per score dimension (legend toggles, per-run eye icons to exclude runs), and an aggregation picker (Average, Sum, Min, Max, Median, p90/p95/p99). The run detail page is a split view with the datapoint table next to an always-open trace panel, and side-by-side comparison shows `old → new` deltas on the score card and on every row.
* **Trace render templates** - [Render templates](/platform/render-templates#trace-templates) can now render a whole trace, not just one span's input or output. A SQL `WHERE` filter picks which spans the template receives, so one view can combine data across spans, like diffing an eval executor's output against the evaluator's target. Available from the view dropdown on any trace, next to Tree and Transcript.
* **Evals in the debugger** - Run an [evaluation](/evaluations/introduction) with `LMNR_DEBUG=true` and it joins the current [debug session](/debugger/process#5-prove-the-fix-with-an-eval) automatically, rendered as a card with per-score averages and their change against the previous eval in the session. A session is now one timeline of runs, evals, and notes; `lmnr-cli debug session add-note` attaches markdown notes to it, and `lmnr-cli debug session summary` prints the whole timeline for a coding agent to re-orient from.

## June 2026

* **Laminar Agent** - Ask an AI agent about your project's data in plain language and get answers grounded in real traces. The agent runs read-only SQL and reads trace context for you, and it runs in three places: the [MCP server](/platform/mcp) (`ask_agent` tool), the [CLI](/platform/cli#ask-the-agent) (`lmnr-cli ask`), and [Slack](/platform/integrations#laminar-agent) (mention `@Laminar` in a connected channel). See [Laminar Agent](/platform/laminar-agent).
* **Signal settings, backfill, and refreshed clusters** - Every Signal now has a **Settings** tab with four sections: **General** (definition and triggers), **Alerts**, **Backfill**, and **Activity**. Run a Signal across historical traces from [Backfill](/signals/quickstart#4-run-the-signal-triggers-and-backfill), watch each run's status in **Activity**, and configure a Signal's [alerts](/signals/alerts) in place, including output schema filters that fire only when an event's extracted output matches. The [clusters](/signals/clusters) view is rebuilt as a two-panel cluster list and stacked frequency chart below the events table.
* **AI SDK v7 support** - The [Vercel AI SDK](/tracing/integrations/vercel-ai-sdk) integration now covers AI SDK v7. Register Laminar once with `registerTelemetry(new LaminarAiSdkTelemetry())` and every `generateText` / `streamText` call is traced, with no per-call configuration. The v5 and v6 `experimental_telemetry` + `getTracer()` style is still documented, and the page includes a step-by-step migration guide.
* **Debugger session continuation** - Debug runs now group into a session automatically. The first `LMNR_DEBUG=true` run writes `.lmnr/debug-session.json`, and every later run in the same directory rejoins it with no `LMNR_DEBUG_SESSION_ID` to copy around. New `lmnr-cli debug session new` mints a clean session on demand, and session names are editable inline in the session view. See [Debugger](/debugger/introduction).
* **One-command CLI onboarding** - `lmnr-cli setup` logs you in, picks or creates a project, writes a fresh `LMNR_PROJECT_API_KEY` to `./.env`, links the directory, and installs the Laminar agent skill. `lmnr-cli login` adds OAuth device-flow auth so `sql`, `dataset`, and `project` run as the signed-in user against the directory-linked project (`.lmnr/project.json`), no project API key needed. See [CLI](/platform/cli).

## May 2026

* **Table views** - Save filters, search, sort, columns, and custom SQL columns as a named [table view](/platform/table-views) per project and per resource (traces, spans, sessions, evaluations, datasets, queues, debugger sessions, playgrounds, signal events). Views are shared across the project so a teammate can open the same dropdown and pick the same preset.
* **Render templates** - Every input/output viewer now has a **CUSTOM** mode that renders the underlying value through a JSX template you write. Templates live per project, can be selected per pane (Laminar remembers your pick), and are managed from **Project Settings → Render Templates**. The template editor copies a Laminar-styled prompt to your clipboard so you can hand it to any AI tool with a sample payload and paste the result back. See [Render templates](/platform/render-templates).
* **Push metadata to finished traces** - New `client.traces.pushMetadata(traceId, metadata)` (TypeScript) and `client.traces.push_metadata(trace_id, metadata)` (Python, sync and async) attach metadata to a trace that has already ended. Capture the trace id while the trace is running, store it alongside whatever produces the signal (a database row, a queue message, a session id), then push scores, reviewer notes, or edit counts back to the trace once you have them. See [Metadata](/tracing/structure/metadata#adding-metadata-after-the-trace-ends).
* **PII redaction** - New project-level toggle in **Settings → Security**. When on, every span's input and output is run through Laminar's PII redactor before storage; names, emails, phone numbers, and other detected entities are replaced with labelled placeholders. Available on Pro and Enterprise plans, and as a self-hostable gRPC service. See [PII redaction](/platform/pii-redaction).
* **OTLP/HTTP+JSON ingest** - `/v1/traces` now accepts JSON-encoded OTLP in addition to gRPC and HTTP+protobuf. Useful for browser SDKs and other runtimes without a protobuf encoder. See [OpenTelemetry](/tracing/otel).

## April 2026

* **Evaluations docs rewrite** - [Evaluations](/evaluations/introduction) is restructured end to end. New [Concepts](/evaluations/concepts) page covers the datapoint / executor / evaluator / group model; new [Compare runs](/evaluations/comparing-runs) page documents the progression chart and side-by-side diff; [Datasets](/evaluations/datasets) replaces the old using-dataset page; [Self-hosted](/evaluations/self-hosted) consolidates SDK config for self-hosted instances. Online evaluators are removed.
* **Transcript view docs** - New [Viewing traces](/platform/viewing-traces) page covers transcript view: auto-extracted agent inputs, LLM turns, tool-call previews, and collapsible subagent cards. Tree view is still one click away when you want raw span structure.
* **Alerts and reports overhaul** — Alerts now support multi-severity filtering (Info, Warning, Critical), a *skip similar events* option, and a second trigger type for new clusters. Every new Signal ships with a critical-severity event alert and a cluster alert by default. Workspaces get weekday and weekly signal summary reports out of the box. Alerts and reports post to an in-app notification center; Slack and email are configurable per alert or report. See [Alerts](/signals/alerts) and [Reports](/signals/reports).
* **Claude Agent SDK integration refresh** — Updated the [Claude Agent SDK](/tracing/integrations/claude-agent-sdk) page with end-to-end setup for TypeScript and Python, a multi-subagent example, and real transcript and tree-view screenshots.
* **OpenAI Agents SDK integration** — `Laminar.initialize()` now auto-instruments the [OpenAI Agents SDK](/tracing/integrations/openai-agents-sdk) in Python. Agent workflows, turns, tool calls, and handoffs land in Laminar as nested spans with system instructions preserved on every LLM call.
* **Pydantic AI integration** - `Laminar.initialize()` now auto-instruments [Pydantic AI](/tracing/integrations/pydantic-ai) in Python when `pydantic-ai-slim` is importable. No `Agent.instrument_all()` call or manual OTLP exporter setup is needed; raw provider instrumentors (OpenAI, Anthropic, Google GenAI, Groq, Mistral, Cohere, Bedrock) are auto-removed to avoid duplicate spans on every model call.
* **Mastra integration** — Native [Mastra](/tracing/integrations/mastra) support via `MastraExporter` wired through Mastra's `Observability` config. Captures every agent run, model step, tool call, and sub-agent. When a coordinator agent delegates to sub-agents exposed as tools, the sub-agent's full run nests under the parent tool span in one unified trace.

## February 2026

* **Signals (LLM outcomes)** — Define outcomes and behaviors you care about, then backfill or run triggers on new traces; signal events link directly back to trace context.
* **Labeling queues** — Push spans or dataset rows into queues, label in the UI, and write results back to datasets (UI or API).
* **MCP server for trace-aware assistants** — Connect Claude Code, Cursor, or Codex to query Laminar with SQL and summarize trace context inside your IDE.
* **New integrations** — OpenRouter via the OpenAI SDK and Pydantic AI via OpenTelemetry, with full trace capture.
* **Debugger (rollouts) polish** — More reliable rollout entrypoints and sessions for rerunning long-running agents.
* **Schema references refreshed** — SQL and SDK schema docs updated to match current tables and types.

## January 2026

* **SQL Editor** — Run read-only ClickHouse SQL across traces, signals, logs, datasets, and evals; export results to datasets or labeling queues.

## December 17, 2025

* **Platform refresh** — Backend and frontend upgrades for better compatibility, performance, and reliability.
* **Unified ingest for search + events** — Spans and events share the same ingestion path, improving search consistency and error handling.
* **Query engine parity** — Self-hosted query engine matches production behavior with stricter validation and more reliable SQL/JSON conversions.
* **Always-on trace aggregation** — Trace summaries are consistently available without feature flags; new ClickHouse tables and backfill path.
* **UI cleanup + speedups** — Removed unused components and trimmed dependencies to improve load times.
* **Events become searchable** — Events flow into the search index for faster discovery and analysis.
* **Stability hardening** — Realtime updates, schema migrations, and queueing made more robust.
* **LAM groundwork** — Foundations for upcoming LAM features across the UI and data path.
* **Events + clustering simplified** — Unified data model for event and cluster analysis.

## November 2025

* **Distributed realtime** — Fanout architecture for live updates across nodes.
* **Search + ingest overhaul** — Quickwit-backed search aligned with ClickHouse for faster discovery.
* **Search UX** — Filters and autocomplete for query inputs.
* **Auth separation** — Clear split between authn and authz in backend middleware and roles.

## October 2025

* **Security + UX** — Next.js upgrade for a critical RSC CVE and a UI redesign sweep.
* **Schema & observability** — Stronger trace aggregation controls, app-server metrics/logging, and event definitions + triggers + settings UI/API.

## September 2025

* **Self-hosted query engine** — Packaged with runtime/config improvements.
* **Sessions analytics** — Sessions table and UI views added.

## April–May 2025

* **Rust + performance** — App-server upgraded to Rust 1.85 (2024 edition) with dependency cleanup.
* **Large-trace UX** — Virtualized trace view for heavy traces.
* **Realtime sessions** — Live updates for session views.

## January 2025

* **Next.js 15 migration** — Next15 rolled across the frontend stack.

## Year in focus

* **Search & ingestion**: Quickwit-backed search, unified span/event ingestion, events indexing, ClickHouse replacing table + migrations.
* **Realtime & sessions**: Distributed realtime, session table, live session updates.
* **Querying**: SQL Editor, query engine parity, self-hosting, stricter validation and conversions.
* **Signals & labeling**: LLM signals with jobs/triggers and labeling queues that feed datasets.
* **Debugger & rollout**: Rerun long agents from cached points with improved rollout sessions.
* **Integrations**: OpenRouter (OpenAI SDK) and Pydantic AI (OTel) instrumentation.
* **Frontend UX**: Redesign, virtualization for large traces, unused UI removal, CVE-driven upgrades, search autocomplete/filters.
* **Infra/observability**: Rust toolchain upgrade, app-server observability, RabbitMQ hardening, schema fixes.
