Hassfest won't let me commit due to integration i didn't change

I am working on a PR and all my changes are related to deluge, upon committing i cannot actually completed the commit due to a integration , something to do with esphome? I did not change anything and it gives me no information on what the problem is or how to fix it. the branch is rebased ontop of latest dev, and i even did a git clean -d -x --force to no use.

(venv) mgrandi@Alcidae:~/core$ git status
On branch deluge_integration_fix
Your branch and 'origin/deluge_integration_fix' have diverged,
and have 3197 and 4 different commits each, respectively.
  (use "git pull" if you want to integrate the remote branch with yours)

Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        modified:   homeassistant/components/deluge/const.py
        modified:   homeassistant/components/deluge/sensor.py
        modified:   homeassistant/components/deluge/strings.json
        modified:   tests/components/deluge/test_sensor.py

(venv) mgrandi@Alcidae:~/core$ git commit -m "split out const.py items into DelugeSensorType to avoid confusion with DelugeGetSessionStatusKeys"
ruff.....................................................................Passed
ruff-format..............................................................Passed
codespell................................................................Passed
check json...............................................................Passed
don't commit to branch...................................................Passed
yamllint.............................................(no files to check)Skipped
prettier.................................................................Passed
mypy.....................................................................Passed
pylint...................................................................Passed
gen_requirements_all.................................(no files to check)Skipped
hassfest.................................................................Failed
- hook id: hassfest
- exit code: 1

Validating application_credentials... done in 0.02s
Validating bluetooth... done in 0.01s
Validating codeowners... done in 0.02s
Validating config_schema... done in 1.05s
Validating dependencies... done in 3.80s
Validating dhcp... done in 0.01s
Validating icons... done in 0.36s
Validating json... done in 0.00s
Validating manifest... done in 0.06s
Validating mqtt... done in 0.01s
Validating requirements... done in 0.01s
Validating services...Error loading libturbojpeg; Camera snapshot performance will be sub-optimal
Traceback (most recent call last):
  File "/home/mgrandi/core/homeassistant/components/camera/img_util.py", line 100, in __init__
    TurboJPEGSingleton.__instance = TurboJPEG()
                                    ^^^^^^^^^
NameError: name 'TurboJPEG' is not defined
 done in 1.56s
Validating ssdp... done in 0.01s
Validating translations... done in 8.86s
Validating usb... done in 0.01s
Validating zeroconf... done in 0.02s
Validating config_flow... done in 0.09s
Validating docker... done in 0.01s
Validating mypy_config... done in 0.02s
Validating metadata... done in 0.01s

Integrations: 1292
Invalid integrations: 1

Found errors. Generating files canceled.

Integration assist_satellite:
* [ERROR] [SERVICES] Invalid services.yaml: Unknown supported feature 'assist_satellite.AssistSatelliteEntityFeature.ANNOUNCE' @ data['announce']['target']['entity'][0]['supported_features'][0]. Got None

hassfest-metadata....................................(no files to check)Skipped
hassfest-mypy-config.................................(no files to check)Skipped
(venv) mgrandi@Alcidae:~/core$

I just come through the same thing in my wsl.
there are two separate errors.

  1. TurboJPEG
    you need to install it by
sudo apt-get install -y libturbojpeg
  1. Unknown supported feature ‘assist_satellite.AssistSatelliteEntityFeature.ANNOUNCE’ @ data[‘announce’][‘target’][‘entity’][0][‘supported_features’][0]. Got None

It is a bit misleading, the root cause is that there is dependency like this
assist_satellite → assist_pipeline → pyspeex-noise == 1.0.2

and pyspeex-noise == 1.0.2 cannot be installed if you didn’t install python3.12-dev
so, you need

sudo apt-get install python3.12-dev
pip install pyspeex-noise==1.0.2

after that, I can pass the pre-commit-hook

btw, you can validate the specific integration and plugin by

script/run-in-env.sh python3 -m script.hassfest -p services --integration-path homeassistant/components/assist_satellite

In case this helps someone else, the fix i needed in my vscode environment was:

  1. fix python interpreter setting
  • ctrl-shift-p, Python:Select Interpreter
  • Select Python 3.12.y (‘ha-venv’) ~/.local/ha-venv/bin/python
    (Note that this is not the one that vscode ‘recommends’ in the drop-down!)
  1. install ‘all’ requirements
  • uv pip install -r requirements_all.txt

I was able to test the hassfest script outside of the pre-commit hook using
script/run-in-env.sh python3 -m script.hassfest

Before I’d done 1) I had a problem where
python3 -m script.hassfest
would work but

script/run-in-env.sh python3 -m script.hassfest
would fail.