changelog

What shipped, month by month.

118 changes 33 proven on production Since May 2026 Last updated

I run this page myself, and it is how I hold Tracelane to what it says. Every entry is something you can use today, dated to the month it became real for you, not the month it was merged. Where a change has been proven on production (a real request sent, a real row read back) it says proven. When something was broken, it goes under Fixes instead of being folded quietly into a feature. What I am working toward is at the bottom, without dates, because a date I cannot keep is a claim I cannot back.

Sanjeev, founder

25 changes

New features 16

  • MCP tool calls through the gateway

    Point your agents' MCP servers at the gateway: every tool call is recorded, and you can set per-tool rules and require a person to approve sensitive calls.

    Safety

  • Zero data retention controls

    Choose per workspace or per API key whether prompts and responses are stored or cached, and how long recorded data is kept.

    Safety

  • Route by weight, cost or latency

    Spread traffic across providers and keys by weight, cost, latency or priority, run a canary of a new model on a share of traffic, and set timeouts per route.

    Control

  • Bring your own guardrails

    Define guardrail policies through the API, call your own webhook or a third-party guardrail on each request, and set how personal data is handled.

    Safety

  • Your own key vault

    Keep the keys that protect your stored provider credentials in your own KMS or Vault.

    Safety

  • Send traces to your collector

    Export your traces over OpenTelemetry to a collector you run, alongside what Tracelane keeps.

    Visibility

  • Every control in API and settings

    Manage routing, guardrails and caching from the dashboard's Gateway settings or the documented API.

    Control ✓ proven

  • Per-key rules and rate limits

    Restrict a key to certain models, providers or IP ranges, cap request size and tokens, and set requests- and tokens-per-minute limits per workspace, project, key, end user or model.

    Control

  • Budgets with alerts

    Set USD budgets for a workspace, project, key or end user — hard or soft, calendar or rolling — and get an email when spend crosses a threshold.

    Control

  • Projects and environments

    Group keys and spend into projects and environments, and archive one when you are done.

    Adoption

  • Pause a workspace instantly

    Pause all model traffic for a workspace in one action and resume it the same way.

    Control

  • Roles, history and admin allowlist

    Give people admin, developer, viewer or billing roles, see every control change with who made it and what changed, and limit admin actions to your IP ranges.

    Safety

  • Responses API and Gemini endpoints

    Call the gateway with the OpenAI Responses API or Gemini's own request format, as well as Chat Completions and Anthropic Messages.

    Control

  • Images, audio, batch and realtime

    Send image, audio, rerank, moderation, batch, file and realtime requests through the gateway with the same keys, limits and records as chat.

    Control

  • Explain a spend spike

    See when spend jumped and which traces caused it.

    Visibility

  • Spot agents stuck in loops

    See when an agent repeats the same tool call, and how many requests failover rescued.

    Visibility

Improvements 3

  • See your workspace's anchor key

    Open Settings → Audit to see the key that anchors your workspace's evidence and its fingerprint, so you can check it against what a verifier pins.

    Proof

  • Audit page says when it cannot check

    If the audit page cannot read your workspace's key, it says it cannot verify instead of checking against less information.

    Proof

  • Retries that respect providers

    When a provider asks you to wait, the gateway waits as told before retrying, and the newest models route to the provider that serves them.

    Control

Fixes 6

  • Embeddings count toward budgets

    Embeddings requests, and chat on a self-hosted gateway running without trace capture, now count toward your key and workspace budgets and tokens-per-minute limits, so a key at its hard budget is refused.

    Control

  • Pause covers token counting

    Pausing a workspace, or blocking a model or provider, now also stops OpenAI Responses token-count requests, which send your prompt upstream.

    Control

  • Dashboard refuses cross-site changes

    Changes to your account, team, API keys and billing are accepted only when they come from the dashboard itself, so another site cannot make them on your behalf.

    Safety

  • Usage billing retries failures

    A brief outage at our billing provider no longer leaves your usage unreported until the next run; the gateway retries it straight away.

    Adoption

  • Revoked keys stop at once

    Revoke a key, remove a member, archive a workspace or delete your account, and the affected API keys are refused on their next request.

    Safety

  • Cut-off Gemini answers flagged

    A Gemini or Vertex answer cut off at the token limit now reports that it was cut off, instead of looking complete.

    Control ✓ proven

43 changes

New features 23

  • Session transcripts

    Open a session and read it as one conversation, turn by turn, instead of a list of trace links.

    Visibility

  • Turn capture on or off yourself

    Choose in settings whether prompts and responses are recorded for your workspace.

    Safety

  • Public status page

    Check tracelane.dev/status for live gateway availability.

    Adoption ✓ proven

  • Jump anywhere with ⌘K

    Press ⌘K to reach any screen, run a common action, or paste a trace id and land on that trace.

    Adoption

  • Your own fallback models

    Turn cross-provider failover on for every request in your workspace and choose the fallback models, in order — one call can still opt out with a header.

    Control

  • Name your own models

    Call a model by a name you control, like "fast", and repoint it in settings without touching code; the trace records both the name and the model that answered.

    Control ✓ proven

  • Know every agent calling you

    See which agents and clients are calling your gateway, each with its own profile and history, from the name they send or the client they run.

    Visibility ✓ proven

  • Canary a prompt to a share of users

    Send a new prompt version to a percentage of your users, with each user kept on the same version, before promoting it to everyone.

    Quality ✓ proven

  • Rotate keys without downtime

    Rotate an API key with a grace window you choose, so the old key keeps working until your deploy has picked up the new one.

    Safety

  • Check a provider key works

    Validate a saved provider key on demand and see when it last passed or was rejected, separately from when it was saved.

    Control

  • Compare against a baseline

    Pick a baseline run and compare an experiment against it case by case, not only on the average.

    Quality

  • A trace becomes a test case

    Save a production trace's input into a dataset from the trace page in one click.

    Quality

  • Usage-based plans

    Pay by usage meters on five plans — and capture never stops because of a billing limit.

    Adoption

  • Know which user a trace belongs to

    Send your own user id and filter sessions and traces by the person who started them.

    Visibility ✓ proven

  • OpenAI tool calling, end to end

    Run an agent that calls tools through the gateway with the OpenAI SDK unchanged — real tool calls come back, the finish reason is the true one, and you can replay the model's own tool call in the next turn.

    Control ✓ proven

  • Dashboards you build yourself

    Assemble your own dashboard from a palette of metric tiles, then resize, move and remove them — the layout persists across a reload.

    Visibility ✓ proven

  • Anthropic-native endpoint

    Point Claude Code, or any Anthropic-native client, straight at the gateway and get full tracing, token counts and cost with no OpenAI-shape translation in between.

    Control ✓ proven

  • Ask your traces a question

    Type a question about your own runs in plain English and get an answer, instead of writing the query yourself.

    Visibility

  • Multi-agent runs, as swim lanes

    Read a run with sub-agents as one labelled lane per agent, with a failures-only filter, rather than as a single flat timeline.

    Visibility ✓ proven

  • Shareable trace links

    Send someone a link to one trace, carrying its ledger badge, that they can open without an account — and revoke it when you are done.

    Visibility ✓ proven

  • Search the trace list

    Find a trace by span name or content from a search box on the traces page, instead of paging until you spot it.

    Visibility ✓ proven

  • A playground inside the app

    Try a prompt against a provider you have connected and land straight on the trace it produced.

    Quality ✓ proven

  • MCP for hosted workspaces

    Query your own traces from any MCP client using your bearer token — this previously needed a self-hosted deployment with a direct database connection.

    Adoption ✓ proven Docs

Improvements 12

  • Edit key limits after creation

    Change an API key's limits after you create it, without minting a new key.

    Control

  • An audit page with one answer

    Open the audit page and see, first, whether your evidence verifies — and what to do next if it does not.

    Proof

  • Secrets masked before storage

    Credentials that appear in a prompt, a response or an evaluation note are masked before anything is stored.

    Safety

  • Approve tool changes in bulk

    Approve every new tool definition at once — while a CHANGED definition still needs its own review.

    Safety

  • Tool calls in full

    See each tool call on the trace page — its arguments where you capture content, and their size where you do not.

    Visibility ✓ proven

  • Every retry on the trace

    See every attempt a request made — each retry and failover hop, with its status and timing — on the trace, not only the one that succeeded.

    Visibility ✓ proven

  • Ledger written in one transaction

    Every ledger row is committed in the same database transaction as the chain it extends, and archived every hour.

    Proof ✓ proven

  • The model that actually answered

    See the exact model version the provider says served each call, next to the name you asked for.

    Visibility ✓ proven

  • Every setting on the span

    See the temperature, token limits, tool list and deployment each call used, recorded on its span.

    Visibility

  • Gateway overhead, measured

    See exactly what the gateway costs you in latency — 2 ms at the median, 5 ms at the 99th — measured on LiteLLM's open benchmark harness rather than one we wrote.

    Control ✓ proven

  • Line and area charts

    Read latency percentiles, availability and error rate as a continuous line rather than as bars, which is the right shape for a level instead of a count.

    Visibility

  • One time range for the dashboard

    Move one control and every chart on the dashboard answers to it, drawing a real interactive chart — several displays used to disagree with each other.

    Visibility ✓ proven

Fixes 8

  • Streams survive split characters

    A streamed answer no longer ends early when a multi-byte character arrives split across two network chunks.

    Control ✓ proven

  • Capture off means off

    With content capture off, prompt and response text sent over OpenTelemetry is no longer stored.

    Safety ✓ proven

  • Share links show less

    Public trace share links no longer include user ids or conversation ids.

    Safety ✓ proven

  • Exports that never arrive half-done

    An evidence export that cannot be completed fails loudly instead of handing you a partial file.

    Proof

  • Truncated answers are never cached

    Ask again after a reply was cut short by a token limit and you get a fresh, complete answer instead of the truncated one served back from cache.

    Control ✓ proven

  • Self-hosting runs unmetered

    Run the gateway on your own hardware with no control plane and it no longer applies the hosted free tier's request limit to your traffic.

    Adoption ✓ proven Docs

  • Claude Code sessions record fully

    See real token counts, computed cost, tool names and session grouping for a Claude Code session — all four were previously blank.

    Visibility ✓ proven

  • Your trace ids survive the gateway

    Call the gateway from your own instrumented app and the two halves join into one trace, instead of appearing as two disconnected ones.

    Adoption ✓ proven

12 changes

New features 8

  • Guides for the agent frameworks

    Get traces out of LangChain, LangGraph, CrewAI or LlamaIndex by pointing their existing OpenTelemetry exporter at us — no Tracelane-specific code, and each guide states exactly what you get.

    Adoption Docs

  • An eval gate for your CI

    Run a dataset through your prompt on every pull request and fail the build when the score falls below a floor you set, with a separate exit code for "it got worse" and "we could not measure it".

    Quality ✓ proven Docs

  • Review queues for failures

    Route a trace an automated judge scored as failing to a review queue, write the correct answer by hand, and keep it as a reusable test case.

    Quality ✓ proven

  • Score live traffic automatically

    Have an automated judge score a share of your production traffic against a rubric you choose, at a sample rate you set, under a spend limit that survives a restart.

    Quality ✓ proven

  • Repeat requests served from cache

    Send the same request twice and the second is answered from the gateway's own cache instead of the provider, with a response header naming the tier that served it.

    Control ✓ proven

  • Send OpenTelemetry traces directly

    Export a nested agent trace straight from your own instrumentation with your API key, and see the whole tree — planner step, each tool call, the retry — without proxying the model call.

    Adoption ✓ proven Docs

  • Compare two traces

    Open two runs side by side and see what differs between them.

    Visibility

  • Releases you can verify

    Check any release binary yourself — 0.2.3 is the first to publish a Cosign keyless signature and a CycloneDX SBOM per artifact, with build provenance attested by GitHub.

    Safety Docs

Improvements 1

  • Nine ways to assert an eval

    Assert on contains, regex, JSON schema, an LLM judge, and cost and latency ceilings through the API — and a judge answer that does not match its schema errors instead of quietly scoring.

    Quality Docs

Fixes 3

  • Datasets that persist

    Save a collection of test cases and have it still be there afterwards — every dataset write had been failing silently.

    Quality

  • Failover honours your config

    Set a fallback provider in `tracelane.yaml` and it is actually used — the setting had been read and then ignored.

    Control

  • Three permission gaps closed

    A viewer can no longer promote or delete a production prompt, SSO and directory-sync setup is limited to the plan that includes it, and a billing-portal return address is checked against an allowlist.

    Safety

14 changes

New features 12

  • Gemini through Vertex AI

    Route Gemini models via Google's Vertex AI endpoint with your own project credentials.

    Control Docs

  • Slice the trace list

    Filter, group by model, operation or status, sort by any column, set one date range for the page, and export what you are looking at to CSV or JSON.

    Visibility

  • Anchored to a public log

    Prove to a third party that a batch of your records existed when you say it did — the first Merkle root reached the public Sigstore transparency log at index 19398597, and anyone can look it up without asking us.

    Proof Docs

  • Failure signatures from your traces

    See the failure shapes actually detected in your own runs, each with a first-seen and last-seen, rather than a catalogue of failures in the abstract.

    Visibility

  • Offline verification, three languages

    Hand an exported bundle to someone with no network access and let them verify it in Rust, Python or TypeScript against your own public key, served from a public endpoint so the trust root is not us.

    Proof Docs

  • Promotions are signed records

    Promote or roll back a prompt and the decision is appended to the tamper-evident chain as a signed verdict you can hand to someone else.

    Quality Docs

  • Alerts you configure and test

    Write your own alert rules, send them to Slack, Discord or an HTTP endpoint, and fire a test to confirm the route works before you rely on it.

    Visibility

  • Teams, roles and seats

    Invite members, assign roles, stay inside the seat count your plan includes, and delete your own account or organisation without asking us.

    Adoption

  • Real cost on every call

    See the USD cost of a call on its span, in the trace list, and rolled into a spend card — computed from a model price catalogue rather than estimated.

    Control

  • Sessions group a multi-turn run

    Follow a conversation across its turns as one session, with its own list and detail view, instead of as unrelated calls.

    Visibility

  • Prompts with durable versions

    Author a prompt, keep its versions, and promote one to production from the app — rather than keeping the text in your application code.

    Quality Docs

  • A gateway operations page

    Watch per-provider health, failover state, circuit-breaker state and quota status from one page, with nothing on it that is not a measured signal.

    Control

Improvements 2

  • Self-host without a certificate authority

    Run a single-tenant deployment without standing up SPIRE first, which removes the heaviest prerequisite from the self-host path.

    Adoption Docs

  • Verify your chain on any plan

    Check your workspace's hash chain from inside the product without paying for the audit add-on; the exportable, offline-verifiable bundle stays part of that add-on.

    Proof Docs

10 changes

New features 8

  • Sampling and quotas per workspace

    Set a sampling policy, an ingest quota and a per-trace ceiling for each workspace — and an over-quota batch is refused with the reason, never accepted and quietly dropped.

    Adoption

  • Pre-flight policy at the gateway

    Apply your own policy to a request before it leaves — cost and step caps, secret and PII patterns, tool pinning, response format and topic scope — and have it allowed, redacted or refused.

    Control Docs

  • A transcript-spine trace viewer

    Read a trace top to bottom as the conversation it was, with the span tree and an inspector beside it, and filter the list down to the run you are looking for.

    Visibility

  • Verify the ledger in your browser

    Watch your own browser recompute the chain and report the chain and signature verdicts separately — a passing badge is something your machine worked out, not something we asserted.

    Proof Docs

  • Onboarding ends in your own trace

    Finish setup by looking at the first trace your key actually produced, so the confirmation is your data rather than a checkmark.

    Adoption Docs

  • Tracelane Cloud is live

    Point a client at the hosted gateway and start capturing, instead of running the stack yourself first.

    Adoption Docs

  • Cross-provider failover

    Name a fallback provider and a failing upstream is retried there, rather than the request ending at the first error.

    Control

  • Tool-definition drift detection

    Find out when a tool's description or input schema changes underneath a running agent — the silent rug-pull an agent has no other way to notice.

    Safety Docs

Improvements 2

  • Spans acknowledged only after storage

    A restart mid-flight replays your span instead of losing it, because the queue is only acknowledged once the write has landed.

    Adoption

  • A dropped span is loud

    Know when capture is broken: a span the gateway cannot record is counted, warned once and reported on the health endpoint, and an unset queue address refuses to start at all.

    Visibility

14 changes

New features 11

  • Breakers, canaries and a kill switch

    Give each upstream its own circuit breaker, split traffic to a candidate prompt version, and turn a predictor off by name without a deploy.

    Control

  • A verifier a regulator can run

    Hand an auditor a single signed binary that verifies an exported ledger offline against a public key they pin themselves, and exits non-zero when the chain does not hold.

    Proof Docs

  • Auto-instrumentation for Python and TypeScript

    Install the SDK and it attaches to the agent frameworks and provider clients you already use, so spans arrive without hand-written instrumentation.

    Adoption Docs

  • Traces, trace detail and SLO

    Browse your traces, open one to a span tree with an inspector, and read latency percentiles, error rate and token usage on an SLO page.

    Visibility Docs

  • Prompt promotion with rollback

    Promote a prompt version to production atomically and have a drift detector roll it back — suggested, automatic or human-confirmed, your choice.

    Quality Docs

  • Three independent verifiers

    Check an exported ledger in Rust, Python or TypeScript against shared conformance vectors, so whoever has to verify it can do so in a language they already run.

    Proof Docs

  • The gateway, in one binary

    Point any OpenAI-compatible client at one endpoint and your call is routed to your provider with your own key, traced and recorded — a model matching no provider is refused rather than sent somewhere by default.

    Control Docs

  • A tamper-evident audit ledger

    Prove after the fact that your record was not altered: every gateway-proxied call and policy verdict is appended to a per-workspace hash chain, so a later deletion, insertion, reorder or edit is detectable by anyone holding an export.

    Proof Docs

  • OpenTelemetry-native capture

    Take your traces elsewhere whenever you want — spans are written in the OpenTelemetry GenAI conventions rather than a private schema.

    Visibility Docs

  • EU AI Act Article 12 export

    Export the record-keeping pack Article 12 asks for, mapped obligation by obligation, and hand it to whoever has to check it.

    Proof

  • Apache 2.0, no relicensing

    Self-host it, fork it, or run the hosted version — the whole project is Apache 2.0 with a written no-relicensing pledge and no separate enterprise tree.

    Adoption

Improvements 3

  • Ingest limits answered on the spot

    Send an oversized batch, span or attribute and get a synchronous refusal with the reason in a response header — nothing is accepted and then discarded behind your back.

    Adoption

  • Pricing that states its limits

    Read each plan's included volume, its per-unit overage with a hard cap, its seat ladder and its retention window on the page, instead of inferring them.

    Adoption Docs

  • Keys hashed, ledgers signed per workspace

    Your API keys are stored as Argon2id hashes behind a peppered lookup, and your ledger is signed with a key belonging to your workspace rather than a shared one.

    Safety

what's next

Where I'm taking it.

Directions, not commitments. No dates.

Prompts and responses, your choice

Record the text your app sends and the answer it gets back — switched on by a workspace owner, off by default, and kept only as long as the trace it belongs to.

More ways to cut the list

Grouping and sorting by the dimensions that matter when something is wrong — agent, tool, error type, cost — beyond the handful available today.

Exports without a ceiling

A large export that continues past the current row cap instead of stopping at it, so an export of a big run is the whole run.