v1.18.0
After 174 PRs, 403 commits and more than 15k lines changed in the codebase, this is the biggest Cockpit release so far and, as always, I believe this is also the best one π
β¨ New features
1.18 brings several new functionalities to the table:
Direct RTSP support
You can now directly consume RTSP streams from Cockpit. This means you're not limited anymore to only using WebRTC streams. It also means you can consume the video stream directly from the camera, without it passing through the vehicle, which reduces resource usage in the companion computer and allows for other types of integrations.
Map and Mission Planning improved
Many new features were introduced in the Map widget and Mission Planning view. We now have a Mission Control Panel, which allows you to pause missions, jump waypoints and return to home whenever you want.
We also added support for setting the survey height, for those doing aerial or subaquatic missions, as well as the turnaround distance, specially useful for those working with photogrammetry and bathymetry.
Extended external integrations
External integrations were deeply extended in this release. Users can now send data to Cockpit directly without having to use MAVLink or pass through the vehicle, which can drastically reduce the complexity of integrations.
This is thanks to the new support for Generic WebSocket Connections. This data can come from anywhere β be it a service running on the topside, a backend on the internet or an extension in the vehicle.
We have also added a lot of new functionality to the External Features support. It now accepts joystick mapping suggestions and many more external widget options, which means integrators can more easily guide their users on configuring Cockpit with their extensions.
π οΈ Bug fixes
But the most important thing in 1.18 was not what we added, but what we fixed. This release was truly focused on making Cockpit much more stable and reliable.
It has a total of 139 issues closed, with almost 70% of them being bug fixes. The most annoying bugs are now gone, and there is one specifically that I want to talk more about: the settings sync between BlueOS and Cockpit.
Automatic settings sync
For a long time, one of the most loved β and at the same time most hated β features in Cockpit was its settings synchronization with BlueOS.
It exists so you can change between different topside devices without having to redo or manually port your Cockpit settings whenever you switch devices. And it worked well, with one big catch: that annoying modal that appeared every time you opened Cockpit. It asked you which version you wanted to keep for every setting that had changed.
This is now gone. π
The settings sync feature was completely refactored in Cockpit, and synchronization is now done automatically, with all changes carrying timestamps. This means your most recent change is always kept automatically.
You don't have to worry about this kind of decision anymore, and opening Cockpit should now feel like a much more streamlined process.
π What's coming next
For 1.19, we are planning to put a lot of work into the Map and Mission Planning systems, with the goal of supporting the full set of functionalities needed to operate boat missions.
We also plan to further extend the usage of the data-lake architecture in the system, making it the de-facto pipeline for data sharing inside Cockpit, enabling easier customizations, recording and replay capabilities.
Stay tuned.
With all that said, we really hope you have a wonderful experience with this new release.
Enjoy and happy piloting!
What's Changed
Media
- Direct RTSP streams, Cockpit can now connect to RTSP sources and shows richer stream information in the video UI (#2417, #2522, by @rafaellehmkuhl)
- Camera replacement helper, Cockpit can prompt you to migrate widgets when a camera changes, and it now handles snapshot widgets too (#2577, #2590, #2600, by @rafaellehmkuhl)
- Snapshot reliability, snapshot timing, error reporting, and work-area capture were fixed so captures are more dependable (#2452, #2510, #2511, #2559, by @rafaellehmkuhl)
- Video library cleanup, the snapshot library now shows the right items and offers a button to open the storage folder (#2453, #2571, by @rafaellehmkuhl)
- Video playback polish, the loading state was redesigned and the stats overlay now stays upright when video is flipped (#2397, #2485, by @rafaellehmkuhl)
- Recording and chunk handling, Cockpit can now process multiple Lite chunk ZIPs together and better handles overlay generation for video chunks (#2555, #2658, by @rafaellehmkuhl)
Vehicle control
- Boat mode actions, boat and rover mode changes can now be assigned to joystick buttons (#2313, by @rafaellehmkuhl)
- Joystick profile clarity, vehicle-type mappings and default profiles were simplified so joystick behavior is easier to understand and manage (#1824, #2491, #2519, by @rafaellehmkuhl and @ArturoManzoli)
- Controller calibration fix, raw joystick axes are now shown correctly while calibrated values are kept separate for control logic (#2663, by @rafaellehmkuhl)
- Multiple-controller handling, Cockpit no longer disables joystick forwarding just because multiple controllers appear together (#2351, #2346, by @rafaellehmkuhl)
- Joystick UI fixes, long mapping labels, extra buttons, and touch interactions on the configuration screen were improved (#2306, #2302, #2656, by @ArturoManzoli and @rafaellehmkuhl)
- Input mapping polish, the joystick assignment dialog spacing and menu behavior were cleaned up (#2564, #2402, by @rafaellehmkuhl and @ArturoManzoli)
Performance and reliability
- Settings sync robustness, the new settings backend preserves the newest value and avoids repeated manual conflict handling (#2027, by @rafaellehmkuhl)
- Data-lake listener safety, one failing listener no longer stops the rest from running (#2488, by @rafaellehmkuhl)
- Data-lake update batching, variable-list updates are debounced so widgets do far less work during startup and reconnects (#2379, by @rafaellehmkuhl)
- Monaco editor reuse, Cockpit now reuses a single Monaco instance instead of spinning up many copies (#2380, by @rafaellehmkuhl)
- Vehicle discovery speed, discovered vehicles now appear as they are found, and scans are more resilient to virtual interfaces (#2474, #2636, by @rafaellehmkuhl)
- Build safeguards, CI now fails loudly when native joystick modules are missing, preventing broken binaries (#2521, by @rafaellehmkuhl)
Settings, data-lake, and external features
- Settings V2 migration, settings now sync with timestamps and support user-plus-vehicle scoped storage across reconnects (#2027, by @rafaellehmkuhl)
- Data-lake variables sync, user-created data-lake values and persistent variables now survive syncs and reboots correctly (#2001, #2668, by @rafaellehmkuhl)
- WebSocket ingestion, Cockpit can receive data-lake values over generic WebSocket connections (#2383, by @rafaellehmkuhl)
- Telemetry integration, data-lake variables can now be recorded in telemetry and overlays, and more system details can be reported with telemetry opt-out support (#2406, #2430, #2567, #2568, #2622, by @ArturoManzoli and @rafaellehmkuhl)
- Extension features workflow, suggested actions, joystick mappings, and external widgets got a full review-and-restore flow with clearer dialogs (#1962, #2574, #2584, #2603, #2651, by @rafaellehmkuhl)
- Settings manager update, the manager UI now understands the new backend structure and can browse user/vehicle combinations cleanly (#2412, #2409, by @rafaellehmkuhl)
- RadCam extension support, external widgets and HTTP actions from BlueOS extensions now work more reliably (#2529, #2589, by @rafaellehmkuhl)
Map and mission planning
- Mission control panel, Cockpit now has mission play, pause, stop, skip, and return-home controls (#2240, #2490, by @ArturoManzoli)
- Survey editing, survey polygons can be edited more fully, including turnaround distance, height, entry/exit handling, and vertex coordinate edits (#2319, #2508, #2536, #2541, by @ArturoManzoli and @rafaellehmkuhl)
- Waypoint workflow, view reordering, adaptive waypoint sizing, and reached-waypoint highlighting make missions easier to follow (#2343, #2349, #2499, by @ArturoManzoli)
- Map persistence, missions, POIs, vehicle track history, and selected map state now survive mode switches and reconnects much better (#2261, #2403, #2469, #2482, #2541, by @ArturoManzoli and @rafaellehmkuhl)
- Map navigation, you can jump between flight mode and mission planning more easily and center the map on mission content or POIs (#2294, #2400, #2611, #2644, by @ArturoManzoli)
- Tile and marker fixes, map tiles no longer go white as often, OSM tiles load correctly again, and marker layering/background issues were fixed (#2606, #2626, #2484, #2493, by @ArturoManzoli and @rafaellehmkuhl)
Widgets
- Battery status colors, the battery indicator now reflects voltage levels more clearly and has better configuration controls (#2273, #2372, #2492, by @ArturoManzoli and @ES-Alexander)
- Alerter improvements, warning alerts are highlighted, lock state persists, and the panel behaves better in tight layouts (#2483, #2464, by @rafaellehmkuhl)
- Compass HUD POIs, the compass widget can now show POI direction and distance, with a steadier distance card (#2401, #2432, by @ArturoManzoli)
- Plotter upgrades, the plotter gained fixed Y bounds, extra stats, better configuration UI, and better handling of repeated values (#2347, #2348, #2377, #2451, by @rafaellehmkuhl)
- Iframe widget fixes, collapsible iframe widgets now drag, resize, and expand more reliably, including when placed near screen edges (#2560, #2561, #2575, by @rafaellehmkuhl)
UI and platform fixes
- Disconnected state clarity, Cockpit now keeps the disconnection warning visible and makes arm/disarm status clearer when the vehicle drops offline (#1817, #2616, #2620, #2621, by @rafaellehmkuhl)
- Splash and startup polish, the loading and splash screens were cleaned up for better proportions and less visual glitching (#2322, #2350, #2467, #2513, by @ArturoManzoli)
- Mac and Linux fixes, the macOS app icon was corrected and AppImage builds now come out executable by default (#2325, #2392, by @rafaellehmkuhl)
- Edit-mode improvements, dragging, layout overflow, and hidden controls in edit mode were fixed across widgets and menus (#2378, #2388, #2498, #2565, by @ArturoManzoli and @rafaellehmkuhl)
- Dialog and menu cleanup, several configuration dialogs now size and align correctly, including video, joystick, and profile screens (#2382, #2461, #2489, #2588, by @rafaellehmkuhl and @ArturoManzoli)
- Touch and low-power behavior, Steam Deck and low-power/Electron behavior were improved to keep the app responsive on constrained devices (#2328, #2354, #2566, by @ArturoManzoli and @rafaellehmkuhl)
Documentation and tooling
- README updates, setup, support, and platform notes were clarified, including submodules, xattr, and DeepWiki references (#2285, #2353, #2387, #2423, #2549, #2557, by @ES-Alexander and @rafaellehmkuhl)
- CI and release tooling, build and review automation got several improvements, including PR-version labeling, higher Node heap limits, and Claude-based PR review support (#2284, #2454, #2592, #2601, #2604, #2605, by @rafaellehmkuhl)
- AGENTS.md guidance, the agent instructions file was introduced and refined to preserve comments and avoid problematic edits (#2390, #2410, #2515, by @rafaellehmkuhl and @ES-Alexander)
- Asset size reduction, large PNG and GIF assets were compressed to speed up startup and reduce package size (#2472, by @rafaellehmkuhl)
Full changelog: v1.17.0...v1.18.0-beta.19