- 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)
The processpool executor tests assert specific signal exit codes that
differ inside the nix build sandbox. Same class of issue as the existing
sanic/cherrypy/pytest-services overrides.
Fixes#2
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Upstream removed minisweagent_path.py in favor of mini_swe_runner.py,
breaking the nightly-package-contents check. Accept either module name
in checks and ensure both are patched into pyproject.toml py-modules.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
litellm on PyPI has been reported as compromised. The upstream
hermes-agent v0.4.0 already dropped it from its dependencies.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
`toString` converts a Nix path to a string without registering it as a
build input, causing "custom skill source not found" errors in the Nix
sandbox. String interpolation properly copies the path to the store.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
copytree makes files read-only in Nix sandbox; rglob("DESCRIPTION.md")
then tries to overwrite skill-level copies → PermissionError. chmod
0o644 before copy2 to handle already-existing read-only targets.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
When bundled.include is set to a non-empty list, only the listed skills
are installed from the upstream bundled skills directory. When empty
(default), all bundled skills are installed (existing behavior).
Invalid include paths cause a build error with available skills listed.
DESCRIPTION.md files are only copied for categories that have at least
one included skill.
sanic 25.12.0 in nixpkgs has a flaky test_keep_alive_client_timeout
that fails in sandbox builds. Override the python package set to skip
sanic's tests — they're upstream's problem, not ours.
Cascade was: sanic → sanic-testing → slack-bolt → hermes-agent → all checks.
- Patch upstream pyproject.toml to include minisweagent_path in py-modules
- Copy mini-swe-agent/src/minisweagent into package for importability
- Add 3 nix checks: package-contents, cli-commands, doctor
- All binaries tested: hermes, hermes-agent, hermes-acp
- hermes gateway, config, status, claw migrate all verified working