What's Changed
- feat(network): add Tailscale status to Settings > Network by @agh in #1276
- fix(e2e): re-read caps_lock LED state each retry iteration by @adamshiervani in #1319
- fix: update stale Debian 13 and Ubuntu 24.04 ISO URLs by @adamshiervani in #1317
- MQTT Support / Home Assistant Integration by @PH89 in #1195
- feat(remote): add support for custom tailscale control servers by @dotWee in #1312
- refactor: move tailscale logic into internal/tailscale package by @adamshiervani in #1318
- feat(e2e): add OTA upgrade-from-stable test by @adamshiervani in #1324
- fix(ota): return only the matched entity from parseAndValidateKeyring by @agh in #1316
- test(ota): add GPG signing subkey verification tests by @adamshiervani in #1325
- feat(build): add podman support for dev deploy scripts by @tvinhas in #1303
- ci: redesign workflows into lint + build by @adamshiervani in #1330
- fix: gate public IP check behind cloud adoption status by @adamshiervani in #1328
- chore(ui): add husky and lint-staged for pre-commit linting by @adamshiervani in #1335
- fix: replace hardcoded English strings with i18n message functions (#1162) by @adamshiervani in #1322
- fix: prevent cursor jumping to top-left on window blur (#392) by @adamshiervani in #1359
- feat: add horizontal mouse wheel scrolling support (#415) by @adamshiervani in #1358
- feat: add 4th and 5th button support for absolute mouse (#416) by @adamshiervani in #1357
- fix: add settling delay when waking HDMI capture chip from sleep (#519) by @adamshiervani in #1356
- feat: add factory reset to replace config-only reset (#529) by @adamshiervani in #1355
- fix: reset HID file handles after disk-mode virtual media mount (#560) by @adamshiervani in #1349
- feat(ui): add toggles to hide header and status bars (#1333) by @adamshiervani in #1343
- feat: add Portuguese (pt-PT) keyboard layout (#697) by @adamshiervani in #1337
- fix: replace default EDID with JetKVM v1 EDID by @adamshiervani in #1341
- fix(video): align VENC virtual width/height to 16 bytes for non-standard resolutions (#699) by @adamshiervani in #1347
- feat: add Polish (Polski) keyboard layout for paste support (#566) by @adamshiervani in #1348
- fix: modifier key auto-release and keyboard reset on disconnect (#641) by @adamshiervani in #1339
- feat: add USB CDC-ACM serial console gadget (#726) by @adamshiervani in #1352
- chore(ui): migrate to Vite 8, oxlint, and oxfmt by @adamshiervani in #1362
- feat: add custom broadcast IP option to Wake-on-LAN (#1238) by @adamshiervani in #1345
- fix: USB HID startup recovery, unreliable channel fallback, and e2e test stability by @adamshiervani in #1364
- fix(i18n): improve translation quality across all 13 languages by @adamshiervani in #1365
- fix: swap menu screen padding on display rotation (#637) by @adamshiervani in #1354
- chore(ui): remove vite-tsconfig-paths plugin by @adamshiervani in #1367
- feat: add scroll direction setting for macOS Natural Scrolling (#640) by @adamshiervani in #1340
- fix: reset USB gadget when virtual media unmount fails with EBUSY by @adamshiervani in #1331
- fix: recover HID chardev after DWC3 rebind race on RV1106 by @adamshiervani in #1366
- test: add keyboard keepalive and auto-release e2e tests by @adamshiervani in #1346
- fix: remove goroutine from HID message handler to prevent leak and disconnect race by @adamshiervani in #1336
- feat: add hide/show text toggle to paste modal (#694) by @adamshiervani in #1353
- fix(video): scale stream to fill available viewport by @agh in #1281
- fix: send mouse button state changes via reliable WebRTC channel (#695) by @adamshiervani in #1338
- fix: add hold-to-force-off hint for ATX Power button by @adamshiervani in #1327
- fix(e2e): kill remote-agent before scp to avoid ETXTBSY by @adamshiervani in #1368
- feat(usb): enable remote wakeup for HID devices by @jlian in #1235
- fix(keyboard): serialise keyboard state mutations to eliminate race by @adamshiervani in #1369
- feat(network): add custom NTP/HTTP time sync configuration UI by @agh in #1289
- test(timesync): add e2e tests for custom NTP configuration by @adamshiervani in #1370
- fix(ui): sync default EDID with updated backend value by @adamshiervani in #1374
- test(ota): add e2e test for upgrading to a signed release by @adamshiervani in #1373
- feat(video): add H.265 codec support with auto-negotiation by @adamshiervani in #1371
- feat(video): tune encoder for better quality and faster recovery by @adamshiervani in #1372
- fix(ui): fix virtual keyboard crash after Vite 8 upgrade by @adamshiervani in #1375
- fix(test): fix e2e flakiness from RPC timeouts and stale session dialogs by @adamshiervani in #1376
- fix(test): fix e2e flakiness from HDMI signal not detected during beforeAll by @adamshiervani in #1377
- feat(ui): replace detach mode with embed mode by @adamshiervani in #1378
- fix(ui): hide H.265 codec option when browser doesn't support it by @adamshiervani in #1380
- fix(ui): reconcile codec preference against available options by @adamshiervani in #1381
- fix(test): fix e2e flakiness from hook timeouts, EDID drops, and USB recovery by @adamshiervani in #1382
New Contributors
Full Changelog: release/0.5.5-dev202603170942...release/0.5.5-dev202603301741