# NousResearch/hermes-agent · Nix build missing hermes_logging py-module fix

## Open now

- Nothing open on GitHub.

A bug was identified where \`hermes_logging\` was absent from \`py-modules\` in \`pyproject.toml\`, causing gateway crashes on NixOS. The members address diagnosing and patching this omission in the Nix build configuration.

## TL;DR

- 3 member(s): 0 open issue(s), 1 closed issue(s), 0 open PR(s), 1 merged PR(s), 1 PR(s) closed without merging.
- A fix was merged to main in PR #5651. Verify it addresses your case.
- **Recommended:** read PR #5651 (and any competing PRs below) before filing. Confirm the merged change covers your symptom.

## Maintainer resolution verdict

- Internal-tracker verdict over this cluster's issue members: `unresolved`. This is distinct from the fix status above. Weigh it yourself.

## How this cluster was grouped

- Link evidence (`STRUCTURAL_SPANNING`): every member is connected by structural evidence: shared changed files, or a closing/superseded reference.
- Pairwise link density `0.67`: the share of member pairs that carry a link, counting a structural link in full and a relevance-only link at 0.36. `1.00` means every pair is linked.

## Closed / duplicate issues

- #5502: Nix build: \`hermes_logging\` missing from pyproject.toml \`py-modules\` — gateway crashes on NixOS

## Prior & competing PRs

- **#5651: fix(nix): read version, regen uv.lock, fix packages.nix to add hermes_logging**. merged to main · fix tier `verified`
  - maintainer direction: category `merged`
  - files: `nix/nixosModules.nix`, `nix/packages.nix`, `pyproject.toml`
  - fix hunks:
  - `nix/nixosModules.nix`

    ```diff
    @@ -561,7 +561,7 @@
     
           # ── Activation: link config + auth + documents ────────────────────
           {
    -        system.activationScripts."hermes-agent-setup" = lib.stringAfter [ "users" ] ''
    +        system.activationScripts."hermes-agent-setup" = lib.stringAfter [ "users" "setupSecrets" ] ''
               # Ensure directories exist (activation runs before tmpfiles)
               mkdir -p ${cfg.stateDir}/.hermes
               mkdir -p ${cfg.stateDir}/home
    ```
  - `nix/packages.nix`

    ```diff
    @@ -21,7 +21,7 @@
         in {
           packages.default = pkgs.stdenv.mkDerivation {
             pname = "hermes-agent";
    -        version = "0.1.0";
    +        version = (builtins.fromTOML (builtins.readFile ../pyproject.toml)).project.version;
     
             dontUnpack = true;
             dontBuild = true;
    ```
  - `pyproject.toml`

    ```diff
    @@ -102,7 +102,7 @@ hermes-agent = "run_agent:main"
     hermes-acp = "acp_adapter.entry:main"
     
     [tool.setuptools]
    -py-modules = ["run_agent", "model_tools", "toolsets", "batch_runner", "trajectory_compressor", "toolset_distributions", "cli", "hermes_constants", "hermes_state", "hermes_time", "rl_cli", "utils"]
    +py-modules = ["run_agent", "model_tools", "toolsets", "batch_runner", "trajectory_compressor", "toolset_distributions", "cli", "hermes_constants", "hermes_state", "hermes_time", "hermes_logging", "rl_cli", "utils"]
     
     [tool.setuptools.packages.find]
     include = ["agent", "tools", "tools.*", "hermes_cli", "gateway", "gateway.*", "cron", "acp_adapter", "plugins", "plugins.*"]
    ```
  - `uv.lock`

    ```diff
    @@ -10,14 +10,14 @@ resolution-markers = [
     
     [[package]]
     name = "agent-client-protocol"
    -version = "0.8.1"
    +version = "0.9.0"
     source = { registry = "https://pypi.org/simple" }
     dependencies = [
         { name = "pydantic" },
     ]
    -sdist = { url = "https://files.pythonhosted.org/packages/1b/7b/7cdac86db388809d9e3bc58cac88cc7dfa49b7615b98fab304a828cd7f8a/agent_client_protocol-0.8.1.tar.gz", hash = "sha256:1bbf15663bf51f64942597f638e32a6284c5da918055d9672d3510e965143dbd", size = 68866, upload-time = "2026-02-13T15:34:54.567Z" }
    +sdist = { url = "https://files.pythonhosted.org/packages/eb/13/3b893421369767e7043cc115d6ef0df417c298b84563be3a12df0416158d/agent_client_protocol-0.9.0.tar.gz", hash = "sha256:f744c48ab9af0f0b4452e5ab5498d61bcab97c26dbe7d6feec5fd36de49be30b", size = 71853, upload-time = "2026-03-26T01:21:00.379Z" }
     wheels = [
    -    { url = "https://files.pythonhosted.org/packages/4b/f3/219eeca0ad4a20843d4b9eaac5532f87018b9d25730a62a16f54f6c52d1a/agent_client_protocol-0.8.1-py3-none-any.whl", hash = "sha256:9421a11fd435b4831660272d169c3812d553bb7247049c138c3ca127e4b8af8e", size = 54529, upload-time = "2026-02-13T15:34:53.344Z" },
    +    { url = "https://files.pythonhosted.org/packages/8f/ed/c284543c08aa443a4ef2c8bd120be51da8433dd174c01749b5d87c333f22/agent_client_protocol-0.9.0-py3-none-any.whl", hash = "sha256:06911500b51d8cb69112544e2be01fc5e7db39ef88fecbc3848c5c6f194798ee", size = 56850, upload-time = "2026-03-26T01:20:59.252Z" },
     ]
     
     [[package]]
    ```

    ```diff
    @@ -1725,6 +1725,7 @@ honcho = [
         { name = "honcho-ai" },
     ]
     matrix = [
    +    { name = "markdown" },
         { name = "matrix-nio", extra = ["e2e"] },
     ]
     mcp = [
    ```

    ```diff
    @@ -1772,7 +1773,7 @@ yc-bench = [
     
     [package.metadata]
     requires-dist = [
    -    { name = "agent-client-protocol", marker = "extra == 'acp'", specifier = ">=0.8.1,<0.9" },
    +    { name = "agent-client-protocol", marker = "extra == 'acp'", specifier = ">=0.9.0,<1.0" },
         { name = "aiohttp", marker = "extra == 'homeassistant'", specifier = ">=3.9.0,<4" },
         { name = "aiohttp", marker = "extra == 'messaging'", specifier = ">=3.13.3,<4" },
         { name = "aiohttp", marker = "extra == 'sms'", specifier = ">=3.9.0,<4" },
    ```

    ```diff
    @@ -1812,6 +1813,7 @@ requires-dist = [
         { name = "httpx", specifier = ">=0.28.1,<1" },
         { name = "jinja2", specifier = ">=3.1.5,<4" },
         { name = "lark-oapi", marker = "extra == 'feishu'", specifier = ">=1.5.3,<2" },
    +    { name = "markdown", marker = "extra == 'matrix'", specifier = ">=3.6,<4" },
         { name = "matrix-nio", extras = ["e2e"], marker = "extra == 'matrix'", specifier = ">=0.24.0,<1" },
         { name = "mcp", marker = "extra == 'dev'", specifier = ">=1.2.0,<2" },
         { name = "mcp", marker = "extra == 'mcp'", specifier = ">=1.2.0,<2" },
    ```
- **#5642: fix(nix): add hermes_logging to py-modules in pyproject.toml**. closed without merge
  - maintainer direction: category `implemented_elsewhere`; implication `superseded`; refs `#5651`

## Fix status

- Merged to main in PR #5651 (cited above). No release data is tracked. Verify downstream.
- Fix last verified (merged) `2026-04-06`. This confirmation is old and may be out of date (a revert/reopen would not have invalidated it here); re-verify.
- Subsystem: `environments`
