Skip to main content

Foxglove 3.4.0

📈 Sync XY plots to a time window​

An XY plot with Sync with other plots on now follows the time window of the plots it is synced with. Points inside the window stay at full opacity and the rest dim, so zooming a timestamp plot shows you which part of a path happened in that interval. Every point stays on screen, and the path doesn't rescale as the window moves. Read more about the Plot panel.

🔎 Search list pages by name or ID​

Recordings, Sessions, Devices, and Device events have a search box above the list. Type to match a name or key, or switch the box to ID to find one exact record. The Filter menu has its own search that finds filter values and applies them in one click. Press F to open it. Read more about Filtering.

⌨️ Find any keyboard shortcut from the app​

A searchable keyboard shortcuts drawer opens with Shift+? or from the user menu or command palette.

New & Improved
  • Plot: the @integral function plots the running integral of a signal over time
  • Plot and State Transitions: series have a duplicate action
  • Log panel: changing the level or name filter during a search updates the results in place and keeps your current match
  • Audio panel: plays G.726 CompressedAudio messages — see Supported formats
  • Generated layouts: show only the topics the 3D and Image panels can draw
  • Stack panel: resize gaps have a larger drag target, select the panel being resized, and keep consistent inset spacing
  • Comparison mode: dragging a source's offset range near the playback head snaps it to the playhead — see Comparison mode
  • Problems: warns when the Remote Access device's video codec is not supported by the browser
  • Command palette: opens a WebSocket or Remote Access connection in Visualize — see the command palette
  • Remote files: a Send browser cookies with requests option opens files behind a cookie-based access gateway
  • Agent sidebar: the Claude Opus option uses Claude Opus 5.5
  • Agent sidebar: the agent receives visualization instructions, cloud recording schemas, and loaded topic names upfront
  • Agent sidebar: the agent can add and remove comparison sources, switch between compare and merge, set per-source time offsets, and open event or session comparisons
  • Agent sidebar: conversation text is larger in the full-page view
  • Search: the empty results area shows the query reference, and clicking an example inserts its predicate into the query — see Building a query
  • Search: Source Details shows search queries as FoxQL
  • Search: results show Bytes Scanned with a size unit instead of a raw byte count
  • Timeline: coverage fills in for newly indexed recordings without a page refresh
  • Recordings and Timeline: the queued imports banner names the affected sites, and points to internal monitoring only for sites your organization operates
  • Recordings: deleting a selection warns which recordings Foxglove can't delete because it does not own their storage
  • Events: New property stays at the top of the available properties list
  • Extensions: custom panels can show every comparison source through the panel data source picker (experimental)
  • Embed: @foxglove/embed and @foxglove/embed-react file sources take a compare: true option to compare multiple files — see @foxglove/embed
  • API keys: All read and All write controls select capabilities in one click
  • Device authorization: the Authorize button is larger
  • Accessibility: empty-state cards are no longer announced as alerts, and their titles are navigable headings
Performance
  • Plot: large recorded series drawn with lines downsample faster
  • Plot: several series from the same recording sharing a plot reuse cached downsampled data
  • Plot: large series shown as points without lines downsample faster
  • Plot and Map: live playback of large series is faster
  • State Transitions: signals with many distinct values load faster
  • Raw Messages: very long strings without spaces, such as a URDF with inlined base64 meshes, no longer freeze the panel
  • User Scripts: layouts with many scripts load faster
  • Multiple recordings: seeking is faster
API
  • Site bucket notifications: POST /v1/site-bucket-notifications can report that an object was deleted, so bring-your-own-storage removes the recording
  • Site bucket notifications: accepts sessionKey to group recordings into a new or existing session, or sessionId to select an existing one
  • Site bucket notifications: Azure bring-your-own-storage requires the storage account; other site types can omit it
  • Rate limits: /endpoints/indexed-bucket-notifications and /endpoints/inbox-notifications have the same rate limit as /v1/site-bucket-notifications
  • Layouts: basic-seat members cannot create, update, or delete layouts — see Seat types
  • Data stream and export: a request with only a start time or only an end time returns an error instead of exporting the whole recording
  • Sessions: POST /v1/sessions with a projectId that does not match the device's project returns an error instead of creating the session in the device's project
  • Sessions: POST /v1/sessions and PATCH /v1/sessions/{keyOrId} reject recordings that GET /v1/recordings does not return, with the same 400 as a nonexistent recording
  • Recordings: deleting a recording with no imported data returns an error that says so, instead of "not found"
  • Recordings: object locations include the storage scheme (s3, gs, az, https, or file)
Fixes
  • Log panel: search Next and Previous step through every matching message, including messages that share a timestamp
  • Log panel: search highlights stay in place while new results load
  • Log panel: terminal control characters in a message no longer hide text, overwrite the line prefix, or move the highlight to the wrong row
  • Log panel: every line of a multi-line message is highlighted
  • Log panel: history stays within its size limit after large loads, and the last message keeps its highlight when playback continues past the loaded messages
  • 3D panel: topics named after a built-in JavaScript property, such as toString or constructor, behave like any other topic
  • Raw Messages: View in Search is hidden for local files, comparison mode, and other data Search does not index
  • Plot: exporting XY data as CSV finishes when an enabled series has no data
  • Plot: CSV export keeps rows with CJK and other 3-byte UTF-8 labels intact, and works for plots with a custom x-axis and long expressions
  • Plot: a stray point and flat line no longer appear in timestamp plots after a live source's clock resets to an earlier time
  • Plot: in comparison mode, series expression autocomplete suggests fields from the source the panel is pinned to, or from every loaded source when comparing all
  • Plot: in comparison mode, array index and latest-message XY series show each source's own values, and the legend shows the right x value for latest-message XY series with their own x expression
  • Comparison mode: panel settings no longer revert after saving an organization layout
  • Comparison mode: a source's events no longer appear on the timeline after its recording ends
  • Playback bar: hovering the bar or a panel while the app is busy no longer raises a "Maximum update depth exceeded" crash
  • Playback: the message at the boundary between cached and uncached data is no longer dropped
  • Tabs: panels in a newly selected tab fill in, and buffering continues, without waiting for the next seek
  • Streaming: opening recordings or sessions with very large time spans no longer crashes
  • Agent sidebar: a failed message stays retryable after the chat panel is closed and reopened
  • Agent sidebar: topic and playback tools stay available while a recording is buffering
  • Agent sidebar: layout edits with missing or invalid panel sizes no longer collapse Stack panels
  • Open connection dialog: checkbox focus rings are no longer cut off at the left edge
  • Dropdowns: fields such as the device and session pickers open when clicked instead of only taking focus
  • Tables: selecting text in a row no longer opens the row, so cell text such as IDs, timestamps, and durations can be copied
  • Details panels: in recording, session, event, and search results, only the link text is clickable, not the whole row
  • Recordings: ID, duration, and size no longer overlap when the column is very narrow
  • Recordings: typing in the Filter menu search no longer opens a submenu in the corner of the window
  • Example previews: animations respect the reduced-motion preference
  • Foxglove CLI: basic-seat users can sign in
  • API: import requests stay within projects the member can access
  • API: GET /v1/sessions succeeds for devices whose sessions contain many recordings

Downloads: Linux: deb amd64 arm64, snap amd64 | Windows: x64 arm64 | Mac: Apple Silicon Intel