Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
2af210d
feat(exec): add process sandboxing for mise x and mise run
jdx Apr 2, 2026
fca8c6d
fix: sort sandbox CLI flags alphabetically
jdx Apr 2, 2026
71c78e0
docs: fix mise run flag ordering in sandbox docs
jdx Apr 2, 2026
01dea1e
refactor(sandbox): use system path prefixes instead of walking PATH
jdx Apr 2, 2026
4375f4f
refactor(sandbox): tighten default read paths
jdx Apr 2, 2026
8155f4a
fix(sandbox): fix /dev write access under deny-read and macOS cmd bugs
jdx Apr 2, 2026
3464d28
[autofix.ci] apply automated fixes
autofix-ci[bot] Apr 2, 2026
db5beca
fix(sandbox): use mise env for data dir instead of dirs crate on macOS
jdx Apr 2, 2026
180a91d
fix(sandbox): resolve hostnames to IPs for Seatbelt profiles on macOS
jdx Apr 2, 2026
92fcaf9
refactor(sandbox): use tokio for parallel DNS resolution on macOS
jdx Apr 2, 2026
a973ac8
refactor(sandbox): make exec_program async instead of block_in_place
jdx Apr 2, 2026
8e567a0
refactor(sandbox): make apply_sandbox async, remove block_in_place
jdx Apr 2, 2026
9c6de0d
fix(sandbox): fix self_update dep, raw mode stdio, merge macOS CI jobs
jdx Apr 2, 2026
049ec1c
fix(sandbox): bail on --allow-net=<host> on Linux instead of silently…
jdx Apr 2, 2026
2052009
[autofix.ci] apply automated fixes
autofix-ci[bot] Apr 2, 2026
791a900
fix(sandbox): fix Landlock over-restricting writes and SBPL injection
jdx Apr 2, 2026
0bf5c63
[autofix.ci] apply automated fixes
autofix-ci[bot] Apr 2, 2026
4acdd92
fix(sandbox): fix deny-all e2e test on macOS
jdx Apr 2, 2026
e5d5791
fix(sandbox): fix non-existent allow paths, env_clear ordering, redun…
jdx Apr 2, 2026
5348964
fix(sandbox): fix deny-read /tmp access, SBPL rule ordering, path war…
jdx Apr 2, 2026
9ddd1a5
fix(sandbox): allow dead_code for platform-specific sandbox types
jdx Apr 2, 2026
a3056b7
fix(sandbox): fix deny-read test and narrow macOS /private access
jdx Apr 2, 2026
b34db8d
fix(sandbox): fail hard when kernel sandbox features unavailable
jdx Apr 2, 2026
30e3882
[autofix.ci] apply automated fixes
autofix-ci[bot] Apr 2, 2026
e80ac94
[autofix.ci] apply automated fixes (attempt 2/3)
autofix-ci[bot] Apr 2, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 30 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,31 @@ jobs:
- uses: ./.github/actions/mise-tools
- run: mise x -- cargo test --all-features

macos-e2e:
runs-on: macos-latest
timeout-minutes: 30
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
with:
repository: ${{ github.event.pull_request.head.repo.full_name }}
ref: ${{ github.head_ref }}
- uses: Swatinem/rust-cache@98c8021b550208e191a6a3145459bfc9fb29c4c0 # v2
with:
shared-key: build
save-if: false
- name: Install fd
run: brew install fd
- run: |
cargo build --all-features
echo "$PWD/target/debug" >> "$GITHUB_PATH"
- uses: ./.github/actions/mise-tools
- name: Run sandbox e2e tests
run: |
for test in e2e/sandbox/test_sandbox_*; do
echo "Running $test..."
./e2e/run_test "$test"
done

nightly:
runs-on: ubuntu-latest
timeout-minutes: 10
Expand Down Expand Up @@ -249,6 +274,7 @@ jobs:
- build-ubuntu
- build-windows
- unit
- macos-e2e
- nightly
- lint
- coverage
Expand All @@ -270,6 +296,10 @@ jobs:
echo "unit failed or was skipped"
exit 1
fi
if [ "${{ needs.macos-e2e.result }}" != "success" ]; then
echo "macos-e2e failed or was skipped"
exit 1
fi
if [ "${{ needs.nightly.result }}" != "success" ]; then
echo "nightly failed or was skipped"
exit 1
Expand Down
76 changes: 59 additions & 17 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 4 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -204,6 +204,10 @@ zstd = "0.13"
[target.'cfg(unix)'.dependencies]
exec = "0.3"
nix = { version = "0.30", features = ["signal", "term", "user"] }

[target.'cfg(target_os = "linux")'.dependencies]
landlock = "0.4"
seccompiler = "0.5"
self_update = { version = "0.42", optional = true, default-features = false, features = [
"archive-tar",
"compression-flate2",
Expand Down
1 change: 1 addition & 0 deletions docs/.vitepress/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -147,6 +147,7 @@ export default withMermaid(
{ text: "Task Configuration", link: "/tasks/task-configuration" },
{ text: "Task Templates", link: "/tasks/templates" },
{ text: "Monorepo Tasks", link: "/tasks/monorepo" },
{ text: "Sandboxing", link: "/sandboxing" },
],
},
{
Expand Down
Loading
Loading