Foxglove 2.58.0
๐ Plot panel: one sub-series per array indexโ
Messages often pack related values, such as accelerometer axes or joint positions, into a numeric array. The Plot panel's timestamp plots offer an Array expansion setting: choose By index to draw one sub-series per array element, labeled with its source index. None remains the default, so existing layouts keep their current behavior, and ranged slices retain their source indices. Read more about Array expansion.
๐ Search from the Raw Messages panelโ
Hover over a value in the Raw Messages panel and choose View in Search to open Search with a query for that message path and value, scoped to the recording's time range. The same action on the message header searches for any message on that path. Search returns results from recordings that have been indexed. Read more about Search.
โจ๏ธ Keyboard shortcuts for message steppingโ
Read a topic message by message without reaching for the mouse. With the Raw Messages panel selected, Alt+[ and Alt+] (Option on macOS) step to the previous and next message on that panel's path. Read more about Message stepping.
๐ Visualize multiple recordings merged as oneโ
Select two or more imported recordings on the Recordings page and choose Visualize to open them merged into a single timeline, without creating a session first. Topics from every recording share one playback range, and the app bar lists each recording. The Source info sidebar opens with a Merged section spanning the full combined range, followed by the name and time range of each source.
New & Improved
- Gauge panel: an Origin setting grows the fill outward from a chosen value, with an optional Mirror color at origin toggle for a diverging color ramp
- Plot panel: series settings show the same error and warning indicators as the plot legend, flagging missing topics, invalid paths, timestamp problems, and series with no matching data
- 3D panel: in object inspection mode, a click that intersects several objects opens a disambiguation menu labeling each one with its object ID alongside the topic
- 3D panel: hover tooltips show up to 5 metadata rows plus a count of the rest, so tooltips for objects with large metadata collections no longer cover the panel
- Map panel: highlighted locations use a more saturated color that stays legible in both light and dark themes
- Remote data loader: connection failures report a network error within about 10 seconds, with VPN and firewall guidance and a Retry button
- Remote data loader: the Problems sidebar shows the error message the upstream service returns, such as an expired recording link
- Command palette: Switch project drills into a searchable project list, so you can change projects without leaving the keyboard
- Billing: Enterprise plans can view their usage from Settings โ Billing
- Bring Your Own Storage (BYOS): the bucket notification commands for AWS and Azure filter to
.mcapand.bagfiles โ see Configure bucket notifications for the current commands - Search: results scroll with the rest of the page, and the query bar and results toolbar pin to the top
- Search: the time range picker has previous and next arrows that shift the range by its current duration
- Date pickers: Last 3 months, Last 6 months, and All time join the existing shortcuts, and Search opens on Last 6 months when no other range is set
Performance
- Smoother playback above 1x speed
- Raw Messages panel: faster rendering during playback while the message stepping controls are visible
- Map panel: no interface freeze while a dense location topic loads its history
API
- BYOS: provisioning a site turns on search indexing and automatic ingestion from the start
- BYOS: search indexing treats a recording with a missing source file as deleted, so it leaves the search index even when the bucket never sends a delete notification
Fixes
- Plot panel: empty primary and secondary y-axis placeholders use distinct colors that stay stable as you configure either series
- Plot panel: each series downsamples against the visible range of its own y-axis, so narrow peaks on the secondary axis stay visible
- Plot & State Transitions: ROS header stamps render for topics streamed from Data Platform
- State Transitions: a series that matches no data says so, and a custom timestamp method without a path reports the missing path
- Log panel: the log list fills the available panel height on live connections
- Map panel: current location markers use the same color as the matching Plot series
- Panel selector: stays inside the center pane instead of drawing over a widened sidebar
- Panel settings: the visibility and sync icon buttons keep a pointer cursor across the whole button
- Playback: removing a panel mid-playback no longer stalls playback for several seconds
- Remote Access: the device filter in the connection dialog persists when you switch connection tabs and return
- Search: date ranges longer than 10 years survive editing in the time range picker and sharing by URL
- Search: the dropdown carets in the query builder sit beside their text instead of overlapping it
- Search: the time range picker no longer shows a hover tooltip
- Search: the results details tooltip drops redundant lines and labels each stat
- Date pickers: the selected shortcut name renders instead of the raw dates, and each picker hides shortcuts longer than its maximum range
- Pending imports: hovering over a truncated error message shows the full text
- Extensions: the visualization and the Installed extensions list show a loading state until the organization's extensions finish syncing, instead of briefly reporting no extensions
- Custom properties: type icons stay inline with their labels instead of wrapping above them
- Custom properties: the event type and custom property sidebars label each type as Single-select or Multi-select instead of
enumandmulti-enum - Fixed exports of zero-duration recordings so they cover the whole recording
- Fixed the offline licensing portal showing a blank page
Downloads: Linux: deb amd64 arm64, snap amd64 | Windows: x64 arm64 | Mac: Apple Silicon Intel
Remote Data Loader v0.0.9
This release reduces the amount of data downloaded when seeking, and opens the login prompt in a popup window instead of a new browser tab.
Changed
- Seeking now downloads less data. Message lookback stops as soon as it has the newest message for each topic and fetches independent topics concurrently, instead of loading every source that overlaps the lookback window on each seek.
- The login page now opens your identity provider in a popup window instead of a new browser tab.
Fixed
- Fixed intermittent
dns errorfailures under high load.
Docs: About | Development | Deploy
Remote Data Loader v0.0.8
This release lets your data backend forward a human-readable error message to the Foxglove app.
Added
- Data backends can now surface a human-readable error message to the user by setting the
x-foxglove-error-messageresponse header. See the development guide for details.
Docs: About | Development | Deploy
Foxglove 2.57.0
๐ก Remote Access: stream live robots from anywhereโ
Remote Access is now generally available on Pro and Enterprise plans, bringing your live robots into Foxglove from anywhere. Connect to any device in your fleet over the cloud and stream its data in real time, with no VPN, port forwarding, or shared network required. Open the connection dialog, search your fleet, pick a live device, and you're streaming in seconds. Reconnect in a click when a session ends, and see which devices are online at a glance with live status and last-seen indicators.
๐งต Toggle individual lines in a dynamic seriesโ
Dynamic series draw one line per label from an array of {label, value} objects. Each line now gets its own visibility toggle in the legend, so you can show or hide individual labels without turning off the whole series. This works in both the Plot and State Transitions panels.
โฏ๏ธ Step through messages in the Raw Messages panelโ
When viewing a recording, the Raw Messages panel can now seek the playhead to the next or previous message on its path. When several messages share the latest timestamp, you can page through them, and an empty state offers a "Seek to next message" link when nothing matches at the current time.
New & Improved
- Plot panel: message path (XY) series can each set their own time range, following the panel default or overriding to All or Latest
- Plot & State Transitions: dynamic series can target an array-of-objects field directly (for example,
/topic.items), without a trailing[:]slice, for topics with a known schema - 3D panel: SceneEntity metadata now appears in a tooltip on hover
- Added
@yprand@yrpmessage path functions that decompose a quaternion into yaw/pitch/roll Euler angles (ZYX and ZXY conventions) - Video export: exports now stream directly to the file you choose, so long exports no longer risk running out of memory. Cancelling keeps the captured frames as a valid, shorter video
- Remote Access: recently viewed entries link to the device detail page when the device is unavailable, instead of opening the viewer
- Remote Access: the recently viewed list shows and searches each device's current name
- Remote Access: viewer links reflect the device's current name
- Seat upgrades: on the Pro plan, members can request a seat upgrade, and admins can review and approve developer seat requests
Performance
- Log panel: faster rendering for recorded data sources
- Plot panel: improved downsampling for low-density topics
- Improved video playback latency for H.264 encoded with VCL HRD parameters
- Faster rendering for sessions with many recordings
API
- Site bucket notifications: added a
deviceNameoption that looks up the device by name and creates it if it doesn't already exist - Sessions API:
GET /sessionsnow returns per-session recording summary fields:recordingCount,recordingStart, andrecordingEnd
Fixes
- Plot panel: the signal editor no longer collapses after entering the first Y-value path
- Plot panel: re-selecting a topic in a series message path drills into its sub-fields again
- State Transitions: series no longer occasionally fail to load until the page is reloaded
- Map panel:
LocationFixestopics from ROS sources now appear and render - 3D panel: now recognizes converted
LocationFixtopics - Video export: fixed a crash when the frame rate field was cleared
- Playback: seeking now delivers every message when multiple messages on a topic share the newest timestamp
- Playback: the events bar stays visible after trimming the playback range
- Fixed seek stalls on high-latency file hosts
- Fixed downloads from the Session recordings table
- Fixed session list filters resetting when returning from a session's detail page
- Remote Access: fixed duplicate entries for the same device in the recently viewed list
- Linux desktop: no longer opens a second, generic taskbar entry instead of grouping under its pinned launcher
- Desktop:
package://(ROS_PACKAGE_PATH) assets such as 3D meshes load correctly - Custom properties: fixed select/multi-select option creation and added a tooltip explaining the disabled Create button
- Fixed inbox import failures for Azure hierarchical-namespace storage accounts that emit
dfs.core.windows.netEvent Grid URLs - Fixed streaming Azure BYOS recordings that include MCAP metadata records
Downloads: Linux: deb amd64 arm64, snap amd64 | Windows: x64 arm64 | Mac: Apple Silicon Intel
Foxglove 2.56.0
๐ข Numeric timestamps in Plot and State Transitionsโ
The Plot and State Transitions panels can now use a numeric timestamp field as the x-axis. Each value reads as seconds, so apply a message-path modifier (for example, .@mul(1e-9) for nanoseconds) when your data uses different units.
๐ Plot legend in any chart cornerโ
The Plot panel's floating legend can now sit in any of the four chart corners. Pick Top left, Top right, Bottom left, or Bottom right from the panel settings to keep the legend clear of the data you want to read.
New & Improved
- Audio panel: plays
CompressedAudiomessages (Opus and AAC-LC) - Map panel: marker tooltips wrap long metadata values and anchor to the marker instead of truncating
- 3D panel: updated Publish Point, Publish Goal, and Publish Pose Estimate tool icons
- Remote Access: Connect button now appears for every device immediately, without needing a page refresh after starting a session
- Search: list results show session IDs from the associated recording when the search hit doesn't include one
- Data source links: the seat-restriction error now names the data source and the required seat type
Performance
- 3D panel: faster text-label rendering
API
- Bring Your Own Storage (BYOS) sites can be renamed from site settings and the Sites API
- BYOS: Azure West US 2 and Azure East US are available as primary site regions
- API keys with the device update capability can toggle a device's Remote Access via
PATCH /v1/devices/{id} - Enterprise audit log: records Remote Access enable and disable actions as
device.update_remote_access - Embedded viewer SDK: supports Remote Access data sources
- Event-types API: the deprecated
customPropertyIdsfield is removed; usecustomPropertiesinstead - Recording webhooks and recording API responses now include a documented
sessionId - Topic-exists search: when unavailable, the error specifies the required primary site version (v0.0.102) and recommends upgrading
@foxglove/omgidl-serialization: deserializing a missing union with an undefined case for the default discriminator no longer errors
Fixes
- 3D panel: text-label selection works reliably across render paths
- 3D panel: Collada meshes with unnamed nodes load correctly
- Plot panel: tooltip width stays stable while scrubbing latched values
- Plot panel: cursor flag no longer omits a value for the second series when two series are plotted
- Playback: looping a single-message file no longer hangs the page
- Layouts: auto-generated layouts no longer include duplicate 3D panels
- Recordings: deviceless uploads keep their project association
- Recordings: the upload dialog shows devices created elsewhere without a page refresh
- Multi-select action bar: buttons size correctly on small windows
Downloads: Linux: deb amd64 arm64, snap amd64 | Windows: x64 arm64 | Mac: Apple Silicon Intel
Primary Site v0.0.105
This release improves search performance and raises some default resource limits in the query server.
Changed
- Defaulted the
MAX_OPEN_FILESvariable to 65535 - Raised the default query service CPU limit from 1 to 4 and memory limit from 2Gi to 8Gi
Performance
- Improved message scanning performance for search through multi-threaded scanning and other optimizations
Primary Site v0.0.104
Foxglove 2.55.0
๐ Plot panel: secondary y-axisโ
Plot panels can now show two y-axes. Assign each series to the primary or secondary axis from panel settings, then compare signals with different units or ranges without splitting them into separate panels.
๐ Data search improvementsโ
Recent and saved searches are available to everyone on the Search page. Reopen queries you ran recently, save searches for yourself or your organization, and reuse them from the Search toolbar. Searches now also show query progress and size estimates while results load, and Topic fields can match recordings where a topic exists using file-level metadata.
๐ Layout management in the public APIโ
The public REST API now supports managing shared layouts with an API key, including list, retrieve, create, update, delete, and restore operations. See the API reference for the full surface.
curl -X POST https://api.foxglove.dev/v1/layouts \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $FOXGLOVE_API_KEY" \
-d '{
"name": "Fleet Diagnostics",
"permission": "ORG_WRITE",
"data": { ... }
}'
The layout data format is not considered stable and may change over time.
New & Improved
- Plot and State Transitions panels: dynamic sub-series now support separate Label field and Value field settings
- Plot panel: timestamp-plot hover tooltips show each series' most recent value at or before the cursor when no sample exists exactly at the cursor
- State Transitions panel: tooltips for zoomed-out merged state bars show a single shortened value with a "Zoom for more" hint instead of a long multi-value label
- Playback bar: the focused Plot, State Transitions, or extension panel's zoomed range is indicated on the timeline
- Map panel: custom map tile URLs support Bing
{quadkey}and{subdomain}formats - Map panel: layers and topics can be reordered in settings
- 3D panel: topic settings include a Render as selector for topics that can render through more than one schema
- 3D panel: side-view panning automatically switches to screen-space panning near sharp camera angles
- Search: the default query granularity is now 10 seconds
- Layouts: the layouts list supports fuzzy search with highlighted matches, and folder names are included in name sorting
- Metadata sidebar: HTTP and HTTPS URL values are clickable
- Problems: Failed to fetch errors link to the network troubleshooting guide
- Embedded viewer SDK:
startPlayback(),pausePlayback(), andplayUntil()methods control playback programmatically - Embedded viewers: set
startTimeon file, remote-file, device, and recording sources to seek when the data source loads - The Linux desktop app supports hardware-accelerated H.265 (HEVC) video decoding on Intel integrated GPUs; HEVC hardware decode on dedicated or discrete GPUs is not currently supported
- Timeline and Recordings pages: pending imports are grouped in a collapsed section by default
- Panel actions: split panel actions are hidden while a panel is expanded
Performance
- Search results load recording labels only for visible rows, improving large result sets
- The app bar connection spinner uses less CPU while a data source is reconnecting
- Remote MCAP playback avoids seek stalls on high-latency file hosts
API
- Grafana plugin query tokens can retrieve matching indexed files
- GCS Bring Your Own Storage (BYOS) recordings refresh indexed metadata when object metadata changes
- Hosted data uploads with unsupported filename characters return a client error instead of an internal server error
- Searches can match backslashes (
\) in recordings, property values, and other searchable fields
Fixes
- State Transitions panel: filtered diagnostic paths render as continuous bars instead of disconnected blocks
- Custom date range filters: the end date picker respects a newly selected earlier start date
- Extensions: disabled extensions no longer silently re-enable after navigating back during a slow load
- Plot panel: wheel zooming avoids unwanted zoom changes from inertial scroll tails
- Raw Messages panel: hover buttons no longer overlap the scrollbar
- Shared view links with a timestamp open playback at the linked time instead of the start of the range
- Newly indexed recordings no longer occasionally fail on ingestion
- Plot panel: message path XY tooltips show values from all series at the hovered x-position
- Generated layouts open RawAudio topics in Audio panels instead of Raw Messages
- Embedded standalone mode no longer fails with a "No QueryClient set" error
- Paginated settings tables no longer advance past the last page when the next-page button is clicked rapidly
- Remote file connections have clearer tab titles
- macOS Ctrl+K text editing works in Foxglove text fields while Cmd+K continues to open the command palette
Downloads: Linux: deb amd64 arm64, snap amd64 | Windows: x64 arm64 | Mac: Apple Silicon Intel
Remote Data Loader v0.0.7
This release adds optional in-memory time-to-live (TTL) caching for manifest responses and improves HTTP source error messages.
Added
- Added optional in-memory TTL caching for manifest responses; see the deployment guide for configuration and authorization details.
- Added
globals.manifestCache.maxCapacityto tune manifest cache capacity.
Changed
- Improved error messages when an HTTP source URL is supplied and
ALLOW_HTTP_SOURCESis unset orfalse.
Docs: About | Development | Deploy