Updates
- Tightened the page titles and social descriptions on foglamp.dev/scan and individual scan posters so shared links unfurl with clearer, more concise 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 an
ELK-routed flow map with a scored personality card for the project. The
page unfurls on socials with an OG 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 theopszoptical-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 shape mismatch — the layout engine is now lazy-loaded and probes every export shape. - Fixed the OG image route occasionally 500ing on cold starts by caching and retrying font loads.
- Contained the marketing footer’s film-grain filter 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 + name) next to the session/agent/workflow columns, and the trace detail page surfaces a matching customer badge — so you can spot which end-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 that buckets 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-integrations
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 error rate — 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 / 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, rendered in the Foglamp
aesthetic. It’s dev/localhost only, needs no API key, and adds nothing
to your production bundle (the broker is code-split and lazy-loaded).
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 end-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 mints 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; v4–v6 (wrap) and
non-reasoning paths simply omit it — no estimates.Grounding sources. RAG/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 & 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/tokens remaining, limit,
and time-to-reset — so “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/agent steps and is absent on the object
path (which calls the provider directly, with no separable model window)
and on v4–v6 — 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 an intra-stream reasoning-token curve, sampled exactly like text chunks. The trace waterfall shows a violet thinking segment on reasoning steps, and the span inspector’s TTFT splits into thinking time + time to first visible text. Models that don’t reason (or SDK majors that don’t report reasoning tokens) send nothing — 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
threading, 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–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/password users keep the initials avatar.Updates
Confirmation dialogs for destructive actions. Deleting a project, provider key, pricing override, invitation, or access grant now prompts before it commits — project deletes require type-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–1 scale. Numeric judges now score on a
normalized 0.00–1.00 scale (was 1–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 reverting to the first one
in the list.Onboarding key stability. The onboarding panel no longer revokes
prior keys you may have already pasted into your code — the minted
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 additional 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 mutations are pending 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–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 — same
traces, same ingest endpoint. See AI SDK v4–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 that workflowName
and workflowRunId are passed together at the type level — invalid
combinations fail at build time rather than producing orphaned spans.Better dashboard navigation. Breadcrumb back-nav, card/table view
toggles, and column filtering + sorting are available across list pages —
including Traces, Workflows,
and Agents.Editable project name & 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 identify 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.

