Modules are now installable plugins
They no longer ship with companion, you can either import an offline module bundle, or install them within companion from the store.
This allows them to be updated independently
Support for the legacy xkeys layouts has been removed.
The new layouts have been the default behaviour since 3.2, and accurately reflect the real layout instead of trying to squeeze the layout into multiple 32 button pages.
π£ CORE FEATURES AND IMPROVEMENTS
Modules are now installable plugins, allowing them to be updated independently
Add Logic: if statement action
Improved internal: abort actions, to give more granular control of what to abort
Restructure app navigation
Refinement of getting-started guide, to better handle scrolling
Remove support for legacy xkeys layouts
Allow custom variables descriptions to be edited
Allow editing custom variable value as object
Indicate type of each variable
Handle body data in HTTP api setting custom variable
Support for Mirabox Stream Dock 293V3 and N4
Reimplement support for Contour Shuttle
Support Resolve Replay Editor
Support latest streamdeck models & network dock
Allow remote surfaces to be disabled
Allow specifying id of new emulators and surface groups
Support granular permissions for modules (internal functionality, not exposed in the ui)
Extend satellite api, to allow clients to handle display of locked state
π BUG FIXES
Limit ui session lockout duration, to avoid browser crash
Support HTTP_PROXY environment variables for module store api calls
macOS must be at least 11 to run Companion. This is due to nodejs dropping support for older versions.
π£ CORE FEATURES AND IMPROVEMENTS
Support more than 99 pages.
New configs will default to a single page.
Pages can be reordered
Modernise action advancement
Per delay action has been removed and replaced with a new 'Wait' action.
A new 'action group' action exists, which can contain other actions. This allows finer control over action execution and order
DB file is now written with SQLite. This will make it more resilient to crashes, improves performance when saving and avoids issues with the db being too big
Custom variables are renamed from $(internal:custom_test) to $(custom:test). The old names still work, but will be removed in a future version
Support VEC footpedal as a surface
Check connection Stream Deck Studio devices for available firmware updates
Expanded keymap for emulators
Connection labels can be edited while connections are disabled
Add $(internal:uptime) variable
Performance improvements for variables
Performance improvements for button drawing
Option to dismiss 'resize grid to surfaces' prompt
Allow import and export to be done in YAML
Filename of exports can be customised
Command line option to disable admin ui password
Add one time event trigger
Support satellite over websockets
Connection of actions and feedbacks can be changed
Improve module status clarity
Improve custom variables collapsed view
Support HTTP GET for module variables
Backend code refactoring to make Companion more robust
Modules can now be built with node22
Polish getting started docs
Add Whats new modal and sidebar link
π BUG FIXES
TCP protocols not disconnecting clients when disabling server
Allow some missing expression operators
TCP/UDP api not accepting button text or custom variables containing slashes
Surface rotation not being considered when checking if a surface overflows the grid bounds
Indicate when internal variable input fields have an invalid value