From 60d7bbf1025db706c885ca7d00f0eac8e0ee3085 Mon Sep 17 00:00:00 2001 From: 0xrsydn <78522797+0xrsydn@users.noreply.github.com> Date: Thu, 13 Aug 2026 05:55:14 +0000 Subject: [PATCH 1/2] chore: update Hermes Agent stable candidate --- package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package.nix b/package.nix index e6748d9..be47502 100644 --- a/package.nix +++ b/package.nix @@ -9,9 +9,9 @@ ripgrep, ffmpeg, git, - pinVersion ? "0.19.0", - pinRev ? "3ef6bbd201263d354fd83ec55b3c306ded2eb72a", - pinHash ? "sha256-QJEiBOLAVGeYBym4EUtnDgeIyJyDQWgmat70/yujiz4=", + pinVersion ? "0.20.0", + pinRev ? "3c27eb6234bf91b8ceee9e9071591b31e9b148cb", + pinHash ? "sha256-S6TSGgpf37N8YgbTv70dT+LaPiiaQ4/lJV+js2hnCPk=", }: let From 32801e3c36085cf7684b777d69f92a5ce03236d5 Mon Sep 17 00:00:00 2001 From: hermes Date: Thu, 13 Aug 2026 05:44:58 +0000 Subject: [PATCH 2/2] fix: build hermes-agent 0.20.0 stable candidate - relax setuptools==83.0.0 pin (nixpkgs ships 80.10.1) in postPatch - set HERMES_NIX_BUILD=1: upstream setup.py refuses wheel builds without it - disable slack-bolt 1.27.0 tests: crash at interpreter shutdown in sandbox - package nemo-relay 0.6.0 from its manylinux abi3 wheel (not in nixpkgs) --- package.nix | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/package.nix b/package.nix index be47502..bdcddc9 100644 --- a/package.nix +++ b/package.nix @@ -4,6 +4,7 @@ python312, fetchFromGitHub, fetchPypi, + fetchurl, makeWrapper, nodejs_22, ripgrep, @@ -34,6 +35,11 @@ let # apscheduler processpool tests fail in the nix sandbox (signal handling) doCheck = false; }); + slack-bolt = prev.slack-bolt.overridePythonAttrs (_old: { + # slack-bolt 1.27.0 tests crash at interpreter shutdown in the nix + # sandbox (_enter_buffered_busy: could not acquire lock for stderr) + doCheck = false; + }); tenacity = prev.tenacity.overridePythonAttrs (_old: rec { # hermes-agent >=0.4.0 requires tenacity >=9.1.4; nixpkgs has 9.1.2 version = "9.1.4"; @@ -135,6 +141,21 @@ let pythonImportsCheck = [ "parallel" ]; }; + nemo-relay = pythonPackages.buildPythonPackage rec { + pname = "nemo-relay"; + version = "0.6.0"; + # Upstream 0.6.x ships only compiled abi3 wheels on PyPI (no buildable + # sdist for the Nix sandbox); the prebuilt manylinux wheel has no base + # runtime dependencies. + format = "wheel"; + src = fetchurl { + url = "https://files.pythonhosted.org/packages/a3/f4/d1dfaed022da0f6f14765a122867f976a69cc520fe1faaf99757f5719d1f/nemo_relay-0.6.0-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl"; + hash = "sha256-hJ2qnkUVisWB5UUG4PzHok9VfR7Qbb3AdPXeegA5PLw="; + }; + doCheck = false; + pythonImportsCheck = [ "nemo_relay" ]; + }; + agent-client-protocol = pythonPackages.buildPythonPackage rec { pname = "agent-client-protocol"; version = "0.8.1"; @@ -171,6 +192,10 @@ pythonPackages.buildPythonApplication { build-system = [ pythonPackages.setuptools ]; + # Upstream setup.py refuses wheel builds unless HERMES_NIX_BUILD=1 is set; + # their nix/python.nix sets it in the build sandbox (see setup.py ~line 32). + env.HERMES_NIX_BUILD = "1"; + # litellm is compromised — strip it from wheel metadata so pythonRuntimeDepsCheck passes pythonRemoveDeps = [ "litellm" ]; pythonRelaxDeps = true; @@ -231,6 +256,8 @@ pythonPackages.buildPythonApplication { mcp # ACP agent-client-protocol + # Relay (lazy-imported per profile via agent/relay_runtime.py) + nemo-relay ]; nativeBuildInputs = [ makeWrapper ]; @@ -241,6 +268,10 @@ pythonPackages.buildPythonApplication { # Upstream pyproject.toml may be missing minisweagent_path / mini_swe_runner # from py-modules. Also ensure mini-swe-agent/src is importable. postPatch = '' + # Relax pinned build backend: upstream requires setuptools==83.0.0, nixpkgs + # (locked c06b4ae) ships 80.10.1; the exact pin fails the pypa build check. + sed -i 's/setuptools==83.0.0/setuptools>=80/' pyproject.toml + # Fix: add minisweagent_path.py to py-modules if missing from pyproject.toml if [ -f minisweagent_path.py ] && ! grep -q minisweagent_path pyproject.toml; then sed -i 's/py-modules = \[/py-modules = ["minisweagent_path", /' pyproject.toml