From 0df25065fb0493368aefc7b9bbc3dc35dded8b46 Mon Sep 17 00:00:00 2001 From: brnl <3243133+brnl@users.noreply.github.com> Date: Tue, 25 Aug 2026 12:20:46 +0000 Subject: [PATCH 1/4] Fix git_pull run.sh backup process to include hidden files in git-clone (#4797) --- git_pull/CHANGELOG.md | 8 ++++++++ git_pull/config.yaml | 2 +- git_pull/data/run.sh | 2 +- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/git_pull/CHANGELOG.md b/git_pull/CHANGELOG.md index 8f9a97baa..eb4b8b01b 100644 --- a/git_pull/CHANGELOG.md +++ b/git_pull/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## 9.0.2 + +- Fix `.storage/` and other hidden files/directories being silently dropped from + the pre-clone backup (they were never restored after the initial clone into + an existing `/config`, because `cp -rf /config/*` does **not** match dotfiles). + Use `cp -rf /config/.` instead, which copies directory contents including + hidden entries. + ## 9.0.1 - Replace eval+extglob with find for restoring non-YAML files after clone diff --git a/git_pull/config.yaml b/git_pull/config.yaml index 44021d12a..bb02f8568 100644 --- a/git_pull/config.yaml +++ b/git_pull/config.yaml @@ -1,5 +1,5 @@ --- -version: 9.0.1 +version: 9.0.2 slug: git_pull name: Git pull description: Simple git pull to update the local configuration diff --git a/git_pull/data/run.sh b/git_pull/data/run.sh index e5e1bd2cc..c1b945424 100755 --- a/git_pull/data/run.sh +++ b/git_pull/data/run.sh @@ -47,7 +47,7 @@ function git-clone { bashio::log.info "[Info] Backup configuration to $BACKUP_LOCATION" mkdir "${BACKUP_LOCATION}" || bashio::exit.nok "[Error] Creation of backup directory failed" - cp -rf /config/* "${BACKUP_LOCATION}" || bashio::exit.nok "[Error] Copy files to backup directory failed" + cp -rf /config/. "${BACKUP_LOCATION}/" || bashio::exit.nok "[Error] Copy files to backup directory failed" # remove config folder content rm -rf /config/{,.[!.],..?}* || bashio::exit.nok "[Error] Clearing /config failed" From 899ae6ea6a384da8d96621a15faf59abccffa62e Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Tue, 25 Aug 2026 14:39:47 +0200 Subject: [PATCH 2/4] speech_to_phrase: Pin onnxruntime and disable its telemetry (#4793) * speech_to_phrase: Pin onnxruntime and disable its telemetry Pin onnxruntime and pysilero-vad to the versions shipped in 1.4.3, so image rebuilds no longer silently change runtime behavior, and set ORT_DISABLE_TELEMETRY=1. onnxruntime 1.29.0 introduced telemetry on Linux, uploading usage events and a persistent device identifier to a Microsoft endpoint by default (see #4791). The currently released 1.4.3 image ships onnxruntime 1.24.4 and is not affected, but the next unpinned rebuild would have pulled in 1.29+. Co-Authored-By: Claude Fable 5 * speech_to_phrase: Bump pinned onnxruntime to latest release With ORT_DISABLE_TELEMETRY=1 in place there is no reason to hold back onnxruntime: bump it from 1.24.4 to 1.29.0. pysilero-vad 2.1.1 is already the latest 2.x (speech-to-phrase requires <3). Co-Authored-By: Claude Fable 5 * speech_to_phrase: Simplify changelog wording Co-Authored-By: Claude Fable 5 * speech_to_phrase: Move Python dependency pins to build.yaml args Follow the pattern established by the letsencrypt add-on: declare Python package versions as build args in build.yaml, keeping every version in the one file maintainers edit for bumps. Co-Authored-By: Claude Fable 5 * speech_to_phrase: Drop redundant Dockerfile comment Co-Authored-By: Claude Fable 5 * speech_to_phrase: Upgrade base image to trixie Following piper and whisper, which already migrated from bookworm. Co-Authored-By: Claude Fable 5 --------- Co-authored-by: Claude Fable 5 --- speech_to_phrase/CHANGELOG.md | 7 +++++++ speech_to_phrase/Dockerfile | 9 ++++++++- speech_to_phrase/build.yaml | 6 ++++-- speech_to_phrase/config.yaml | 2 +- 4 files changed, 20 insertions(+), 4 deletions(-) diff --git a/speech_to_phrase/CHANGELOG.md b/speech_to_phrase/CHANGELOG.md index 4faf49928..4e1aec6f6 100644 --- a/speech_to_phrase/CHANGELOG.md +++ b/speech_to_phrase/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## 1.4.4 + +- Upgrade base image to trixie +- Update speech recognition components to their latest versions +- Disable ONNX Runtime telemetry: newer versions send usage data to a + Microsoft server by default, this app keeps it turned off + ## 1.4.3 - Fix for empty names in HA 2026.4 diff --git a/speech_to_phrase/Dockerfile b/speech_to_phrase/Dockerfile index 7e7d7db34..522646eed 100644 --- a/speech_to_phrase/Dockerfile +++ b/speech_to_phrase/Dockerfile @@ -6,7 +6,10 @@ ARG BUILD_ARCH SHELL ["/bin/bash", "-o", "pipefail", "-c"] # Install speech-to-phrase -ARG SPEECH_TO_PHRASE_VERSION +ARG \ + SPEECH_TO_PHRASE_VERSION \ + ONNXRUNTIME_VERSION \ + PYSILERO_VAD_VERSION WORKDIR /usr/src RUN mkdir -p ./tools @@ -31,11 +34,15 @@ RUN \ && python3 -m venv .venv \ && .venv/bin/pip3 install --no-cache-dir \ "speech-to-phrase @ https://github.com/OHF-Voice/speech-to-phrase/archive/refs/tags/v${SPEECH_TO_PHRASE_VERSION}.tar.gz" \ + "onnxruntime==${ONNXRUNTIME_VERSION}" \ + "pysilero-vad==${PYSILERO_VAD_VERSION}" \ && apt-get remove --yes build-essential \ && apt-get autoclean \ && apt-get purge \ && rm -rf /var/lib/apt/lists/* +ENV ORT_DISABLE_TELEMETRY=1 + WORKDIR / COPY rootfs / diff --git a/speech_to_phrase/build.yaml b/speech_to_phrase/build.yaml index 32642f89b..ced84d7fd 100644 --- a/speech_to_phrase/build.yaml +++ b/speech_to_phrase/build.yaml @@ -1,6 +1,8 @@ --- build_from: - amd64: ghcr.io/home-assistant/amd64-base-debian:bookworm - aarch64: ghcr.io/home-assistant/aarch64-base-debian:bookworm + amd64: ghcr.io/home-assistant/amd64-base-debian:trixie + aarch64: ghcr.io/home-assistant/aarch64-base-debian:trixie args: SPEECH_TO_PHRASE_VERSION: 1.4.3 + ONNXRUNTIME_VERSION: 1.29.0 + PYSILERO_VAD_VERSION: 2.1.1 diff --git a/speech_to_phrase/config.yaml b/speech_to_phrase/config.yaml index e31aa22c5..8a04ffa03 100644 --- a/speech_to_phrase/config.yaml +++ b/speech_to_phrase/config.yaml @@ -1,5 +1,5 @@ --- -version: 1.4.3 +version: 1.4.4 slug: speech-to-phrase name: Speech-to-Phrase description: Fast and personalized local speech-to-text From f0443986d6e95ad34793cc4f9505add0e92f95b1 Mon Sep 17 00:00:00 2001 From: brnl <3243133+brnl@users.noreply.github.com> Date: Tue, 25 Aug 2026 13:20:39 +0000 Subject: [PATCH 3/4] Git pull fix gitdir from being restored (#4799) * Fix git-clone function to exclude '.git' directory when restoring non-yaml files * Bump version to 9.0.3 and fix git-clone restore step to exclude stale `.git` directory --- git_pull/CHANGELOG.md | 7 +++++++ git_pull/config.yaml | 2 +- git_pull/data/run.sh | 4 ++-- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/git_pull/CHANGELOG.md b/git_pull/CHANGELOG.md index eb4b8b01b..b74c589fb 100644 --- a/git_pull/CHANGELOG.md +++ b/git_pull/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## 9.0.3 + +- Fix `git-clone`'s restore-after-clone step copying a stale/corrupt `.git` + directory from the pre-clone backup into the freshly cloned repository, + which could corrupt the new clone's git metadata. `.git` is now excluded + from that restore step, same as `*.yaml`/`*.yml`. + ## 9.0.2 - Fix `.storage/` and other hidden files/directories being silently dropped from diff --git a/git_pull/config.yaml b/git_pull/config.yaml index bb02f8568..278b68266 100644 --- a/git_pull/config.yaml +++ b/git_pull/config.yaml @@ -1,5 +1,5 @@ --- -version: 9.0.2 +version: 9.0.3 slug: git_pull name: Git pull description: Simple git pull to update the local configuration diff --git a/git_pull/data/run.sh b/git_pull/data/run.sh index c1b945424..681540af3 100755 --- a/git_pull/data/run.sh +++ b/git_pull/data/run.sh @@ -56,8 +56,8 @@ function git-clone { bashio::log.info "[Info] Start git clone" git clone "$REPOSITORY" /config || bashio::exit.nok "[Error] Git clone failed" - # try to copy non-yaml files back - find "${BACKUP_LOCATION}" -maxdepth 1 -mindepth 1 ! -name "*.yaml" ! -name "*.yml" -exec cp -r {} /config/ \; 2>/dev/null || true + # try to copy non-yaml files back (also excluding '.git' as it can corrupt the new repository) + find "${BACKUP_LOCATION}" -maxdepth 1 -mindepth 1 ! -name "*.yaml" ! -name "*.yml" ! -name ".git" -exec cp -r {} /config/ \; 2>/dev/null || true # try to copy secrets file back cp "${BACKUP_LOCATION}/secrets.yaml" /config 2>/dev/null || true From 2f1ab016718058ea8d572d22f6e8c1ec3a0ef999 Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Tue, 25 Aug 2026 15:24:34 +0200 Subject: [PATCH 4/4] whisper: Pin inference stack and disable ONNX Runtime telemetry (#4792) * whisper: Pin inference stack and disable ONNX Runtime telemetry Pin onnxruntime, faster-whisper, ctranslate2 and sherpa-onnx to the versions shipped in 3.5.1, so image rebuilds no longer silently change runtime behavior, and set ORT_DISABLE_TELEMETRY=1. onnxruntime 1.29.0 introduced telemetry on Linux, uploading usage events and a persistent device identifier to a Microsoft endpoint by default (see #4791). The currently released 3.5.1 image ships onnxruntime 1.28.0 and is not affected, but the next unpinned rebuild would have pulled in 1.29+. Co-Authored-By: Claude Fable 5 * whisper: Bump pinned inference stack to latest releases With ORT_DISABLE_TELEMETRY=1 in place there is no reason to hold back onnxruntime: bump it to 1.29.0 and sherpa-onnx to 1.13.6. faster-whisper 1.2.1 and ctranslate2 4.8.1 are already the latest. Co-Authored-By: Claude Fable 5 * whisper: Simplify changelog wording Co-Authored-By: Claude Fable 5 * whisper: Move Python dependency pins to build.yaml args Follow the pattern established by the letsencrypt add-on: declare all Python package versions as build args in build.yaml, keeping every version in the one file maintainers edit for bumps. This also migrates the previously inline pins (wyoming, transformers, onnx-asr, torch, torchaudio) so the add-on is consistent. Co-Authored-By: Claude Fable 5 * whisper: Drop redundant Dockerfile comment Co-Authored-By: Claude Fable 5 * whisper: Pin funasr as well Replace the funasr version range with an exact pin at the latest release (shipped image had 1.4.0), completing the move to fully pinned Python dependencies. Co-Authored-By: Claude Fable 5 --------- Co-authored-by: Claude Fable 5 --- whisper/CHANGELOG.md | 6 ++++++ whisper/Dockerfile | 30 +++++++++++++++++++++++------- whisper/build.yaml | 10 ++++++++++ whisper/config.yaml | 2 +- 4 files changed, 40 insertions(+), 8 deletions(-) diff --git a/whisper/CHANGELOG.md b/whisper/CHANGELOG.md index 1970b2d9e..c2182f0a8 100644 --- a/whisper/CHANGELOG.md +++ b/whisper/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## 3.5.2 + +- Update speech recognition components to their latest versions +- Disable ONNX Runtime telemetry: newer versions send usage data to a + Microsoft server by default, this app keeps it turned off + ## 3.5.1. - Upgrade base image to trixie diff --git a/whisper/Dockerfile b/whisper/Dockerfile index 0e0f69d42..7ed3a0f85 100644 --- a/whisper/Dockerfile +++ b/whisper/Dockerfile @@ -3,7 +3,17 @@ FROM ${BUILD_FROM} # Install Whisper WORKDIR /usr/src -ARG WYOMING_WHISPER_VERSION +ARG \ + WYOMING_WHISPER_VERSION \ + WYOMING_VERSION \ + TRANSFORMERS_VERSION \ + ONNX_ASR_VERSION \ + FUNASR_VERSION \ + ONNXRUNTIME_VERSION \ + FASTER_WHISPER_VERSION \ + CTRANSLATE2_VERSION \ + SHERPA_ONNX_VERSION \ + TORCH_VERSION RUN \ apt-get update \ @@ -21,16 +31,20 @@ RUN \ setuptools \ wheel \ && .venv/bin/pip3 install --no-cache-dir \ - "wyoming[zeroconf]==1.9.0" \ + "wyoming[zeroconf]==${WYOMING_VERSION}" \ "wyoming-faster-whisper[sherpa] @ https://github.com/rhasspy/wyoming-faster-whisper/archive/refs/tags/v${WYOMING_WHISPER_VERSION}.tar.gz" \ - 'transformers==4.52.4' \ - 'onnx-asr[cpu,hub]==0.11.0' \ - 'funasr>=1.1.0,<2' \ + "transformers==${TRANSFORMERS_VERSION}" \ + "onnx-asr[cpu,hub]==${ONNX_ASR_VERSION}" \ + "funasr==${FUNASR_VERSION}" \ + "onnxruntime==${ONNXRUNTIME_VERSION}" \ + "faster-whisper==${FASTER_WHISPER_VERSION}" \ + "ctranslate2==${CTRANSLATE2_VERSION}" \ + "sherpa-onnx==${SHERPA_ONNX_VERSION}" \ \ && .venv/bin/pip3 install --no-cache-dir \ --index-url 'https://download.pytorch.org/whl/cpu' \ - 'torch==2.7.1' \ - 'torchaudio==2.7.1' \ + "torch==${TORCH_VERSION}" \ + "torchaudio==${TORCH_VERSION}" \ \ && apt-get purge -y --auto-remove \ build-essential \ @@ -38,6 +52,8 @@ RUN \ && rm -rf /var/lib/apt/lists/* ENV PATH="/usr/src/.venv/bin:$PATH" + +ENV ORT_DISABLE_TELEMETRY=1 WORKDIR / COPY rootfs / diff --git a/whisper/build.yaml b/whisper/build.yaml index 7bb294e1a..5c6191faf 100644 --- a/whisper/build.yaml +++ b/whisper/build.yaml @@ -4,3 +4,13 @@ build_from: aarch64: ghcr.io/home-assistant/aarch64-base-debian:trixie args: WYOMING_WHISPER_VERSION: 3.5.0 + WYOMING_VERSION: 1.9.0 + # Must match the exact pins of wyoming-faster-whisper + TRANSFORMERS_VERSION: 4.52.4 + ONNX_ASR_VERSION: 0.11.0 + FUNASR_VERSION: 1.4.3 + ONNXRUNTIME_VERSION: 1.29.0 + FASTER_WHISPER_VERSION: 1.2.1 + CTRANSLATE2_VERSION: 4.8.1 + SHERPA_ONNX_VERSION: 1.13.6 + TORCH_VERSION: 2.7.1 diff --git a/whisper/config.yaml b/whisper/config.yaml index 7986bc4c7..2cf0c9229 100644 --- a/whisper/config.yaml +++ b/whisper/config.yaml @@ -1,5 +1,5 @@ --- -version: 3.5.1 +version: 3.5.2 slug: whisper name: Whisper description: Speech-to-text with Whisper