Skip to content

Commit 49086b2

Browse files
authored
2026.1.0 (#159957)
2 parents 46befc2 + 1f28fe9 commit 49086b2

File tree

1,857 files changed

+113101
-18900
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,857 files changed

+113101
-18900
lines changed

.core_files.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ core: &core
1313

1414
# Our base platforms, that are used by other integrations
1515
base_platforms: &base_platforms
16+
- homeassistant/components/ai_task/**
1617
- homeassistant/components/air_quality/**
1718
- homeassistant/components/alarm_control_panel/**
1819
- homeassistant/components/assist_satellite/**

.devcontainer/devcontainer.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@
2727
"charliermarsh.ruff",
2828
"ms-python.pylint",
2929
"ms-python.vscode-pylance",
30-
"visualstudioexptteam.vscodeintellicode",
3130
"redhat.vscode-yaml",
3231
"esbenp.prettier-vscode",
3332
"GitHub.vscode-pull-request-github",

.github/copilot-instructions.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,9 @@ rules:
5151
- **Missing imports** - We use static analysis tooling to catch that
5252
- **Code formatting** - We have ruff as a formatting tool that will catch those if needed (unless specifically instructed otherwise in these instructions)
5353
54+
**Git commit practices during review:**
55+
- **Do NOT amend, squash, or rebase commits after review has started** - Reviewers need to see what changed since their last review
56+
5457
## Python Requirements
5558
5659
- **Compatibility**: Python 3.13+

.github/workflows/builder.yml

Lines changed: 20 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ env:
1515
UV_HTTP_TIMEOUT: 60
1616
UV_SYSTEM_PYTHON: "true"
1717
# Base image version from https://github.com/home-assistant/docker
18-
BASE_IMAGE_VERSION: "2025.11.3"
18+
BASE_IMAGE_VERSION: "2025.12.0"
1919
ARCHITECTURES: '["amd64", "aarch64"]'
2020

2121
jobs:
@@ -30,7 +30,7 @@ jobs:
3030
architectures: ${{ env.ARCHITECTURES }}
3131
steps:
3232
- name: Checkout the repository
33-
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
33+
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
3434

3535
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
3636
uses: actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548 # v6.1.0
@@ -70,7 +70,7 @@ jobs:
7070
run: find ./homeassistant/components/*/translations -name "*.json" | tar zcvf translations.tar.gz -T -
7171

7272
- name: Upload translations
73-
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0
73+
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
7474
with:
7575
name: translations
7676
path: translations.tar.gz
@@ -96,11 +96,11 @@ jobs:
9696
os: ubuntu-24.04-arm
9797
steps:
9898
- name: Checkout the repository
99-
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
99+
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
100100

101101
- name: Download nightly wheels of frontend
102102
if: needs.init.outputs.channel == 'dev'
103-
uses: dawidd6/action-download-artifact@ac66b43f0e6a346234dd65d4d0c8fbb31cb316e5 # v11
103+
uses: dawidd6/action-download-artifact@0bd50d53a6d7fb5cb921e607957e9cc12b4ce392 # v12
104104
with:
105105
github_token: ${{secrets.GITHUB_TOKEN}}
106106
repo: home-assistant/frontend
@@ -111,7 +111,7 @@ jobs:
111111

112112
- name: Download nightly wheels of intents
113113
if: needs.init.outputs.channel == 'dev'
114-
uses: dawidd6/action-download-artifact@ac66b43f0e6a346234dd65d4d0c8fbb31cb316e5 # v11
114+
uses: dawidd6/action-download-artifact@0bd50d53a6d7fb5cb921e607957e9cc12b4ce392 # v12
115115
with:
116116
github_token: ${{secrets.GITHUB_TOKEN}}
117117
repo: OHF-Voice/intents-package
@@ -169,7 +169,7 @@ jobs:
169169
fi
170170
171171
- name: Download translations
172-
uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6.0.0
172+
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
173173
with:
174174
name: translations
175175

@@ -190,13 +190,14 @@ jobs:
190190
username: ${{ github.repository_owner }}
191191
password: ${{ secrets.GITHUB_TOKEN }}
192192

193-
- name: Install Cosign
193+
- &install_cosign
194+
name: Install Cosign
194195
uses: sigstore/cosign-installer@faadad0cce49287aee09b3a48701e75088a2c6ad # v4.0.0
195196
with:
196197
cosign-release: "v2.5.3"
197198

198199
- name: Set up Docker Buildx
199-
uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3.11.1
200+
uses: docker/setup-buildx-action@8d2750c68a42422c14e847fe6c8ac0403b4cbd6f # v3.12.0
200201

201202
- name: Build variables
202203
id: vars
@@ -272,7 +273,7 @@ jobs:
272273
- green
273274
steps:
274275
- name: Checkout the repository
275-
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
276+
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
276277

277278
- name: Set build additional args
278279
run: |
@@ -294,7 +295,7 @@ jobs:
294295

295296
# home-assistant/builder doesn't support sha pinning
296297
- name: Build base image
297-
uses: home-assistant/builder@2025.09.0
298+
uses: home-assistant/builder@2025.11.0
298299
with:
299300
args: |
300301
$BUILD_ARGS \
@@ -310,7 +311,7 @@ jobs:
310311
runs-on: ubuntu-latest
311312
steps:
312313
- name: Checkout the repository
313-
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
314+
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
314315

315316
- name: Initialize git
316317
uses: home-assistant/actions/helpers/git-init@master
@@ -353,10 +354,7 @@ jobs:
353354
matrix:
354355
registry: ["ghcr.io/home-assistant", "docker.io/homeassistant"]
355356
steps:
356-
- name: Install Cosign
357-
uses: sigstore/cosign-installer@faadad0cce49287aee09b3a48701e75088a2c6ad # v4.0.0
358-
with:
359-
cosign-release: "v2.2.3"
357+
- *install_cosign
360358

361359
- name: Login to DockerHub
362360
if: matrix.registry == 'docker.io/homeassistant'
@@ -393,7 +391,7 @@ jobs:
393391
# 2025.12.0.dev202511250240 -> tags: 2025.12.0.dev202511250240, dev
394392
- name: Generate Docker metadata
395393
id: meta
396-
uses: docker/metadata-action@8e5442c4ef9f78752691e2d8f8d19755c6f78e81 # v5.5.1
394+
uses: docker/metadata-action@c299e40c65443455700f0fdfc63efafe5b349051 # v5.10.0
397395
with:
398396
images: ${{ matrix.registry }}/home-assistant
399397
sep-tags: ","
@@ -407,7 +405,7 @@ jobs:
407405
type=semver,pattern={{major}}.{{minor}},value=${{ needs.init.outputs.version }},enable=${{ !contains(needs.init.outputs.version, 'd') && !contains(needs.init.outputs.version, 'b') }}
408406
409407
- name: Set up Docker Buildx
410-
uses: docker/setup-buildx-action@aa33708b10e362ff993539393ff100fa93ed6a27 # v3.7.1
408+
uses: docker/setup-buildx-action@8d2750c68a42422c14e847fe6c8ac0403b4cbd6f # v3.7.1
411409

412410
- name: Copy architecture images to DockerHub
413411
if: matrix.registry == 'docker.io/homeassistant'
@@ -476,15 +474,15 @@ jobs:
476474
if: github.repository_owner == 'home-assistant' && needs.init.outputs.publish == 'true'
477475
steps:
478476
- name: Checkout the repository
479-
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
477+
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
480478

481479
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
482480
uses: actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548 # v6.1.0
483481
with:
484482
python-version: ${{ env.DEFAULT_PYTHON }}
485483

486484
- name: Download translations
487-
uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6.0.0
485+
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
488486
with:
489487
name: translations
490488

@@ -521,7 +519,7 @@ jobs:
521519
HASSFEST_IMAGE_TAG: ghcr.io/home-assistant/hassfest:${{ needs.init.outputs.version }}
522520
steps:
523521
- name: Checkout repository
524-
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
522+
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
525523

526524
- name: Login to GitHub Container Registry
527525
uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0
@@ -553,7 +551,7 @@ jobs:
553551

554552
- name: Generate artifact attestation
555553
if: needs.init.outputs.channel != 'dev' && needs.init.outputs.publish == 'true'
556-
uses: actions/attest-build-provenance@977bb373ede98d70efdf65b84cb5f73e068dcc2a # v3.0.0
554+
uses: actions/attest-build-provenance@00014ed6ed5efc5b1ab7f7f34a39eb55d41aa4f8 # v3.1.0
557555
with:
558556
subject-name: ${{ env.HASSFEST_IMAGE_NAME }}
559557
subject-digest: ${{ steps.push.outputs.digest }}

.github/workflows/ci.yaml

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,9 @@ env:
4040
CACHE_VERSION: 2
4141
UV_CACHE_VERSION: 1
4242
MYPY_CACHE_VERSION: 1
43-
HA_SHORT_VERSION: "2025.12"
44-
DEFAULT_PYTHON: "3.13.9"
45-
ALL_PYTHON_VERSIONS: "['3.13.9', '3.14.0']"
43+
HA_SHORT_VERSION: "2026.1"
44+
DEFAULT_PYTHON: "3.13.11"
45+
ALL_PYTHON_VERSIONS: "['3.13.11', '3.14.2']"
4646
# 10.3 is the oldest supported version
4747
# - 10.3.32 is the version currently shipped with Synology (as of 17 Feb 2022)
4848
# 10.6 is the current long-term-support
@@ -99,7 +99,7 @@ jobs:
9999
steps:
100100
- &checkout
101101
name: Check out code from GitHub
102-
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
102+
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
103103
- name: Generate partial Python venv restore key
104104
id: generate_python_cache_key
105105
run: |
@@ -263,7 +263,7 @@ jobs:
263263
check-latest: true
264264
- name: Restore base Python virtual environment
265265
id: cache-venv
266-
uses: &actions-cache actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
266+
uses: &actions-cache actions/cache@9255dc7a253b0ccc959486e2bca901246202afeb # v5.0.1
267267
with:
268268
path: venv
269269
key: &key-pre-commit-venv >-
@@ -304,7 +304,7 @@ jobs:
304304
- &cache-restore-pre-commit-venv
305305
name: Restore base Python virtual environment
306306
id: cache-venv
307-
uses: &actions-cache-restore actions/cache/restore@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
307+
uses: &actions-cache-restore actions/cache/restore@9255dc7a253b0ccc959486e2bca901246202afeb # v5.0.1
308308
with:
309309
path: venv
310310
fail-on-cache-miss: true
@@ -511,7 +511,7 @@ jobs:
511511
fi
512512
- name: Save apt cache
513513
if: steps.cache-apt-check.outputs.cache-hit != 'true'
514-
uses: &actions-cache-save actions/cache/save@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
514+
uses: &actions-cache-save actions/cache/save@9255dc7a253b0ccc959486e2bca901246202afeb # v5.0.1
515515
with:
516516
path: *path-apt-cache
517517
key: *key-apt-cache
@@ -534,7 +534,7 @@ jobs:
534534
python --version
535535
uv pip freeze >> pip_freeze.txt
536536
- name: Upload pip_freeze artifact
537-
uses: &actions-upload-artifact actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0
537+
uses: &actions-upload-artifact actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
538538
with:
539539
name: pip-freeze-${{ matrix.python-version }}
540540
path: pip_freeze.txt
@@ -864,7 +864,7 @@ jobs:
864864
run: |
865865
echo "::add-matcher::.github/workflows/matchers/pytest-slow.json"
866866
- name: Download pytest_buckets
867-
uses: &actions-download-artifact actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6.0.0
867+
uses: &actions-download-artifact actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
868868
with:
869869
name: pytest_buckets
870870
- &compile-english-translations
@@ -1188,7 +1188,7 @@ jobs:
11881188
pattern: coverage-*
11891189
- name: Upload coverage to Codecov
11901190
if: needs.info.outputs.test_full_suite == 'true'
1191-
uses: codecov/codecov-action@5a1091511ad55cbe89839c7260b706298ca349f7 # v5.5.1
1191+
uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5.5.2
11921192
with:
11931193
fail_ci_if_error: true
11941194
flags: full-suite
@@ -1313,7 +1313,7 @@ jobs:
13131313
pattern: coverage-*
13141314
- name: Upload coverage to Codecov
13151315
if: needs.info.outputs.test_full_suite == 'false'
1316-
uses: codecov/codecov-action@5a1091511ad55cbe89839c7260b706298ca349f7 # v5.5.1
1316+
uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5.5.2
13171317
with:
13181318
fail_ci_if_error: true
13191319
token: ${{ secrets.CODECOV_TOKEN }}

.github/workflows/codeql.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,14 @@ jobs:
2121

2222
steps:
2323
- name: Check out code from GitHub
24-
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
24+
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
2525

2626
- name: Initialize CodeQL
27-
uses: github/codeql-action/init@fdbfb4d2750291e159f0156def62b853c2798ca2 # v4.31.5
27+
uses: github/codeql-action/init@5d4e8d1aca955e8d8589aabd499c5cae939e33c7 # v4.31.9
2828
with:
2929
languages: python
3030

3131
- name: Perform CodeQL Analysis
32-
uses: github/codeql-action/analyze@fdbfb4d2750291e159f0156def62b853c2798ca2 # v4.31.5
32+
uses: github/codeql-action/analyze@5d4e8d1aca955e8d8589aabd499c5cae939e33c7 # v4.31.9
3333
with:
3434
category: "/language:python"

.github/workflows/detect-duplicate-issues.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,7 @@ jobs:
231231
- name: Detect duplicates using AI
232232
id: ai_detection
233233
if: steps.extract.outputs.should_continue == 'true' && steps.fetch_similar.outputs.has_similar == 'true'
234-
uses: actions/ai-inference@5022b33bc1431add9b2831934daf8147a2ad9331 # v2.0.2
234+
uses: actions/ai-inference@334892bb203895caaed82ec52d23c1ed9385151e # v2.0.4
235235
with:
236236
model: openai/gpt-4o
237237
system-prompt: |

.github/workflows/detect-non-english-issues.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ jobs:
5757
- name: Detect language using AI
5858
id: ai_language_detection
5959
if: steps.detect_language.outputs.should_continue == 'true'
60-
uses: actions/ai-inference@5022b33bc1431add9b2831934daf8147a2ad9331 # v2.0.2
60+
uses: actions/ai-inference@334892bb203895caaed82ec52d23c1ed9385151e # v2.0.4
6161
with:
6262
model: openai/gpt-4o-mini
6363
system-prompt: |

.github/workflows/lock.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ jobs:
1010
if: github.repository_owner == 'home-assistant'
1111
runs-on: ubuntu-latest
1212
steps:
13-
- uses: dessant/lock-threads@1bf7ec25051fe7c00bdd17e6a7cf3d7bfb7dc771 # v5.0.1
13+
- uses: dessant/lock-threads@7266a7ce5c1df01b1c6db85bf8cd86c737dadbe7 # v6.0.0
1414
with:
1515
github-token: ${{ github.token }}
1616
issue-inactive-days: "30"

.github/workflows/stale.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ jobs:
1717
# - No PRs marked as no-stale
1818
# - No issues (-1)
1919
- name: 60 days stale PRs policy
20-
uses: actions/stale@5f858e3efba33a5ca4407a664cc011ad407f2008 # v10.1.0
20+
uses: actions/stale@997185467fa4f803885201cee163a9f38240193d # v10.1.1
2121
with:
2222
repo-token: ${{ secrets.GITHUB_TOKEN }}
2323
days-before-stale: 60
@@ -57,7 +57,7 @@ jobs:
5757
# - No issues marked as no-stale or help-wanted
5858
# - No PRs (-1)
5959
- name: 90 days stale issues
60-
uses: actions/stale@5f858e3efba33a5ca4407a664cc011ad407f2008 # v10.1.0
60+
uses: actions/stale@997185467fa4f803885201cee163a9f38240193d # v10.1.1
6161
with:
6262
repo-token: ${{ steps.token.outputs.token }}
6363
days-before-stale: 90
@@ -87,7 +87,7 @@ jobs:
8787
# - No Issues marked as no-stale or help-wanted
8888
# - No PRs (-1)
8989
- name: Needs more information stale issues policy
90-
uses: actions/stale@5f858e3efba33a5ca4407a664cc011ad407f2008 # v10.1.0
90+
uses: actions/stale@997185467fa4f803885201cee163a9f38240193d # v10.1.1
9191
with:
9292
repo-token: ${{ steps.token.outputs.token }}
9393
only-labels: "needs-more-information"

0 commit comments

Comments
 (0)