mirror of
https://github.com/abhigyanpatwari/GitNexus.git
synced 2026-10-30 06:42:43 +00:00
Surfaced by the first real workflow_dispatch run on the self-hosted runner (https://github.com/abhigyanpatwari/GitNexus/actions/runs/29836411744): every session failed with error_kind infra-error, error_detail "bwrap: execvp /usr/local/bin/node: No such file or directory", tripping the outage-streak breaker after 5 consecutive failures. sanitized_graph.py and runner_sessions.py invoke the sandboxed graph CLI at the fixed path /usr/local/bin/node. _runtime_mount_args only binds /usr, /bin, /lib, /lib64 wholesale, so that path resolves correctly when node happens to live under /usr/local/bin on the host -- true on GitHub-hosted runner images, but not on a self-hosted runner, where actions/setup-node installs into its own tool-cache directory instead (outside all four bound trees, so invisible to the sandbox regardless of what PATH says on the host). Fix lives entirely in the mount construction: resolve `node` via shutil.which (correctly picks up wherever actions/setup-node put it, since its tool-cache dir is already on PATH by the time this runs) and bind it read-only to the same fixed sandbox path the two call sites already expect. Neither call site needed to change. Backward compatible with GitHub-hosted runners, where this resolves to the same path and binds a harmless no-op self-mount. Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| __init__.py | ||
| conftest.py | ||
| test_ce_plugin_runtime.py | ||
| test_errors.py | ||
| test_evolve.py | ||
| test_mcp_bridge.py | ||
| test_oracle_assets.py | ||
| test_parse_run_id.py | ||
| test_process_control.py | ||
| test_promotion_apply.py | ||
| test_property_based.py | ||
| test_proposer_sandbox.py | ||
| test_runner_hardening.py | ||
| test_sanitized_graph.py | ||
| test_task_assets.py | ||
| test_tool_scripts.py | ||
| test_workflow_bench.py | ||
| test_workflow_bench_evolution.py | ||
| test_workflow_bench_sessions.py | ||