## v26.38.0 (16.09.2026)

### Fixes

- Fixed the dashboard temperature widget undersampling data on long time ranges with sparse readings.
- Fixed a pub/sub socket leak that could exhaust file descriptors over time.
- Fixed a kernel shutdown deadlock that could hang a service.
- General bugfixes (removed periodic auto-refresh from the Service Logs widget, ensured user data shared folders are created, centralized dashboard page titles so extensions can't clash, addressed review feedback on the Getting Started pop-up).

### Features

- Added a chrome-free embeddable architecture diagram page.

### Documentation

### Full release notes

- refactor: simplify coroutine module and name retrieval in log_exception_callback([!509](https://gitlab.com/orangeqs/juice/-/merge_requests/509))
- fix(dashboard): fix temperature widget undersampling on long ranges over sparse data([!508](https://gitlab.com/orangeqs/juice/-/merge_requests/508))
- chore: release 26.37.0([!506](https://gitlab.com/orangeqs/juice/-/merge_requests/506))
- fix(dashboard): remove periodic auto-refresh from Service Logs widget([!505](https://gitlab.com/orangeqs/juice/-/merge_requests/505))
- fix(messaging): release pub/sub sockets to stop fd exhaustion (#409)([!503](https://gitlab.com/orangeqs/juice/-/merge_requests/503))
- fix(data): ensure user data shared folders are created([!501](https://gitlab.com/orangeqs/juice/-/merge_requests/501))
- fix(ipython): prevent kernel shutdown deadlock from hanging the service([!496](https://gitlab.com/orangeqs/juice/-/merge_requests/496))
- feat(docs): add chrome-free embeddable architecture diagram page([!497](https://gitlab.com/orangeqs/juice/-/merge_requests/497))
- fix(dashboard): set page titles centrally so extensions can't clash (#411)([!498](https://gitlab.com/orangeqs/juice/-/merge_requests/498))
- fix(dashboard): address review feedback on Getting Started pop-up (!491)([!495](https://gitlab.com/orangeqs/juice/-/merge_requests/495))