Skip to content

fix(packaging): add missing hermes_state_* modules to py-modules list (#74287) - #74492

Closed
RelaxJonh wants to merge 1 commit into
NousResearch:mainfrom
RelaxJonh:fix/py-modules-missing-hermes-state-74287
Closed

fix(packaging): add missing hermes_state_* modules to py-modules list (#74287)#74492
RelaxJonh wants to merge 1 commit into
NousResearch:mainfrom
RelaxJonh:fix/py-modules-missing-hermes-state-74287

Conversation

@RelaxJonh

Copy link
Copy Markdown
Contributor

Summary

hermes_state.py imports four sibling top-level modules that are not listed in [tool.setuptools] py-modules, so they are never packaged in wheel/sdist builds. Any install built from pyproject.toml (pip/uv wheel, nix, distro packaging) silently disables the SQLite session store because the modules are missing from the distribution.

Git installs are unaffected since they run from the repo tree where the files are present.

Root Cause

hermes_state.py imports:

  • hermes_state_common (line 46, re-exported for back-compat)
  • hermes_state_portability (line 70, SessionPortabilityMixin)
  • hermes_state_schema (line 71, SessionSchemaMixin)
  • hermes_state_search (line 72, SessionSearchMixin)

But pyproject.toml line 348 only lists hermes_state — the four dependencies are absent.

Fix

Add the four missing modules to the py-modules list in pyproject.toml.

Testing

  • All 4 existing packaging tests pass (tests/test_packaging_build_guard.py)
  • Verified the modules exist in the repo root
  • Verified the imports in hermes_state.py match the added module names

Fixes #74287

@RelaxJonh
RelaxJonh requested a review from a team July 30, 2026 01:03
@alt-glitch alt-glitch added type/bug Something isn't working P1 High — major feature broken, no workaround comp/agent Core agent runtime: loop, agent_init, prompt builder, context-compression, responses endpoint area/sessions Session lifecycle, resume, persistence, history area/install-update Installer, updater, packaging, wheels, doctor sweeper:risk-session-state Sweeper risk: may lose/corrupt/mis-associate session or context state sweeper:risk-compatibility Sweeper risk: may break existing users, config, migrations, defaults, or upgrades duplicate This issue or pull request already exists labels Jul 30, 2026
@alt-glitch

Copy link
Copy Markdown
Collaborator

This was generated by AI during triage.

Duplicate of #74393: both add the same four missing hermes_state_* py-modules. #74393 is the canonical patch because it also covers build and wheel regression checks.

@RelaxJonh RelaxJonh closed this Jul 30, 2026
@RelaxJonh RelaxJonh reopened this Jul 30, 2026
hermes_state.py imports four sibling modules that are not listed in
[tool.setuptools] py-modules, so they are never packaged in wheel/sdist
builds. Any install built from pyproject.toml (pip/uv wheel, nix, distro
packaging) silently disables the SQLite session store because the modules
are missing from the distribution.

- hermes_state_common (re-exported for back-compat)
- hermes_state_portability (SessionPortabilityMixin)
- hermes_state_schema (SessionSchemaMixin)
- hermes_state_search (SessionSearchMixin)

Git installs are unaffected since they run from the repo tree.

Fixes NousResearch#74287
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/install-update Installer, updater, packaging, wheels, doctor area/sessions Session lifecycle, resume, persistence, history comp/agent Core agent runtime: loop, agent_init, prompt builder, context-compression, responses endpoint duplicate This issue or pull request already exists P1 High — major feature broken, no workaround sweeper:risk-compatibility Sweeper risk: may break existing users, config, migrations, defaults, or upgrades sweeper:risk-session-state Sweeper risk: may lose/corrupt/mis-associate session or context state type/bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

pyproject.toml py-modules omits four hermes_state_* modules — session store silently disabled in every wheel-based install (found on NixOS)

2 participants