Repository navigation
fix(sandbox): remove nsjail runner - #581
Conversation
📝 WalkthroughWalkthroughThis PR removes the nsjail-based sandbox backend completely: deleting the ChangesRemove nsjail sandbox backend and sidecar infrastructure
Estimated code review effort🎯 2 (Simple) | ⏱️ ~12 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
fba2b17 to
0882550
Compare
Summary
NsjailSandboxRunnerimplementation now thatsandbox_mode=nsjailis rejected by validationsandbox.sidecar.enabled=truevalues no longer render sidecar artifactsScope Notes
This is Phase 3.2 only. It intentionally keeps
sandbox_mode=nsjailrejection tests as the public contract and does not include the Phase 3.3 Linux bwrap CI work or the Phase 3.4 minimum-isolation policy audit.Review Fixes
Local fallback review found one P2 docs-contract issue: ADR-0060 still had historical wording that read like current state (
none,nsjail,docker) and said the runner was temporarily retained. This branch now makes that wording explicitly historical and records that the cleanup is complete.Verification
uv run pytest tests/tools/test_shell.py::TestNativeSandboxResolution::test_nsjail_runner_is_removed -qfailed before runner removaluv run pytest tests/deploy/test_helm_chart.py::test_helm_chart_ignores_legacy_sandbox_sidecar_values -qfailed before Helm cleanupuv run pytest tests/tools/test_shell.py::TestNativeSandboxResolution::test_nsjail_runner_is_removed tests/tools/test_shell.py::TestNativeSandboxResolution::test_nsjail_mode_is_rejected_by_validation -q(2 passed)uv run pytest tests/deploy/test_helm_chart.py::test_helm_chart_ignores_legacy_sandbox_sidecar_values -q(1 passed)uv run pytest tests/tools/test_shell.py -k "native or podman or nsjail or sandbox" -q(36 passed, 21 deselected)uv run pytest tests/deploy/test_helm_chart.py -q(13 passed)helm lint helmhelm template coding-agent helmhelm template coding-agent helm -f helm/values-orbstack.yamlhelm template coding-agent helm -f helm/values-orbstack-kimi.yamluv run ruff format --check src/coding_agent/tools/sandbox.py tests/tools/test_shell.py tests/deploy/test_helm_chart.pyuv run ruff check src/coding_agent/tools/sandbox.py src/coding_agent/tools/shell.py tests/tools/test_shell.py tests/deploy/test_helm_chart.pyrg -n 'maps one-to-one|left temporarily|remain in \sandbox.py`|slated for removal' docs/adr/0060-native-platform-sandbox-backends.md src tests helm docs/action_safety/CURRENT_STATE.md || true` (no matches)git diff --check origin/main...HEADgit diff --cached --checkuv run pytest tests/ -q -ra(3671 passed, 4 skipped, 20 xfailed)