fix(packaging): ship hermes_cli subpackages in wheel - #34811
Merged
Conversation
[tool.setuptools.packages.find] listed 'hermes_cli' without the 'hermes_cli.*' wildcard, so the wheel shipped hermes_cli/*.py but dropped the dashboard_auth and proxy subpackages. The dashboard died on every install with ModuleNotFoundError: No module named 'hermes_cli.dashboard_auth' (#34701); 'hermes proxy' was equally broken. Add the wildcard, and add a regression test that drives setuptools' own find_packages against the live tree so any future subpackage dropped from the include list fails CI instead of a user's container.
This was referenced May 29, 2026
Closed
teknium1
added a commit
that referenced
this pull request
May 29, 2026
tests/test_packaging_metadata.py (added in #34811) imports `from setuptools import find_packages` at module level. setuptools is only declared under [build-system] requires, not as a runtime/test dep, so CI's uv-managed test venv (uv pip install -e '.[all,dev]') lacks it and the module errors at collection with ModuleNotFoundError. Adding setuptools>=61.0 to the dev extra keeps the wheel-packaging regression test running in CI instead of skipping or erroring.
KKT-OPT
pushed a commit
to KKT-OPT/hermes-agent
that referenced
this pull request
May 31, 2026
) [tool.setuptools.packages.find] listed 'hermes_cli' without the 'hermes_cli.*' wildcard, so the wheel shipped hermes_cli/*.py but dropped the dashboard_auth and proxy subpackages. The dashboard died on every install with ModuleNotFoundError: No module named 'hermes_cli.dashboard_auth' (NousResearch#34701); 'hermes proxy' was equally broken. Add the wildcard, and add a regression test that drives setuptools' own find_packages against the live tree so any future subpackage dropped from the include list fails CI instead of a user's container.
1 task
Closed
11 tasks
alt-glitch
pushed a commit
that referenced
this pull request
Jun 14, 2026
[tool.setuptools.packages.find] listed 'hermes_cli' without the 'hermes_cli.*' wildcard, so the wheel shipped hermes_cli/*.py but dropped the dashboard_auth and proxy subpackages. The dashboard died on every install with ModuleNotFoundError: No module named 'hermes_cli.dashboard_auth' (#34701); 'hermes proxy' was equally broken. Add the wildcard, and add a regression test that drives setuptools' own find_packages against the live tree so any future subpackage dropped from the include list fails CI instead of a user's container.
lbouriez
added a commit
to lbouriez/unraid-templates
that referenced
this pull request
Jun 17, 2026
The dashboard_auth subpackage is missing from the v0.15.x wheel (upstream packaging bug, fixed in NousResearch/hermes-agent#34811). Setting HERMES_DASHBOARD_INSECURE=1 bypasses the OAuth gate so the dashboard binds on 0.0.0.0 without requiring the missing module. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
T02200059
pushed a commit
to T02200059/hermes-agent
that referenced
this pull request
Jun 18, 2026
) [tool.setuptools.packages.find] listed 'hermes_cli' without the 'hermes_cli.*' wildcard, so the wheel shipped hermes_cli/*.py but dropped the dashboard_auth and proxy subpackages. The dashboard died on every install with ModuleNotFoundError: No module named 'hermes_cli.dashboard_auth' (NousResearch#34701); 'hermes proxy' was equally broken. Add the wildcard, and add a regression test that drives setuptools' own find_packages against the live tree so any future subpackage dropped from the include list fails CI instead of a user's container.
xyshanren
pushed a commit
to xyshanren/hermes-agent-cn
that referenced
this pull request
Jun 25, 2026
) [tool.setuptools.packages.find] listed 'hermes_cli' without the 'hermes_cli.*' wildcard, so the wheel shipped hermes_cli/*.py but dropped the dashboard_auth and proxy subpackages. The dashboard died on every install with ModuleNotFoundError: No module named 'hermes_cli.dashboard_auth' (NousResearch#34701); 'hermes proxy' was equally broken. Add the wildcard, and add a regression test that drives setuptools' own find_packages against the live tree so any future subpackage dropped from the include list fails CI instead of a user's container.
waefrebeorn
pushed a commit
to waefrebeorn/slermes
that referenced
this pull request
Jul 2, 2026
) [tool.setuptools.packages.find] listed 'hermes_cli' without the 'hermes_cli.*' wildcard, so the wheel shipped hermes_cli/*.py but dropped the dashboard_auth and proxy subpackages. The dashboard died on every install with ModuleNotFoundError: No module named 'hermes_cli.dashboard_auth' (NousResearch#34701); 'hermes proxy' was equally broken. Add the wildcard, and add a regression test that drives setuptools' own find_packages against the live tree so any future subpackage dropped from the include list fails CI instead of a user's container.
santhreal
pushed a commit
to santhreal/hermes-agent
that referenced
this pull request
Jul 13, 2026
) [tool.setuptools.packages.find] listed 'hermes_cli' without the 'hermes_cli.*' wildcard, so the wheel shipped hermes_cli/*.py but dropped the dashboard_auth and proxy subpackages. The dashboard died on every install with ModuleNotFoundError: No module named 'hermes_cli.dashboard_auth' (NousResearch#34701); 'hermes proxy' was equally broken. Add the wildcard, and add a regression test that drives setuptools' own find_packages against the live tree so any future subpackage dropped from the include list fails CI instead of a user's container.
1 task
donbowman
pushed a commit
to donbowman/hermes-agent
that referenced
this pull request
Jul 13, 2026
) [tool.setuptools.packages.find] listed 'hermes_cli' without the 'hermes_cli.*' wildcard, so the wheel shipped hermes_cli/*.py but dropped the dashboard_auth and proxy subpackages. The dashboard died on every install with ModuleNotFoundError: No module named 'hermes_cli.dashboard_auth' (NousResearch#34701); 'hermes proxy' was equally broken. Add the wildcard, and add a regression test that drives setuptools' own find_packages against the live tree so any future subpackage dropped from the include list fails CI instead of a user's container.
Gravezzz
pushed a commit
to Gravezzz/hermes-agent
that referenced
this pull request
Jul 21, 2026
) [tool.setuptools.packages.find] listed 'hermes_cli' without the 'hermes_cli.*' wildcard, so the wheel shipped hermes_cli/*.py but dropped the dashboard_auth and proxy subpackages. The dashboard died on every install with ModuleNotFoundError: No module named 'hermes_cli.dashboard_auth' (NousResearch#34701); 'hermes proxy' was equally broken. Add the wildcard, and add a regression test that drives setuptools' own find_packages against the live tree so any future subpackage dropped from the include list fails CI instead of a user's container.
leewenjie
pushed a commit
to leewenjie/hermes-agent
that referenced
this pull request
Aug 7, 2026
) [tool.setuptools.packages.find] listed 'hermes_cli' without the 'hermes_cli.*' wildcard, so the wheel shipped hermes_cli/*.py but dropped the dashboard_auth and proxy subpackages. The dashboard died on every install with ModuleNotFoundError: No module named 'hermes_cli.dashboard_auth' (NousResearch#34701); 'hermes proxy' was equally broken. Add the wildcard, and add a regression test that drives setuptools' own find_packages against the live tree so any future subpackage dropped from the include list fails CI instead of a user's container.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Wheel installs now ship
hermes_cli's subpackages, so the dashboard starts instead of dying onModuleNotFoundError: No module named 'hermes_cli.dashboard_auth'(#34701).Root cause:
[tool.setuptools.packages.find]listedhermes_cliwithout thehermes_cli.*wildcard. Every other top-level package is listed with its wildcard (agent.*,tools.*,gateway.*). setuptools shippedhermes_cli/*.pybut dropped thedashboard_authandproxysubpackages. Latent for ages — nothing the runtime imported lived in ahermes_clisubpackage untildashboard_authlanded (imported at module level inweb_server.py).hermes proxywas equally broken in installed wheels.This is the same bug class as #34034 / #28149 (hand-maintained packaging lists silently shedding files). The blessed Docker image is the wheel, and the in-dashboard updater reinstalls it — so this bit the official container path, not just freelance
pip install.Changes
pyproject.toml: add"hermes_cli.*"topackages.findinclude.tests/test_packaging_metadata.py: regression test that drives setuptools' ownfind_packagesagainst the live tree — any on-disk subpackage dropped from the include list now fails CI.Validation
find_packages(include=...)forhermes_cli['hermes_cli']hermes_cli,.dashboard_auth,.proxy,.proxy.adapters.pyfiles in built wheelBuilt a real wheel and confirmed all 18 subpackage files land. Guard verified both directions (fails on the bug, passes on the fix).
Not in scope: the reporter's
/opt/hermes/.venvUID-10000 write-permission issue is a separatearea/dockerimage concern.Fixes #34701
Infographic