## What's New
**TL;DR:** Home Assistant integration expands smart home capabilities. Refreshed Weather app and new features for app developers.
### New features
- **Home Assistant integration:** BUSY Bar now integrates with Home Assistant, giving you more control over your device. Switch statuses, adjust settings, display custom content, and play sounds directly from your smart home setup.
- **Weather app:** Redesigned forecast screens. The clock now shows the local time in the selected city's timezone.
- **Universal app settings:** All BUSY Bar apps now use the same settings menu. Some settings can only be edited in the web interface.
### Improvements
- **Apps:** The loading screen no longer flashes when exiting an app. BUSY Bar now displays an "Out of memory" message if an app runs out of memory.
- **Display & UI:** Fixed the brightness level shown after switching from Auto to Manual. The shutdown dialog now selects Cancel by default.
**Matter:** Pairing and unpairing a Matter controller now updates the device state immediately.
### For developers
- **Per-app storage:** Each JavaScript app now has its own storage.
- **JavaScript runtime:** `fetch` now validates and encodes URLs and normalizes HTTP method names. Promise errors are now proper error objects (such as `TypeError`) instead of strings. Added `console.warn` and fixed several response body and stream handling bugs.
- **JS REPL:** Fixed Backspace handling — it works now.
- **Other:** More detailed error logs, updated OpenAPI documentation, and build improvements.
**Full Changelog:**[ https://github.com/busy-app/busybar-firmware/compare/1.3.1...1.4.0-rc](https://github.com/busy-app/busybar-firmware/compare/1.3.1...1.4.1-rc)
## What's Changed
* [FW-1252] Brightness value mismatch fix by @RebornedBrain in https://github.com/busy-app/busybar-firmware/pull/1118
* [DEVOPS-744] use rclone to sync docs to s3 bucket by @ru-asdx in https://github.com/busy-app/busybar-firmware/pull/1116
* [FW-1234] Various JS fixes by @imihajlow in https://github.com/busy-app/busybar-firmware/pull/1117
* [FW-1260] Disable canvas Back key handling when a JS app is active by @imihajlow in https://github.com/busy-app/busybar-firmware/pull/1121
* [FW-1239] More informative logs by @RebornedBrain in https://github.com/busy-app/busybar-firmware/pull/1123
* ci: upload files to update-indexer-dev one by one by @an5t in https://github.com/busy-app/busybar-firmware/pull/1122
* [FW-1243] URL encoding, JsFetch refactoring by @gsurkov in https://github.com/busy-app/busybar-firmware/pull/1124
* [FW-1010] Shut Down Device — Make Cancel Selected By Default by @vanyww in https://github.com/busy-app/busybar-firmware/pull/1131
* [FW-1269] Do not fetch JS app versions all the time by @gsurkov in https://github.com/busy-app/busybar-firmware/pull/1132
* [FW-1177] Fix Backspace key in JS REPL by @gsurkov in https://github.com/busy-app/busybar-firmware/pull/1136
* [FRONT-458] smart home new layout by @viirtualp1 in https://github.com/busy-app/busybar-firmware/pull/1100
* gh: copilot && review improvements by @hedger in https://github.com/busy-app/busybar-firmware/pull/1138
* [FW-1219] JS storage API by @imihajlow in https://github.com/busy-app/busybar-firmware/pull/1135
* [FW-1272] Remove duplicated OpenAPI entries by @gsurkov in https://github.com/busy-app/busybar-firmware/pull/1139
* [FW-1190] Universal Menu Widget by @vanyww in https://github.com/busy-app/busybar-firmware/pull/1105
* [FW-1267, FW-1265] JS Application Setup Rework by @vanyww in https://github.com/busy-app/busybar-firmware/pull/1128
* [FW-1253] Update JS heap overflow message by @imihajlow in https://github.com/busy-app/busybar-firmware/pull/1140
* [FW-1264] Apps: bump Weather to 0.7.1 by @vitaliiermolaev in https://github.com/busy-app/busybar-firmware/pull/1145
* Test: integrate firmware runs with TestOps by @iMalkav in https://github.com/busy-app/busybar-firmware/pull/1144
* [FW-1263] USB Serial Number Descriptor Drops The First Character Of The Hardware UID by @vanyww in https://github.com/busy-app/busybar-firmware/pull/1133
* Build Jerryscript with size optimization by @imihajlow in https://github.com/busy-app/busybar-firmware/pull/1150
* [FW-1194] Matter: publish a pubsub event when fabric count changes by @imihajlow in https://github.com/busy-app/busybar-firmware/pull/1143
* JS: use jerry_error_sz to create error objects by @imihajlow in https://github.com/busy-app/busybar-firmware/pull/1147
* fix: smart home layout by @viirtualp1 in https://github.com/busy-app/busybar-firmware/pull/1151
* [FW-1287] Handle HTTP headers with empty value by @imihajlow in https://github.com/busy-app/busybar-firmware/pull/1156
## New Contributors
* @ru-asdx made their first contribution in https://github.com/busy-app/busybar-firmware/pull/1116
* @vitaliiermolaev made their first contribution in https://github.com/busy-app/busybar-firmware/pull/1145
**Full Changelog**: https://github.com/busy-app/busybar-firmware/compare/1.3.1...1.4.1-rc