changelog

What shipped

New features, improvements and fixes, as they land. Anything that needs your attention before you upgrade is marked breaking.

rss markdown roadmap

October 2026

SDK

Drop noisy spans and expected errors from Maple.layer

Maple.layer now takes the same span options as MapleFlush.make, plus subtree drops and predicates for both.

Maple.layer, the long-running preset in @maple-dev/effect-sdk, now accepts the span options that were only on MapleFlush.make and the Cloudflare make. All three presets take the same options and classify spans the same way.

  • dropSpanNames drops spans by name prefix, as before. Only the matching span goes.
  • dropSpanSubtrees drops a span and every span under it, so an idle polling loop and the queries it runs stop exporting. Outgoing calls under a dropped span carry an unsampled traceparent, and errors inside it are not tracked, so keep real work outside it.
  • dropSpan takes a predicate on the finished span (name, kind, attributes, exit), for example to drop only polls that found nothing.
  • anticipatedErrorIdentifiers marks expected failures (a duplicate, a not-found) as Ok with no exception, so they stop creating error groups. isAnticipatedError is its predicate form, for driver errors that are only expected in one case.
  • excludeLogSpans is now available on Maple.layer too.

A few behaviour changes come with it:

  • A server span that answered 5xx stays an error even when its failure is listed as anticipated.
  • On Maple.layer, spans for unmatched-route 404s are dropped, and server spans that rendered a 5xx response are recorded as errors, matching the other presets. That can surface new error groups for crashes that used to export as Ok.

Upgrade to @maple-dev/effect-sdk 0.11.0.

September 2026

Replays

Filter replays by any page visited

Find the sessions, and the users, that reached a page at any point, not only the page they landed on.

The Replays filter sidebar has a new Page visited section. Pick a page and the list shows every session that reached it at any point, not only sessions that started there. Use it to find the identified users who reached your pricing or checkout page, then watch what they did.

The section lists your most visited pages by session count, and you can search it. Selecting a page narrows every other filter to match, so the browser, device and country counts you see come from those sessions only.

The filter matches the exact path, without the query string or fragment. It is saved in the URL as ?page=, for example ?page=/pricing/, so you can bookmark or share a filtered view.

Learn more in the Replays docs.

AI

AI chat is available in the EU region

EU organizations can use Maple's AI chat, with every model request served by providers inside the EU.

The EU region launched with AI chat turned off, because a chat turn sends your spans and logs to a model provider. It’s on now for EU organizations.

AI requests from an EU organization are served only by model providers inside the EU. If a model has no EU provider, the request fails rather than being routed to the US.

Open chat anywhere in the EU dashboard with C, or from the command palette. The same routing applies to investigations and issue triage for EU organizations.

Read more about the EU region.

Agent Sessions

Claude Code sessions show tokens, tools and prompts

Send Claude Code's telemetry to Maple and Agent Sessions shows each turn's prompt, token usage per model call, and every tool call once.

Claude Code sessions in Agent Sessions now carry the detail you need to review them. Claude Code’s OpenTelemetry output uses its own attribute names, so until now its sessions showed zero tokens and counted each tool call up to three times. Maple now maps those attributes when the data arrives:

  • Each model call shows input, output and cache tokens, and time to first token.
  • Each tool call counts once, with its arguments and result. A failed run marks its tool call as failed, with the error.
  • Each turn opens with the user’s prompt, when Claude Code is set to export prompts (OTEL_LOG_USER_PROMPTS=1).

Sessions ingested before this change keep their old numbers. Cost is not shown in the session views yet: Claude Code reports it only on its log events, which you can search under Logs.

Get started with the Claude Code setup.

Platform

An EU region, hosted in Frankfurt

Keep your telemetry in the European Union: an EU organization's data is ingested, stored, queried and alerted on in Frankfurt.

Maple Cloud now runs in the European Union. An EU organization’s telemetry is ingested, stored and queried in Frankfurt, Germany, and its alerts are evaluated there. Nothing is copied to the US region. Plans and pricing are the same in both regions.

You choose the region in the first onboarding step, or when you create another organization, and it can’t be changed later. Organizations created before regions existed stay in the US region.

An EU organization uses its own hosts:

  • dashboard: app.eu.maple.dev
  • OTLP ingest: ingest.eu.maple.dev
  • API and MCP server: api.eu.maple.dev

Ingest and API keys only work in the region that created them, so create your keys in the EU dashboard. One Maple login covers both regions, and the organization switcher labels each organization US or EU. Settings → Organization shows it as Data region.

Read more on the EU hosting page and in Regions.

Dashboards

Embed any dashboard chart with an iframe

Put a live chart from a public dashboard into your own admin panel, internal tool or docs page, with theme and time range set in the URL.

Every chart on a dashboard now has Embed chart in its menu. It gives you a link for that one chart and a ready-to-paste <iframe> snippet, in HTML and React versions. The embed runs the chart’s query each time it loads, so it shows the same live numbers as the dashboard with no export job.

Embeds need the dashboard to be shared with Anyone with the link. If it isn’t, the dialog explains why and offers to make it public for you. A viewer of the embed sees only that chart, not the rest of the dashboard or the chart’s query.

The link accepts URL options: theme=light or dark, a relative range such as 7d, a fixed from and to, refresh in seconds, and var-<name> for dashboard variables.

Chart links follow their dashboard’s sharing. Set the dashboard back to Not shared and every embed on it stops working; share it again and the same links work again. To retire one chart’s link for good, click Replace in its Embed chart dialog.

Get started with Embed charts.

Traces

Peek at a trace without leaving the list

Click a row on the traces list to open the trace in a side sheet, then step through the list with the arrow keys.

Clicking a row on the Traces list now opens the trace in a peek sheet beside the list instead of navigating away. Triage usually means walking down a sorted list, and a full page load per row used to cost you the sort, the scroll position and the filters each time.

The sheet shows what the trace page shows: the waterfall, timeline and flow views, and the span detail pane.

  • ↑ ↓ or J K step to the neighboring trace.
  • Enter or Open trace opens the full page, keeping the span you selected.
  • Esc closes the sheet.
  • Cmd-click, Ctrl-click or middle-click a row, or click its trace ID, to open the full page directly.

The open trace is part of the URL, so reloading or sharing the link reopens the same view. On narrow screens, a click still opens the full page.

Agent Sessions

Agent Sessions is available to every organization

See an AI agent conversation as one session: every turn, model call and tool call, with its cost, timing and failures.

Agent Sessions is now under Explore for every organization. It turns the OpenTelemetry traces your AI agent already sends into sessions you can read turn by turn, so you can see why an agent was slow, what it cost, and which tool call went wrong.

Sessions are built from spans that follow the OpenTelemetry GenAI semantic conventions. There is no extra SDK to install, and common agent frameworks are recognized automatically.

For each session you get:

  • an overview that splits the wall clock into model time, tool time and idle time, and rolls up cost and tokens per model
  • the transcript, with each model call’s model, tokens, cost and finish reason
  • the trace, grouped by turn

A Tools view ranks every tool across sessions by call volume, failure rate and latency. The same data is available to AI assistants through the Maple MCP server.

Get started with the Agent Sessions guide.

今日、最初のトレースを。

SDKを追加し、OTLPエクスポーターをMapleに向ければトレースが届きます。

maple.dev:OpenTelemetryの上のオブザーバビリティ