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/wrapadapter. 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
(
generateTextvia 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.
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 anykey = 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
- 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, unlistedfoglamp.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/interv4.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 anelkjsmodule-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 acustomer 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. Thefoglamp() 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 acustomer
(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
Fshortcut 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 withfog.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.VercelwaitUntil 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
-fastAnthropic 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 asessionId 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.
.png?fit=max&auto=format&n=1sml0kwCw1BNtiz-&q=85&s=a7c846a133aa3480dc1e03a2da5fec2b)
.png?fit=max&auto=format&n=1sml0kwCw1BNtiz-&q=85&s=6534218552b79980770f11c40aafd6ec)