## v26.26.0 (19.06.2026)

### Fixes

- Fix service interrupt dashboard button
- General bugfixes

### Features

- Add USB passthrough support for service containers
- Add default Run ID configuration for the shared service
- Add a validated config view command
- Notify users of available Juice updates in the dashboard
- Add a community button to the dashboard resources panel
- Add utility to view currently active pub/sub topics

### Documentation

- Minor corrections and fixes
- Add a testing contributors guide

### Full release notes

- feat(orchestration): add usb_passthrough option for service containers([!409](https://gitlab.com/orangeqs/juice/-/merge_requests/409))
- chore(reporting): use importlib to load themes and assets([!410](https://gitlab.com/orangeqs/juice/-/merge_requests/410))
- fix(orchestration): allow IPythonService subclasses as proxy entrypoints([!413](https://gitlab.com/orangeqs/juice/-/merge_requests/413))
- feat(orchestration): add default Run ID configuration for shared service([!414](https://gitlab.com/orangeqs/juice/-/merge_requests/414))
- fix(tests): mock system config path and skip pandoc tests when unavailable([!415](https://gitlab.com/orangeqs/juice/-/merge_requests/415))
- docs: minor corrections and fixes([!386](https://gitlab.com/orangeqs/juice/-/merge_requests/386))
- refactor(settings): strictly load orchestration settings only from system config directory([!412](https://gitlab.com/orangeqs/juice/-/merge_requests/412))
- fix(deps): unpin param and panel([!411](https://gitlab.com/orangeqs/juice/-/merge_requests/411))
- feat(config): add validated config view command([!397](https://gitlab.com/orangeqs/juice/-/merge_requests/397))
- feat(dashboard): notify users of available juice updates([!394](https://gitlab.com/orangeqs/juice/-/merge_requests/394))
- fix(dashboard): wait for interrupt_reply before closing ZMQ control channel([!408](https://gitlab.com/orangeqs/juice/-/merge_requests/408))
- feat(dashboard): add community button to resources([!406](https://gitlab.com/orangeqs/juice/-/merge_requests/406))
- feat(task-manager): track published pub/sub topics and expose via API (#329)([!395](https://gitlab.com/orangeqs/juice/-/merge_requests/395))
- fix(devcontainer): restart telegraf on container start to fix login1 race([!407](https://gitlab.com/orangeqs/juice/-/merge_requests/407))
- fix(task-manager): ensure service starts correctly by calling super().start()([!403](https://gitlab.com/orangeqs/juice/-/merge_requests/403))
- docs(contribute): add testing contributors guide([!405](https://gitlab.com/orangeqs/juice/-/merge_requests/405))
- ci(test): add test stage to release pipelines([!404](https://gitlab.com/orangeqs/juice/-/merge_requests/404))