What's Changed
🔐 Security
- Update System.Security.Cryptography.Pkcs to 10.0.13 by @manuelmayer-dev in #1368
🔌 New Integrations
- Add a Steam integration with a game launcher and a currently playing widget by @manuelmayer-dev in #1299
- Add email inboxes with a built-in IMAP integration and an inbox widget by @manuelmayer-dev in #1317
🎉 Exciting New Features
- Let plugins translate native key codes into key names by @manuelmayer-dev in #1289
- Let plugins show toasts and dialogs on every client by @manuelmayer-dev in #1290
- Add Steam friends and library widgets, favorites, events and game closing by @manuelmayer-dev in #1302
- Serve integration widgets through the Plugin SDK by @manuelmayer-dev in #1303
- Let plugins offer searchable choice fields by @manuelmayer-dev in #1314
- Add a compact style to the Weather widget by @manuelmayer-dev in #1320
- Let built-in integrations use only the Plugin SDK by @manuelmayer-dev in #1322
- Let the widget type picker sort by a fixed order, name or type by @manuelmayer-dev in #1350
- Support variable templates in the Developer Tools tester by @manuelmayer-dev in #1354
🚀 Improvements
- Let users mute audio devices by setting their mute variables by @manuelmayer-dev in #1296
- Add Donate and Companion App links to the onboarding by @manuelmayer-dev in #1313
- Run the variables conformance checks for plugins that declare no variables by @manuelmayer-dev in #1329
- Show the arrow cursor on controls and the hand only on links and cards by @manuelmayer-dev in #1361
🐞 Bug Fixes
- Keep keyboard keys consistent across recording, keyboard layouts and triggers by @manuelmayer-dev in #1287
- Keep the Visual editor usable for widgets with many actions by @manuelmayer-dev in #1288
- Keep the Weather widget in sync with the weather variables by @manuelmayer-dev in #1309
- Let plugins write variables they add after connecting by @manuelmayer-dev in #1315
- Offer variable catalogs of plugins that declare no variables by @manuelmayer-dev in #1321
- Show why a variable value could not be written in the variables manager by @manuelmayer-dev in #1323
- Name the unavailable integration when a variable write is refused by @manuelmayer-dev in #1327
- Name the unavailable integration in Set Variable action errors by @manuelmayer-dev in #1331
- Fix conformance check MDC0604 failing on Windows when a plugin is still sending by @manuelmayer-dev in #1334
- Complete the close handshake in the plugin test host on a failed hello or a plugin close by @manuelmayer-dev in #1340
- Make the plugin test host answer oversized messages and empty hellos like Macro Deck by @manuelmayer-dev in #1345
- Complete the WebSocket close handshake when a plugin closes or its handshake times out by @manuelmayer-dev in #1346
- Keep settings controls clear of overlay scrollbars by @manuelmayer-dev in #1347
- Complete the WebSocket close handshake when a UI client closes by @manuelmayer-dev in #1348
- Fix saving a button after switching its state mapping to an action's states by @manuelmayer-dev in #1364
- Fix store description tables squeezing a column to one letter per line by @manuelmayer-dev in #1369
- Prevent icons from briefly zooming when an Action Button changes state by @manuelmayer-dev in #1370
📚 Documentation
- Document the Companion App first start and trial by @manuelmayer-dev in #1312
- Explain the message the Companion App shows after a failed press by @manuelmayer-dev in #1339
- Describe the lifetime Companion App license by @manuelmayer-dev in #1341
- Describe host messages in the Companion App by @manuelmayer-dev in #1342
🛠️ Other Changes
- Say that Companion diagnostics include the last crash by @manuelmayer-dev in #1343
- Stop Chrome's helper processes before removing the measurement profile by @manuelmayer-dev in #1344
- Pin the CI .NET SDK so the bundled runtime resolves on .NET patch days by @manuelmayer-dev in #1352
- Recognise script actions by role and re-push desktop notification support on shell changes by @manuelmayer-dev in #1355
- Keep the Companion device access policy usable while the host shuts down by @manuelmayer-dev in #1372
Full Changelog: v3.0.0-beta.16...v3.0.0-beta.17