What's Changed
Enhancements
- Update license copyright year(s) [pr-2d2[bot]](https://github.com/apps/pr-2d2) (#176)
- Add derived device availability state nixxcz (232)
Maintenance
- Update project to Python 3.14 golles (131)
- Project fixes for Python 3.14 golles (145)
- Use setup-app from shared repo golles (146)
- Remove non-existing tasks golles (153)
- Improve setup_env.sh golles (168)
- Update license.yaml golles (169)
Dependency updates
- Lock file maintenance [renovate[bot]](https://github.com/apps/renovate) (#123)
- Update dependency pylint to v3.3.9 [renovate[bot]](https://github.com/apps/renovate) (#122)
- Update Python to >=3.14,<3.15 [renovate[bot]](https://github.com/apps/renovate) (#125)
- Update astral-sh/setup-uv action to v7 [renovate[bot]](https://github.com/apps/renovate) (#126)
- Update dependency ruff to v0.14.0 [renovate[bot]](https://github.com/apps/renovate) (#124)
- Lock file maintenance [renovate[bot]](https://github.com/apps/renovate) (#128)
- Update dependency pylint to v4 [renovate[bot]](https://github.com/apps/renovate) (#127)
- Update actions/setup-node action to v6 [renovate[bot]](https://github.com/apps/renovate) (#129)
- Update dependency pylint to v4.0.1 [renovate[bot]](https://github.com/apps/renovate) (#130)
- Update dependency ruff to v0.14.1 [renovate[bot]](https://github.com/apps/renovate) (#132)
- Lock file maintenance [renovate[bot]](https://github.com/apps/renovate) (#133)
- Update dependency pylint to v4.0.2 [renovate[bot]](https://github.com/apps/renovate) (#134)
- Update dependency ruff to v0.14.2 [renovate[bot]](https://github.com/apps/renovate) (#135)
- Lock file maintenance [renovate[bot]](https://github.com/apps/renovate) (#136)
- Update dependency ruff to v0.14.3 [renovate[bot]](https://github.com/apps/renovate) (#137)
- Lock file maintenance [renovate[bot]](https://github.com/apps/renovate) (#138)
- Update dependency ruff to v0.14.4 [renovate[bot]](https://github.com/apps/renovate) (#139)
- Lock file maintenance [renovate[bot]](https://github.com/apps/renovate) (#142)
- Update dependency pre-commit to v4.4.0 [renovate[bot]](https://github.com/apps/renovate) (#140)
- Update dependency pytest-asyncio to v1.3.0 [renovate[bot]](https://github.com/apps/renovate) (#143)
- Update dependency pytest to v9 [renovate[bot]](https://github.com/apps/renovate) (#141)
- Update dependency pytest to v9.0.1 [renovate[bot]](https://github.com/apps/renovate) (#144)
- Update dependency ruff to v0.14.5 [renovate[bot]](https://github.com/apps/renovate) (#148)
- Update dependency pylint to v4.0.3 [renovate[bot]](https://github.com/apps/renovate) (#147)
- Update actions/checkout action to v6 [renovate[bot]](https://github.com/apps/renovate) (#149)
- Update dependency ruff to v0.14.6 [renovate[bot]](https://github.com/apps/renovate) (#150)
- Update dependency pre-commit to v4.5.0 [renovate[bot]](https://github.com/apps/renovate) (#151)
- Lock file maintenance [renovate[bot]](https://github.com/apps/renovate) (#152)
- Update dependency hatchling to v1.28.0 [renovate[bot]](https://github.com/apps/renovate) (#154)
- Update dependency prettier to v3.7.1 [renovate[bot]](https://github.com/apps/renovate) (#155)
- Update dependency prettier to v3.7.2 [renovate[bot]](https://github.com/apps/renovate) (#156)
- Update dependency mypy to v1.19.0 [renovate[bot]](https://github.com/apps/renovate) (#158)
- Update dependency ruff to v0.14.7 [renovate[bot]](https://github.com/apps/renovate) (#157)
- Update dependency prettier to v3.7.3 [renovate[bot]](https://github.com/apps/renovate) (#159)
- Update dependency pylint to v4.0.4 [renovate[bot]](https://github.com/apps/renovate) (#160)
- Lock file maintenance [renovate[bot]](https://github.com/apps/renovate) (#161)
- Update dependency prettier to v3.7.4 [renovate[bot]](https://github.com/apps/renovate) (#162)
- Update dependency ruff to v0.14.8 [renovate[bot]](https://github.com/apps/renovate) (#163)
- Update dependency pytest to v9.0.2 [renovate[bot]](https://github.com/apps/renovate) (#164)
- Lock file maintenance [renovate[bot]](https://github.com/apps/renovate) (#165)
- Update sonarsource/sonarqube-scan-action action to v7 [renovate[bot]](https://github.com/apps/renovate) (#166)
- Update dependency ruff to v0.14.9 [renovate[bot]](https://github.com/apps/renovate) (#167)
- Lock file maintenance [renovate[bot]](https://github.com/apps/renovate) (#170)
- Update dependency mypy to v1.19.1 [renovate[bot]](https://github.com/apps/renovate) (#171)
- Update dependency pre-commit to v4.5.1 [renovate[bot]](https://github.com/apps/renovate) (#172)
- Update dependency ruff to v0.14.10 [renovate[bot]](https://github.com/apps/renovate) (#173)
- Lock file maintenance [renovate[bot]](https://github.com/apps/renovate) (#174)
- Lock file maintenance [renovate[bot]](https://github.com/apps/renovate) (#175)
- chore(deps): lock file maintenance [renovate[bot]](https://github.com/apps/renovate) (#177)
- chore(deps): update dependency ruff to v0.14.11 [renovate[bot]](https://github.com/apps/renovate) (#178)
- chore(deps): lock file maintenance [renovate[bot]](https://github.com/apps/renovate) (#179)
- chore(deps): update dependency yamllint to v1.38.0 [renovate[bot]](https://github.com/apps/renovate) (#180)
- chore(deps): update dependency prettier to v3.8.0 [renovate[bot]](https://github.com/apps/renovate) (#181)
- chore(deps): update dependency ruff to v0.14.13 [renovate[bot]](https://github.com/apps/renovate) (#182)
- chore(deps): lock file maintenance [renovate[bot]](https://github.com/apps/renovate) (#183)
- chore(deps): update dependency prettier to v3.8.1 [renovate[bot]](https://github.com/apps/renovate) (#184)
- chore(deps): update dependency ruff to v0.14.14 [renovate[bot]](https://github.com/apps/renovate) (#185)
- chore(deps): lock file maintenance [renovate[bot]](https://github.com/apps/renovate) (#186)
- chore(deps): lock file maintenance [renovate[bot]](https://github.com/apps/renovate) (#187)
- chore(deps): lock file maintenance [renovate[bot]](https://github.com/apps/renovate) (#189)
- chore(deps): update dependency ruff to v0.15.0 [renovate[bot]](https://github.com/apps/renovate) (#188)
- chore(deps): update dependency ruff to v0.15.1 [renovate[bot]](https://github.com/apps/renovate) (#190)
- chore(deps): lock file maintenance [renovate[bot]](https://github.com/apps/renovate) (#191)
- chore(deps): update dependency ruff to v0.15.2 [renovate[bot]](https://github.com/apps/renovate) (#192)
- chore(deps): update dependency pylint to v4.0.5 [renovate[bot]](https://github.com/apps/renovate) (#193)
- chore(deps): lock file maintenance [renovate[bot]](https://github.com/apps/renovate) (#194)
- chore(deps): update dependency hatchling to v1.29.0 [renovate[bot]](https://github.com/apps/renovate) (#195)
- chore(deps): update dependency ruff to v0.15.4 [renovate[bot]](https://github.com/apps/renovate) (#196)
- chore(deps): lock file maintenance [renovate[bot]](https://github.com/apps/renovate) (#197)
- chore(deps): update dependency ruff to v0.15.5 [renovate[bot]](https://github.com/apps/renovate) (#198)
- chore(deps): lock file maintenance [renovate[bot]](https://github.com/apps/renovate) (#199)
- chore(deps): update dependency ruff to v0.15.6 [renovate[bot]](https://github.com/apps/renovate) (#200)
- chore(deps): update actions/create-github-app-token action to v3 [renovate[bot]](https://github.com/apps/renovate) (#201)
- chore(deps): update release-drafter/release-drafter action to v7 [renovate[bot]](https://github.com/apps/renovate) (#202)
- chore(deps): lock file maintenance [renovate[bot]](https://github.com/apps/renovate) (#203)
- chore(deps): update dependency ruff to v0.15.7 [renovate[bot]](https://github.com/apps/renovate) (#204)
- chore(deps): update dependency pytest-cov to v7.1.0 [renovate[bot]](https://github.com/apps/renovate) (#205)
- chore(deps): lock file maintenance [renovate[bot]](https://github.com/apps/renovate) (#206)
- chore(deps): update codecov/codecov-action action to v6 [renovate[bot]](https://github.com/apps/renovate) (#208)
- chore(deps): update dependency ruff to v0.15.8 [renovate[bot]](https://github.com/apps/renovate) (#207)
- chore(deps): lock file maintenance [renovate[bot]](https://github.com/apps/renovate) (#209)
- chore(deps): update dependency mypy to v1.20.0 [renovate[bot]](https://github.com/apps/renovate) (#210)
- chore(deps): update dependency ruff to v0.15.9 [renovate[bot]](https://github.com/apps/renovate) (#211)
- chore(deps): lock file maintenance [renovate[bot]](https://github.com/apps/renovate) (#212)
- chore(deps): update dependency pytest to v9.0.3 [renovate[bot]](https://github.com/apps/renovate) (#213)
- chore(deps): update dependency ruff to v0.15.10 [renovate[bot]](https://github.com/apps/renovate) (#214)
- chore(deps): update actions/github-script action to v9 [renovate[bot]](https://github.com/apps/renovate) (#215)
- chore(deps): update dependency prettier to v3.8.2 [renovate[bot]](https://github.com/apps/renovate) (#216)
- chore(deps): update softprops/action-gh-release action to v3 [renovate[bot]](https://github.com/apps/renovate) (#217)
- chore(deps): lock file maintenance [renovate[bot]](https://github.com/apps/renovate) (#218)
- chore(deps): update dependency mypy to v1.20.1 [renovate[bot]](https://github.com/apps/renovate) (#219)
- chore(deps): update dependency prettier to v3.8.3 [renovate[bot]](https://github.com/apps/renovate) (#220)
- chore(deps): update dependency ruff to v0.15.11 [renovate[bot]](https://github.com/apps/renovate) (#221)
- chore(deps): lock file maintenance [renovate[bot]](https://github.com/apps/renovate) (#222)
- chore(deps): update dependency mypy to v1.20.2 [renovate[bot]](https://github.com/apps/renovate) (#224)
- chore(deps): pin actions/dependency-review-action action to v4.9.0 [renovate[bot]](https://github.com/apps/renovate) (#223)
- chore(deps): update dependency pre-commit to v4.6.0 [renovate[bot]](https://github.com/apps/renovate) (#225)
- chore(deps): update astral-sh/setup-uv action to v8 [renovate[bot]](https://github.com/apps/renovate) (#226)
- chore(deps): update dependency ruff to v0.15.12 [renovate[bot]](https://github.com/apps/renovate) (#227)
- chore(deps): lock file maintenance [renovate[bot]](https://github.com/apps/renovate) (#228)
- chore(deps): update sonarsource/sonarqube-scan-action action to v8 [renovate[bot]](https://github.com/apps/renovate) (#229)
- chore(deps): lock file maintenance [renovate[bot]](https://github.com/apps/renovate) (#230)
- chore(deps): update dependency mypy to v2 [renovate[bot]](https://github.com/apps/renovate) (#231)
- chore(deps): update actions/dependency-review-action action to v5 [renovate[bot]](https://github.com/apps/renovate) (#233)
- chore(deps): lock file maintenance [renovate[bot]](https://github.com/apps/renovate) (#234)
- chore(deps): update dependency mypy to v2.1.0 [renovate[bot]](https://github.com/apps/renovate) (#235)
- chore(deps): lock file maintenance [renovate[bot]](https://github.com/apps/renovate) (#237)
- chore(deps): update dependency ruff to v0.15.13 [renovate[bot]](https://github.com/apps/renovate) (#236)
- chore(deps): update dependency ruff to v0.15.14 [renovate[bot]](https://github.com/apps/renovate) (#238)
- chore(deps): lock file maintenance [renovate[bot]](https://github.com/apps/renovate) (#239)
- chore(deps): update dependency pytest-asyncio to v1.4.0 [renovate[bot]](https://github.com/apps/renovate) (#240)
- chore(deps): update dependency ruff to v0.15.15 [renovate[bot]](https://github.com/apps/renovate) (#241)
- chore(deps): lock file maintenance [renovate[bot]](https://github.com/apps/renovate) (#242)
- chore(deps): update dependency hatchling to v1.30.1 [renovate[bot]](https://github.com/apps/renovate) (#243)
- chore(deps): pin dependencies [renovate[bot]](https://github.com/apps/renovate) (#244)
- chore(deps): update astral-sh/setup-uv action to v8.2.0 [renovate[bot]](https://github.com/apps/renovate) (#245)
- chore(deps): update dependency ruff to v0.15.16 [renovate[bot]](https://github.com/apps/renovate) (#246)