v0.18.0
Immutable
release. Only release title and notes can be modified.
What’s changed
🚨 Breaking changes
✨ New features
- Add trace on/off check command @lmagyar (#179)
- Allow child bashio processes to access the parent LOG_FD variable @PaulSD (#174)
- Implement network update API for enabled, ipv4 and ipv6 @lmagyar (#189)
- Add missing bashio::addon.ingress_panel() function @lmagyar (#185)
- Improve handling of errexit option @lmagyar (#192)
- Add bashio::var.json_array() function @lmagyar (#194)
- New function to redirect the $LOG_FD fd to a changed STDOUT @lmagyar (#178)
- Implement the Jobs API @lmagyar (#188)
- Implement the Backups API @lmagyar (#195)
- Implement setter functionality for addon.options(), addon.network() and addon.port() @lmagyar (#207)
- Add bashio::fs.file_non_empty() function @lmagyar (#209)
- Implement missing functions for the Supervisor API @lmagyar (#205)
- Add a Bats test suite with coverage reporting @frenck (#215)
- Add lib/resolution.sh covering the Supervisor resolution API @frenck (#268)
- Add lib/auth.sh covering the Supervisor auth API @frenck (#273)
- Add lib/mounts.sh covering the Supervisor mounts API @frenck (#270)
- Add lib/ingress.sh covering the Supervisor ingress API @frenck (#269)
- Add lib/security.sh covering the Supervisor security API @frenck (#272)
- Add bashio::dns.options to set DNS plugin options @frenck (#278)
- Add bashio::hardware.audio fetcher @frenck (#280)
- Add bashio::jobs.options to set job manager options @frenck (#279)
- Add OS swap, data disk and boot-slot helpers @frenck (#284)
- Add Home Assistant Green/Yellow board LED helpers @frenck (#285)
🐛 Bug fixes
- Fix fs.device_exists() function @gblach (#180)
- Allow child bashio processes to access the parent LOG_FD variable @PaulSD (#174)
- Avoid caching when JQ filter call fails @lmagyar (#191)
- Fix bashio::repositories() and bashio::addons() due to Supervisor API changes @lmagyar (#187)
- Fix empty argument handling for addon setter functions @lmagyar (#206)
- Fix raw argument handling in Supervisor API call @lmagyar (#190)
- Fix supervisor.timezone and supervisor.country setters @frenck (#217)
- Fix jq helpers when the optional filter is omitted @frenck (#218)
- Fix config options leak, editorconfig typo, and bug-report label @frenck (#219)
- Make bashio::string.replace replace the needle literally @frenck (#220)
- Make Supervisor API setters propagate failures @frenck (#221)
- Source the observer module in bashio.sh @frenck (#222)
- Do not log the full password hash in bashio::pwned @frenck (#223)
- Stop logging the plaintext password in bashio::pwned @frenck (#224)
- Pass the Supervisor token to curl via stdin, not argv @frenck (#226)
- Prevent JSON injection in add-on option values @frenck (#227)
- Keep the Supervisor request body off argv and out of the logs @frenck (#228)
- Harden the cache directory permissions and JSON key escaping @frenck (#229)
- Expand addons test coverage and fix the misnamed stats dispatch @frenck (#256)
- Propagate API failures from cache-flushing action helpers @frenck (#257)
- Validate cache keys to prevent path traversal @frenck (#261)
- Fix audio.update propagation and harden option setters against JSON injection @frenck (#274)
- Stop fetchers from overwriting the base info blob with a filtered result @frenck (#275)
🚀 Enhancements
- Fix grammar in code comments @lmagyar (#202)
- Make trace message formatting consistent @lmagyar (#203)
- Harden argument handling for addon.update() .documentation() and .changelog() @lmagyar (#201)
- Rename the addon namespace to app, keep deprecated aliases @frenck (#260)
- Add lib/docker.sh covering the Supervisor docker API @frenck (#271)
- Add lib/updates.sh covering the Supervisor update endpoints @frenck (#282)
- Add bashio::host.services and bashio::host.disk_usage fetchers @frenck (#281)
- Add PulseAudio control helpers to lib/audio.sh @frenck (#283)
- Strengthen Bats coverage for cache behavior, normalization safety, and naming consistency @copilot-swe-agent[bot] (#286)
🧰 Maintenance
- Modernize repository tooling and adopt the Home Assistant Apps terminology @frenck (#214)
- Expand the Bats test suite @frenck (#216)
- Documentation and configuration hygiene @frenck (#225)
- Add test coverage for lib/log.sh @frenck (#231)
- Add test coverage for lib/exit.sh @frenck (#232)
- Expand test coverage for lib/pwned.sh @frenck (#233)
- Expand test coverage for lib/audio.sh @frenck (#242)
- Expand test coverage for lib/multicast.sh @frenck (#243)
- Expand test coverage for lib/network.sh @frenck (#245)
- Expand test coverage for lib/dns.sh @frenck (#244)
- Expand test coverage for lib/host.sh @frenck (#246)
- Expand test coverage for lib/os.sh @frenck (#247)
- Expand test coverage for lib/cli.sh @frenck (#248)
- Expand test coverage for lib/repositories.sh @frenck (#249)
- Expand test coverage for lib/observer.sh @frenck (#253)
- Add test coverage for lib/color.sh @frenck (#234)
- Add test coverage for lib/trace.sh @frenck (#236)
- Add test coverage for lib/debug.sh @frenck (#235)
- Expand test coverage for lib/core.sh @frenck (#252)
- Add test coverage for lib/info.sh @frenck (#238)
- Expand test coverage for lib/jobs.sh @frenck (#251)
- Expand test coverage for lib/backups.sh @frenck (#250)
- Add test coverage for lib/net.sh @frenck (#237)
- Add test coverage for lib/hardware.sh @frenck (#239)
- Add test coverage for lib/discovery.sh @frenck (#241)
- Add test coverage for lib/services.sh @frenck (#240)
- Expand addons test coverage and fix the misnamed stats dispatch @frenck (#256)
- Expand test coverage for lib/supervisor.sh @frenck (#255)
- Expand test coverage for lib/config.sh @frenck (#254)
- Propagate API failures from cache-flushing action helpers @frenck (#257)
- Add test coverage for lib/try.sh @frenck (#258)
- Cover untested error branches and functions @frenck (#259)
- Add missing failure-propagation tests and normalise core.update style @copilot-swe-agent[bot] (#262)
- Add stderr assertions to trace output tests @copilot-swe-agent[bot] (#265)
- Add a DevContainer with the CI toolchain @frenck (#267)
- Strengthen weak test assertions (pwned boundary, filtered arrays, var) @frenck (#276)
- Tidy consistency and documentation rough edges @frenck (#277)
📚 Documentation
- Fix inaccurate docstrings across the library @frenck (#230)
- Document the addon to app rename and deprecation @frenck (#266)
⬆️ Dependency updates
14 changes
- Bump actions/checkout from 5 to 6 @dependabot[bot] (#181)
- Bump dessant/lock-threads from 5.0.1 to 6.0.0 @dependabot[bot] (#182)
- Bump release-drafter/release-drafter from 6.1.0 to 6.1.1 @dependabot[bot] (#183)
- Bump release-drafter/release-drafter from 6.1.1 to 6.2.0 @dependabot[bot] (#184)
- Bump release-drafter/release-drafter from 6.2.0 to 6.4.0 @dependabot[bot] (#196)
- Bump release-drafter/release-drafter from 6.4.0 to 7.0.0 @dependabot[bot] (#197)
- Bump release-drafter/release-drafter from 7.0.0 to 7.1.1 @dependabot[bot] (#199)
- Bump release-drafter/release-drafter from 7.1.1 to 7.2.0 @dependabot[bot] (#200)
- Bump ludeeus/action-shellcheck from 1.1.0 to 2.0.0 @dependabot[bot] (#204)
- Bump release-drafter/release-drafter from 7.2.0 to 7.2.1 @dependabot[bot] (#208)
- Bump release-drafter/release-drafter from 7.2.1 to 7.3.0 @dependabot[bot] (#210)
- Bump dessant/lock-threads from 6.0.0 to 6.0.1 @dependabot[bot] (#211)
- Bump dessant/lock-threads from 6.0.1 to 6.0.2 @dependabot[bot] (#212)
- Bump release-drafter/release-drafter from 7.3.0 to 7.3.1 @dependabot[bot] (#213)