Skip to main content
New releases and improvements.

July 2026

  • Generate render templates in the editor - The render 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 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 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 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 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 with LMNR_DEBUG=true and it joins the current debug session 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 (ask_agent tool), the CLI (lmnr-cli ask), and Slack (mention @Laminar in a connected channel). See 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, watch each run’s status in Activity, and configure a Signal’s alerts in place, including output schema filters that fire only when an event’s extracted output matches. The 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 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.
  • 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.

May 2026

  • Table views - Save filters, search, sort, columns, and custom SQL columns as a named table view 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.
  • 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.
  • 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.
  • 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.

April 2026

  • Evaluations docs rewrite - Evaluations is restructured end to end. New Concepts page covers the datapoint / executor / evaluator / group model; new Compare runs page documents the progression chart and side-by-side diff; Datasets replaces the old using-dataset page; Self-hosted consolidates SDK config for self-hosted instances. Online evaluators are removed.
  • Transcript view docs - New 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 and Reports.
  • Claude Agent SDK integration refresh — Updated the 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 integrationLaminar.initialize() now auto-instruments the 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 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 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.