Skip to main content

Foxglove 3.2.0

📊 State Transitions: one row per array index​

Display each element of a primitive array as a separate row in the State Transitions panel. Set Array expansion to By index in the series settings. None stays the default, so existing layouts are unchanged. Read more about Expanding an array by index.

📈 Plot legend: hide, delete, and highlight series​

Manage series directly from the Plot legend: toggle visibility, open settings from the color swatch, and delete individual, grouped comparison, or dynamic series. Hovering over a plot line highlights its matching legend and tooltip rows, including rows hidden by tooltip truncation. Read more about the Plot legend.

🎥 Play converted video in the 3D panel​

The 3D panel can play H.264 (and other compressed video) carried on image topics when a schema converter maps them to foxglove.CompressedVideo. Choose Render as on the topic to project that video into the scene without recording a duplicate topic. Read more about Video.

New & Improved
  • Plot panel: expanded array series use shades of the parent color, and the same dynamic value keeps that shade across comparison sources — see Dynamic series
  • Use the Command palette to start a local-file comparison or add, switch, remove, and adjust comparison sources by name — see Comparison mode
  • Image panel: decodes 12-bit RCCG raw images (rccg12) — see Supported encodings and Color correction for RCCG images
  • 3D Maps: Altitude Reference samples ground altitude at the current location, and can align altitude automatically by sampling the map
  • Publish panel: Cmd+Enter (macOS) or Ctrl+Enter publishes from the message editor — see Controls and shortcuts
  • Topics sidebar: a topic's actions menu opens it in a Raw Messages panel
  • Layouts: when Visualize has no layout selected, Generate layout for this data builds a personal layout from the open data source's topics
  • Gallery: URLs preserve the selected preview topic, the open state of the details panel, and current page across Recordings, Events, Sessions, and Search. Shared links and the browser's Back button restore that view — see Choose preview topics
  • Recordings, Events, and Sessions galleries explain when a card has no preview because of the selected preview topic
  • Recordings, Sessions, Events, and Devices: breadcrumbs link back to the originating list or detail page and preserve list filters
  • Search: duplicate warnings collapse by message, and warnings identify missing queried fields and schemas or files omitted from results — see Search
  • Events: The Created By field shows the user's profile name, or Unnamed user when none is set
  • Devices: drop multiple recordings or a folder onto a device's details page to upload them — see Import files
  • Foxlet: an import that failed to upload can be retried from the app — see Diagnose and resolve errors
  • Bring your own storage: a quarantined import can be retried or downloaded from the app — see Diagnose and resolve errors
  • Remote Access: data topics are compressed in transit — see Remote Access
  • Sources tab: the left sidebar reports server version information for WebSocket and Remote Access connections
  • Embed: a parent page can own the Remote Data Loader connection and issue loader requests itself — see Parent-owned remote data loader transport
  • Extension panels can read the live WebSocket data source's host and port from RenderState.connection — see RenderState
  • Desktop: update notices appear as small cards in the bottom-right corner instead of a full-width banner
  • Japanese and Chinese translations cover previously untranslated UI, including the external MCP server settings
Performance
  • Local and remote indexed MCAP files scrub more smoothly
  • Remote files load and seek faster
  • The Recordings page loads faster for organizations with many recordings
API
  • Sites: configure ingest path policies to control which objects bucket notifications import, including index-in-place — see Configure bucket notifications
  • Saving an unchanged ingest path policy no longer creates a duplicate revision
Fixes
  • Agent sidebar: seek links that target a time outside the current playback range are rejected instead of seeking off-range
  • Agent sidebar: a 3D panel no longer reports missing frames while its transforms are still loading
  • Agent sidebar: failures show the correct error instead of defaulting to a connection problem, and Retry resumes failed messages, continuations, and tool results
  • 3D Maps: tiles continue to load after a Google tile session expires
  • 3D panel: OMG IDL timestamps use the correct transform. The subsecond field is nsec; update expressions such as .header.stamp.nanosec to .header.stamp.nsec
  • 3D panel: compressed Draco point clouds keep updating at high playback speeds
  • State Transitions: editing or deleting a series no longer reloads the others
  • Log panel: seconds in timestamps no longer pad with leading zeros
  • Playback: Left and Right move the eligible event or playback-range endpoint in that direction
  • Recordings: organizations with multiple sites can use the Site filter without an edge site or Foxlet
  • Recordings: Select all matching recordings now visualizes, compares, or adds to a session every recording the filter matches, not only the current page
  • Sessions: bulk delete no longer fails under load, and deleting a session refreshes its recordings
  • Sessions: comparison selections stay selected when you change or clear filters
  • Search: a large result set no longer raises an application error as gallery cards stream in
  • Remote Access: a session no longer reconnects unexpectedly during normal operation

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