Skip to main content

Updates

Simpler alerts, with the context in view. New alert names are generated from their condition, and new rules focus on cost, p95 latency, error rate, and eval pass rate. The Alerts table now shows the current value and last firing, with a compact marker beside rules that are actively firing instead of a separate status column. Open the edit dialog to change a rule or review its recent fired and resolved history.

Updates

Alerts as a list. The Alerts page swaps its card grid for the standard list table used across the dashboard: search, a firing-only chip, sortable name and window columns, status badges (with a pinging indicator for alerts currently firing), per-row enable/disable and delete, and a pagination footer. Finding and managing alerts now works the same way as on Traces, Sessions, Agents, and Workflows.Tighter Evals page. The stat-card strip at the top of Evals is retired. The toolbar is the first row now, so you land straight on your evals. Rows that errored or are missing a judge key use the same inline red triangle you already know from Agents.Overview breathing room. A little extra space between the Overview header and the first KPI row, so the page opens less cramped.

Updates

Cleaner span inspector header. When you open a span in the trace detail side panel, the redundant span-type badge next to the title is gone. The identity chip already tells you whether you’re looking at a model, tool, or other span, so the header now leads straight into the span’s name and details.

Updates

Accurate trace structure (SDK 0.9.0). The waterfall now reflects what actually happened in a run. Three changes, all in the SDK collectors:
  • Tool spans nest under their step. A tool call is now recorded as a child of the LLM step that requested it (matched by tool-call id), on both the v7 collector and the v4 to v6 foglamp/wrap adapter. Indentation in the trace waterfall is now real structure, not decoration.
  • LLM steps measure generation only. A step span ends when the model finishes generating: at the measured model-call end on v7, or where its first tool starts otherwise. Tool time lives entirely in the step’s tool child spans, so step duration means “time spent in the model” consistently across streaming, non-streaming, and both SDK majors.
  • Fixed 0ms and inflated step durations. Non-streaming multi-step calls (generateText via wrap) that fired tools in parallel could collapse a step to 0ms and absorb its time into the next one. Per-step tool attribution fixes this, so every step now carries its real duration.
Upgrade the foglamp package to 0.9.0 to get the corrected shape. Traces from older SDK versions keep flowing and render as before (flat tool rows). No ingest changes or migrations required; self-hosters can deploy in any order.Waterfall cleanup. The span-type filter chips introduced on August 7 are retired. With tools now nested under their steps, hiding a type mid-tree created more confusion than focus. Subtree collapse and the repeated-siblings fold (×N) remain the way to tame long traces.

Updates

Faster filtering on Traces. Long filter dropdowns on Traces now have inline typeahead, so picking a model, agent, workflow, or customer from a large list is a keystroke instead of a scroll. A new Metadata filter lets you narrow by any key = value you’ve tagged, with a free-text fallback when a key has too many values to list. You can pin a metadata key as its own column, and every filter, sort, and pinned column is reflected in the URL: copy the link and a teammate lands on the same view.Trace detail upgrades. The trace detail page now leads with a time composition strip that breaks a run into model, tools, other, and idle time at a glance, and shows a low rate-limit headroom banner when a provider is close to your TPM/RPM ceiling. Token and request counters sit next to the cost breakdown, and a workflow run chip jumps straight to the workflow run the trace belongs to.Waterfall filtering and collapse. The waterfall now has span-type filter chips (model, tool, other) to focus on the spans you care about, and any subtree can be collapsed. The collapsed row shows how many spans are hidden, so long tool loops stay readable.

Updates

  • Faster tab switching in the dashboard. Recently visited routes across Traces, Sessions, Agents, Workflows, and the Overview now swap in on a single paint instead of bouncing through a loading skeleton. Page data still refreshes in the background so numbers stay fresh.

Updates

  • Tightened the page titles and social descriptions on foglamp.dev/scan and individual scan posters so shared links unfurl with clearer, shorter copy on socials and in search results.

Updates

  • The foglamp.dev/scan landing page is now streamlined to a hero and CTA. The “One prompt, from repo to map” story section has been retired so you can go from arriving to scanning faster.
  • The scan hero map now scales responsively on narrower viewports, so the preview no longer spills off a laptop screen and the surrounding layout stays intact.

New features

Foglamp Scan. Point a coding agent at any repo and get a shareable, unlisted foglamp.dev/scan/<slug> page that maps how the codebase works and uses AI: triggers, agents, models, tools, and stores laid out on a flow map, with a scored personality card for the project. The page unfurls on socials with an image of the actual map, and the prompt is one copy-and-paste from foglamp.dev/scan. Anonymous, no account required; posters expire after 90 days.

Updates

  • The scan map now scores personalities on trait dominance (so different codebases land on different cards), groups the legend by kind (Triggers / Agents / Models / Tools / Stores / External) with a hover spotlight, and uses brand marks for model nodes.
  • Pan and zoom on the scan map now write transforms straight to the DOM for smooth interaction on large graphs, and deep pipelines open height-fit on the start of the flow.
  • Inter is now self-hosted from the canonical rsms/inter v4.1 build across the marketing site, restoring the optical-size axis and OpenType character variants that Google Fonts strips.

Bug fixes

  • Fixed a 500 on /scan/<slug> pages under Vercel’s serverless runtime caused by an elkjs module-interop mismatch. The layout engine is now lazy-loaded and probes every export shape.
  • Fixed the OG image route occasionally returning a 500 on cold starts by caching and retrying font loads.
  • Contained the marketing footer’s film-grain effect to the footer box so noise no longer bleeds above the top border, and softened the cube field on the landing page.

Updates

Customer on traces. The Traces table now shows a customer chip (avatar and name) next to the session, agent, and workflow columns, and the trace detail page shows a matching customer badge, so you can spot which customer a run belongs to without leaving the trace. Powered by the customer field you set on the SDK call.“Not identified” on the Overview Customers card. The Overview Customers card now includes a muted Not identified row for unattributed spend, so calls without a customer tag are visible instead of disappearing. Avatars across the customers UI also pick up a filled glyph for better contrast.

Bug fixes

  • Shortened the Clear filters button on list-page filter bars to Clear, so it stops wrapping in narrow toolbars.

New features

AI SDK v7 stable. The foglamp() collector now tracks AI SDK v7 stable (ai@7.0.0). No code changes needed on your side; the telemetry API is unchanged from the v7 beta.First-class aborted status. A stream that’s cancelled before it finishes (via AI SDK v7’s onAbort: a caller cancellation, an AbortSignal, or a timeout) is now recorded with a dedicated aborted status instead of being swept later as an error. It renders amber across the traces view and is excluded from the error rate, since a cancelled run isn’t a failure. The steps that finished before the abort keep their own status.Automatic nested-trace context. On the v7 collector, a model call made inside a tool’s execute now inherits the parent call’s workflow, session, customer, and metadata automatically, so sub-agents land in the same workflow run with no fog.run() plumbing. See the SDK overview.Self-hosters: run ClickHouse migrations before relying on aborted rollups (a new aborted_count column is added to the trace, workflow-run, and per-minute summaries); ingest accepts the aborted status after the contract upgrade.

New features

Live HUD overlay. Drop <FoglampHUD /> from foglamp/hud into any client component and pair it with foglamp({ hud: true }) on the server to watch your agents run live: steps, tool calls, tokens, and cost streaming on top of your app as you develop. It’s for local development only, needs no API key, and adds nothing to your production bundle. The whole thing is two lines. See Live HUD.

New features

Per-customer cost attribution. Tag a call with a customer (fog.integration({ customer: { id, name?, imageUrl? } })) to attribute its spend to the customer it serves. A new Customers card on the Overview ranks your top customers by cost, with their avatar and name. Foggy can answer per-customer cost questions too. Only id is required and the field is fully optional. See the data model.Self-hosters: deploy ingest before upgrading the SDK, since older ingest rejects the new customer field (and run migrations to create the customer rollup tables).

New features

npx foglamp login CLI. Authenticate from your terminal with the new device-authorization flow: run npx foglamp login, approve the code in your browser, and Foglamp creates an API key and writes FOGLAMP_API_KEY to your .env. Zero runtime dependencies (Node 18+ built-ins only), so it drops cleanly into agent-driven setups. See the Quickstart.Animated API key reveal. Newly created API keys now roll from the name you gave them into the real value on reveal, so it’s obvious which key just appeared. The keys table also has pinned column widths and shows Last used before Created. See Projects, keys & billing.

Updates

Dark-mode polish across the dashboard. Refined shadows, borders, and hover states on cards, dialogs, and tables for better contrast and less visual noise in dark mode.

Bug fixes

  • Foggy’s hidden composer now blurs when the panel closes, so keystrokes stop landing in it and the F shortcut reopens the panel reliably.
  • Product analytics no longer load in local and preview environments.

New features

Model vs. tool latency split. LLM steps now record the pure provider-call time (modelCallMs) separately from client-side tool execution. The span still covers the whole step; the waterfall adds a sky model segment (tool time is the remainder), and the span inspector shows the split. Captured on AI SDK v7. The v4 to v6 (wrap) and non-reasoning paths simply omit it, with no estimates.Grounding sources. RAG and grounding citations a model reports (StepResult.sources) are captured per step and listed in the span inspector. Recorded only when output capture is on.Model-drift fingerprint and safety ratings. The OpenAI-style system_fingerprint is captured as a queryable column (spot a silent weight change across otherwise identical calls), alongside provider safety ratings. No logprobs are captured.Rate-limit headroom. Provider rate-limit response headers (OpenAI x-ratelimit-*, Anthropic anthropic-ratelimit-*) are normalized into a cross-provider set: requests and tokens remaining, the limit, and time to reset. “You’re at 90% of your TPM” becomes queryable. Only rate-limit headers are read; no other headers are stored.The provider signals above (sources, fingerprint, safety, rate-limit) are captured for text and object generation alike (generateText, streamText, generateObject, streamObject) and flow through the ToolLoopAgent/Experimental_Agent wrappers too. The model vs. tool latency split is the one exception: it needs the AI SDK v7 model-call lifecycle, so it lands on v7 text and agent steps and is absent on the object path and on v4 to v6. It is never estimated.Self-hosters: deploy ingest before upgrading the SDK, since older ingest rejects the new span fields.

New features

Reasoning (extended thinking) capture. Both SDK collectors now record reasoning stream chunks: per-step thinking duration plus a reasoning-token curve, sampled exactly like text chunks. The trace waterfall shows a violet thinking segment on reasoning steps, and the span inspector’s time-to-first-token splits into thinking time plus time to first visible text. Models that don’t reason (or SDK majors that don’t report reasoning tokens) send nothing, with no estimates. Self-hosters: deploy ingest before upgrading the SDK, since older ingest rejects the new span fields.Agent cost breakdown donut. The agent page now shows where an agent’s spend goes (prompt, completion, reasoning, cache read/write, requests, images, and web search), summed per pricing dimension over the selected range. See Agents.Ambient trace context with fog.run(). Wrap any call with fog.run(context, fn) and every traced call inside picks up the workflow, session, and metadata automatically. No parameter passing, and singletons stay singletons. See the SDK overview.Typed with() context binding and agent-class wrapping. fog.with(ctx) now returns wrapped functions typed exactly like the originals, and foglamp/wrap ships drop-in wrappers for ToolLoopAgent and Experimental_Agent with per-call tool attribution. See AI SDK v4 to v6 (wrap).Forgot-password and account recovery. A new password-reset flow, plus a redesigned accept-invitation page with explicit accept/decline and a wrong-account recovery path.Shareable list views. Search, filter, sort, and pagination on Traces, Sessions, Agents, and Workflows are now reflected in the URL. Copy the link and a teammate lands on the same view.Profile picture in the sidebar. Google sign-in users now see their photo in the sidebar; email and password users keep the initials avatar.

Updates

Confirmation dialogs for destructive actions. Deleting a project, provider key, pricing override, invitation, or access grant now asks for confirmation first. Project deletes require typing the name to confirm.Louder SDK auth failures. The transport now warns once on a 401 or 403 from ingest, even without debug mode, so a bad API key can’t silently drop every trace.Vercel waitUntil without the peer dependency. The SDK reads the Vercel runtime context directly, so serverless flushing works without adding @vercel/functions to your project.Eval scores on a 0 to 1 scale. Numeric judges now score on a normalized 0.00 to 1.00 scale (previously 1 to 5), with an Avg score stat card on the Evals page that reflects active filters.Deleted active project no longer strands the app. Deleting the currently selected project now falls back to another project instead of leaving the dashboard blank.Newly created projects stay selected. Creating a project now keeps it as the active project instead of switching back to the first one in the list.Onboarding key stability. The onboarding panel no longer revokes earlier keys you may have already pasted into your code. The created key is cached and reused while valid.

Bug fixes

  • Bedrock model IDs and dash-versioned Anthropic IDs (e.g. claude-haiku-4-5) now resolve to pricing instead of recording null cost.
  • Hardened model-ID normalization for -fast Anthropic variants, 3.x IDs, and more Bedrock creators (OpenAI, Qwen, Luma, Stability, TwelveLabs, DeepSeek R1).
  • Fixed a 500 in the usage-by-day query caused by a column alias collision.
  • Trace inspector card shadow is now visible in light mode.
  • Brightened the default button hover state in dark mode.
  • Invitation flow now survives sign-in: unauthenticated users bounce through login and return to the invitation, and zero-org dashboards list pending invitations with an Accept button.
  • Disabled form controls while changes are saving, to prevent duplicate submissions.
  • Removed loading flashes on the billing plan and encryption banner.
  • Stale project-scoped detail routes now redirect on project switch.
  • Escape closes the Foggy panel.

New features

Sessions view. Follow a single conversation or user thread end to end. Set a sessionId on your calls and Foglamp groups every turn, across workflows and agents, under one session. See Sessions.AI SDK v4 to v6 support via foglamp/wrap. A new wrap adapter instruments older AI SDK versions without requiring an upgrade to v7. Drop-in replacement for generateText, streamText, generateObject, and streamObject, producing the same traces to the same ingest endpoint. See AI SDK v4 to v6 (wrap).Web-search usage in traces. Provider-reported web-search calls are now captured alongside token usage and cost, so search-heavy agents are billed and analyzed accurately.Compile-time workflow safety. The SDK now enforces at the type level that workflowName and workflowRunId are passed together. Invalid combinations fail at build time rather than producing orphaned spans.Better dashboard navigation. Breadcrumb back navigation, card/table view toggles, and column filtering and sorting are available across list pages, including Traces, Workflows, and Agents.Editable project name and URL. Change a project’s name and URL from Org settings → General without recreating it. The URL drives the favicon shown in the project switcher. See Projects, keys & billing.Eval judge model picker. Choosing a judge model when creating an eval now uses an icon dropdown so providers and models are easier to tell apart at a glance.Copy-paste instrumentation in empty states. Empty Agents and Workflows pages now show ready-to-run snippets so new projects can ship their first trace without leaving the dashboard.

Updates

Syntax-highlighted code blocks. Code blocks across the dashboard are now rendered with Shiki and follow the app theme: github-light in light mode and vesper in dark mode.

Bug fixes

  • Hardened the ingest path against oversized span metadata and capped onboarding-key accumulation.
  • Resolved access-control and denial-of-service issues surfaced in a security review.
  • Fixed the onboarding telemetry API so first-trace detection fires reliably.