Primary Site v0.0.94
Added
- Added the
MULTIPART_COPY_PART_SIZEenvironment variable to the inbox listener to configure copy part size when transcoding completes. - Added the
total_bytes_read_from_object_storagePrometheus metric to the query service
Fixed
- Fixed etag handling when files in the lake bucket had been overwritten
- Fixed etag mismatch logging error, now logs warning
- Fixed index in place streaming by range being exclusive instead of inclusive
Foxglove 2.46.0
🔎 Command Palette
Quickly find and execute commands with the new Command Palette. Press Cmd+K (Mac) or Ctrl+K (Windows/Linux) to open a searchable list of quick actions. Use it to instantly open data sources, navigate to pages, switch layouts, and more. The menu smartly offers options based on your active page.
🗺️ Map Panel Point Shapes
The Map panel now supports new marker shapes – diamond, square, plus, and cross – as point display modes, giving you more ways to visually distinguish data on the map.
📝 Dynamic Markdown Panel
The Markdown panel can now render dynamic text from your topic data. Use message path syntax to select and display live documentation, status text, or other markdown that changes over time with your data.
New & Improved
- Extension
activatefunctions can now return a Promise, allowing for asynchronous initialization before registering extension features - The Map panel satellite layer now shows upscaled real imagery instead of "Map data not yet available" placeholders when zooming into areas without high-resolution satellite coverage
- Increased hover and click tolerance on the Map panel, making it easier to interact with points and features
- Generated Python docstrings now use reStructuredText (RST) formatting instead of Markdown
- Added a "Role" filter to the organization members management page
Performance
- Fixed Map panel becoming unresponsive when loading large datasets from the Timeline
API
- Improved formatting of docstrings in generated Python classes for better compatibility with Python documentation tools and IDEs
Fixes
- Fixed enum names missing in the Raw Messages panel when setting the message path to a nested field
- Fixed the 3D panel camera from getting stuck and not responding to rotation controls when camera distance was set to 0
- Fixed the recents list showing a generic "Foxglove Data Platform" title instead of device name and event time when visualizing an event from the events page
- Fixed an error when clicking "Create event" before custom properties had finished loading
- Fixed the event type dropdown so clicking outside closes it immediately, including on first open
- Fixed the "Change panel" submenu from closing unpredictably when moving the mouse diagonally toward it
- Fixed LaserScan points not rendering in the 3D panel when the "Log depth" setting was enabled
- Fixed events wildcard search so queries also match multi-enum typed property values
- Fixed event custom properties incorrectly appearing "in use" when they were not, preventing their deletion
- Fixed embedding Foxglove so that actions inside the app no longer cause the outer (embedding) page to scroll
- Fixed a crash in the Map panel when disposing of the map while async operations were still pending
Downloads: Linux: deb amd64 arm64, snap amd64 | Windows: x64 arm64 | Mac: Apple Silicon Intel
Foxglove 2.45.0
🗂️ Desktop Tabs
The Foxglove desktop app now supports tabbed browsing, letting you work with multiple data sources, layouts, and views within a single window.
- Create new tabs to work with different data files, layouts, or projects side-by-side without juggling multiple windows
- Drag and drop tabs to reorder them within the tab bar
- Each tab maintains its own navigation history—use the back and forward buttons to navigate within a tab
Keyboard shortcuts:
| Action | Shortcut |
|---|---|
| New Tab | Cmd/Ctrl + T |
| Close Tab | Cmd/Ctrl + W |
| Next Tab | Ctrl + Tab |
| Previous Tab | Ctrl + Shift + Tab |
| Last Active Tab | Cmd/Ctrl + / |
| Back | Cmd/Ctrl + [ |
| Forward | Cmd/Ctrl + ] |
📍 Image Panel Cursor Publishing
The Image panel now includes publish settings that let you emit real-time cursor position events. Configure topics in the panel settings:
- Hover topic: Publishes cursor position continuously as you move the mouse over the image
- Click topic: Publishes cursor position when you click on the image
Messages are published as foxglove.Point3InFrame (non-ROS) or geometry_msgs/PointStamped (ROS), making it easy for downstream systems to react to cursor interactions.
🗺️ Map Panel Updates
The Map panel has several improvements:
- GPS coordinates now display in the HUD, and tooltips show topic information when hovering over points and GeoJSON features
- A new "Last N seconds" sliding time window history mode lets you display only recent data, improving performance with large datasets
- Color swatches now appear in topic section headers, making it easier to identify topics when collapsed
- "Expand all" and "Collapse all" options for topic lists make it easier to navigate complex configurations
- A visibility filter lets you quickly find visible or hidden topics
New & Improved
- Added "Expand all" and "Collapse all" options to topic and series lists in the 3D, Image, Plot, State Transitions, and Log panels
- Added a 10x playback speed option to the playback controls dropdown menu
- Added visibility filters to series lists in Plot panel settings
- Added color swatches to series section headers in the Plot panel, and colored icons for Polygons and Custom Layer Grids in the 3D panel
- The Image panel now shows a synced timestamp when "Sync annotations" is enabled
- Mesh up-axis and COLLADA up-axis settings now apply immediately without requiring a restart
- The Publish panel now preserves message content when switching to a topic with the same schema
- The "Create event" button now appears when streaming data using the
ds.eventIdURL parameter, and the Download option is available in the data source dropdown - Changed the default Map panel time range mode from "All" to "Latest" for improved performance with large datasets. Note: Existing panels previously configured for "All" may need to be updated
- The Recordings table is now more information dense, making it easier to scan and find relevant information
- The playback range editor's start and end time text fields now update the slider handles immediately as you type
- Increased maximum WebSocket frame and message size to 256MB; larger messages are now dropped with a warning
Performance
- Improved scrubbing performance
- Improved timeseries plot performance
API
- macOS desktop builds are now distributed as separate Intel (x64) and Apple Silicon (arm64) downloads instead of universal binaries, reducing download size by ~100MB
- The
@foxglove/embedand@foxglove/embed-reactpackages are now ESM-only, removing CommonJS exports - The FoxgloveViewer embed now inherits its color scheme from the containing page when using
colorScheme: "auto"
Fixes
- Fixed ULog file log messages incorrectly displaying as DEBUG level instead of their correct severity
- Fixed URDFs disappearing shortly after being made visible for the first time
- Fixed Image panel showing a blank display when camera calibration data is invalid; now falls back to showing the uncalibrated image with a warning
- Fixed the playback range error message not clearing and slider handles not updating correctly after adjusting an invalid time range
- Fixed State Transitions panel not properly reserving space for series with invalid paths, causing label misalignment
- Fixed intermittent flickering of covariance ellipses in the Map panel
- Fixed the right sidebar toggle not working when an event was selected
- Fixed markers appearing above other markers despite having a lower z-position in the 3D panel
- Fixed State Transitions panel series resetting when adjusting global variables that the panel does not use
- Fixed the 3D panel silently failing when displaying a
foxglove.Gridmessage with elevation that exceeds possible dimensions; an error is now shown - Fixed a message delivery bug that over-delivered messages to some panels when multiple panels used range subscriptions
- Fixed State Transitions panel not showing gaps when protobuf optional fields become unset
- Fixed Map panel centering behavior to always center on location data instead of relying on previously saved center positions
- Fixed the Raw Messages panel plot button producing unexpected results in some cases; the button is now hidden when it would not work properly
- The custom date range picker for recordings now has default start/end values to ensure URL parameters are updated correctly
- Copying and pasting a tab with a User Scripts panel now includes the associated scripts
Downloads: Linux: deb amd64 arm64, snap amd64 | Windows: x64 arm64 | Mac: Apple Silicon Intel
Foxglove 2.44.0
📋 Copy & Paste Tabs Across Layouts
You can now copy and paste entire tabs—including all their panels and configurations—across layouts using the system clipboard. Right-click any tab to access "Copy tab" or right-click the tab bar background for "Paste tab." This makes it easy to reuse complex tab setups across different layouts.
🗺️ OpenSeaMap Layers for Map Panel
The Map panel now supports additional overlay layers for nautical charts. Add Sea Marks, Shaded Relief (bathymetry), or Isobaths (depth contours) on top of your base map layer. Each layer can be toggled, reordered, and have its opacity adjusted independently.
📊 Bar Style for Gauge Panel
The Gauge panel now supports a "bar" style in addition to the existing dial style. Choose the visualization that best fits your data—use the dial for traditional gauge readouts or the bar for linear progress indicators.
🎯 Drag & Drop from Settings Sidebar
Topics and message paths can now be dragged from a panel's settings sidebar onto other panels. This makes it easy to quickly inspect topics in Raw Messages, add series to a Plot, or duplicate series from one panel to another.
New & Improved
- Connection dialogs now show the 3 most recent connections for that specific source type, making it easy to quickly reconnect
- The Topics sidebar now shows the encoding used for each topic
- Clicking "View all" from a Recording, Device, or Event details page now restores previously applied filters when returning to the list page
- The extensions list now shows which extension points each extension provides
- Quoted field names are now supported in Message Path filters
- Message Path autocomplete now suggests nested fields when typing inside a filter
- Improved Message Path Input brace behavior—closing braces are only auto-inserted when typing at the end, and deleting an open brace removes the matching closing brace
- Added support for 2D Pose click-to-publish for non-ROS servers
- Compressed video can now be synchronized with annotations
- Downloaded MCAP files from the Timeline view now include both device name and timestamp in the default filename
- Added query syntax validation to the metadata search field with user-friendly error messages
- Custom property enum values can now be deleted and reordered when they are not in use
- Added a copy button to copy all logs in the User Scripts panel, with individual lines now selectable
- Improved text selection behavior in the time field—drag-select now works correctly and Escape clears the selection
- Visiting
/devices/<name>with a valid device name now redirects to the corresponding device page at/devices/<id>
Performance
- Improved depth map point cloud rendering performance
- Improved zooming performance of dense point cloud depth maps
- Faster scene entity rendering
- General performance improvements
API
- Breaking: ULog files now use the
foxglove.Logschema for log messages instead ofrosgraph_msgs/Log. The synthetic log topic is renamed fromLogto_log. User Scripts or layouts referencingLog.msg,Log.header.stamp, or ROS log level values from ULog files will need to be updated.
Fixes
- Fixed nearest neighbor interpolation for non-square grids in the 3D panel
- Fixed
Fisheye62camera projection for wide-angle lenses with FOV greater than 180° in the 3D panel - Fixed Arrow color not being set for a
PosesInFramemessage containing a single pose - Fixed an issue with deleting events from the events table
- Fixed Y-axis FOV and other camera settings not updating the viewport immediately in the 3D panel
- Fixed vertical scrolling speed in the State Transitions panel when click-drag scrolling
- Fixed panels not being selectable when the panel settings sidebar is hidden
Downloads: Linux: deb amd64 arm64, snap amd64 | Windows: Universal | Mac: Universal
Primary Site v0.0.92
Primary Site v0.0.91
Added
- The indexer now supports indexing files in parallel.
- The indexer now includes metadata & attachments when deriving the content hash for an MCAP file.
Fixed
- Fixed a bug where the query server would return HTTP 500 instead of 404 when a quarantined file cannot be found.
Foxglove 2.43.0
🗓️ Introducing Event Types
Event Types extend Events with structured schemas for timeline annotations. Instead of free-form key/value metadata, you can define custom properties that standardize how your team captures information during playback.
Define your schema in Settings: Create Event Types with custom properties (text, number, boolean, etc.) and mark properties as required to ensure critical fields are always filled in. You can also see which types and properties are actively in use across your recordings.

Improved visualization experience: Events on the playback bar are now colored by their Event Type, and filtering dims non-matching events, so you always know what exists. Edit events in a dedicated sidebar with inline validation, or drag to resize directly on the timeline. Events can have zero duration (instant markers) or span a time range.

API support: A full REST API is available for managing Event Types and querying typed events. Query events by metadata, typed properties, or both, and create or update typed events programmatically with property validation.
curl -X POST https://api.foxglove.dev/v1/event-types \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $FOXGLOVE_API_KEY" \
-d '{ "name": "Hardware Fault", "colorName": "red" }'
📐 Plane Projection for Camera Topics
You can now project camera images onto a reference plane in the 3D panel. This is especially useful for ground-plane projection, giving you a top-down view of camera data overlaid on your 3D scene. Select a projection frame from available transforms to map the camera output onto that plane.
New & Improved
- You can now add panels without first creating a layout—Foxglove will automatically create a default layout for you
- Linked selection highlights now extend to distorted image panels, showing cube outlines projected through the camera model
- Property chips in the event table now display human-readable labels, and URL values are clickable links
- Added a confirmation dialog when deleting user scripts to prevent accidental loss
- The Diagnostics panel now allows setting a custom title
- Errors during extension initialization are now displayed in the Problems sidebar
- Videos in the Image panel now fetch the previous keyframe and show content when paused
Performance
- Improved depth map point cloud rendering performance
Fixes
- Fixed ROS 2 bag (db3) playback returning incorrect data when seeking and causing out-of-memory errors
- Fixed Plot panel autoscaling behavior
- Fixed State Transitions panel jitter when time window mode is set to Sliding
- Improved error reporting for unsupported audio codecs in the Audio panel
- Fixed point clouds losing color information when depth values were invalid (NaN)
- Fixed the fixed frame selector not showing the root frame when its name is an empty string
- Fixed desktop app launching twice when clicking "Open in Desktop"
- Fixed URDF material colors not being applied to OBJ meshes without embedded materials
- Fixed Plot panel failing to display all data when resetting zoom on some scatter plots
- Fixed Kannala-Brandt and Fisheye62 distortion models when all distortion coefficients are zero
- Fixed disabled topics still showing points in the Map panel
- Fixed Raw Messages panel crash when diffing messages containing BigInt values
- Fixed Shift+Scroll shortcut in the State Transitions panel to scroll vertically
- Fixed annotation offset when hardware video decode is disabled
- Fixed synchronized image annotations appearing in the next frame instead of the current one
- Improved handling of incomplete deep links in the desktop app
Downloads: Linux: deb amd64 arm64, snap amd64 | Windows: Universal | Mac: Universal