Skip to content

Conversation

@stippi
Copy link
Owner

@stippi stippi commented Nov 10, 2025

No description provided.

- CLI and run configs now accept/persist sandbox policies, and README/docs describe the flags. - Session configs/tests
carry sandbox settings, and command execution is wrapped by the new SandboxedCommandExecutor to honor policies. -
Utility modules and docs were updated to reflect the new crate boundaries and sandbox scaffolding.
... already given in lib.rs before including the module.
- Added a real macOS seatbelt pipeline: SandboxedCommandExecutor now wraps restricted policies by spawning
/usr/bin/sandbox-exec with a generated SBPL derived from SessionConfig.sandbox_policy. See
crates/code_assistant/src/utils/sandboxed_executor.rs and the new policy builder in crates/sandbox/src/seatbelt.rs (+
embedded .sbpl profiles). Non-macOS hosts still fall back with a warning. - Covered the new behavior with integration
tests in crates/code_assistant/src/tests/sandbox_tests.rs, verifying read-only denial, workspace-root allowance, and
path-escape blocking. - Exposed sandbox selection end-to-end in the GPUI: a new SandboxSelector component
(crates/code_assistant/src/ui/gpui/sandbox_selector.rs) sits beside the model selector, InputArea emits SandboxChanged,
backend persists it via the new BackendEvent::ChangeSandboxPolicy, SessionManager stores it, and UI updates arrive
through UiEvent::UpdateSandboxPolicy. RootView keeps the dropdown in sync per session, and terminal/ACP backends handle
the new responses. Key wiring touches include crates/code_assistant/src/ui/backend.rs,
crates/code_assistant/src/session/manager.rs, crates/code_assistant/src/ui/gpui/{input_area.rs,root.rs,mod.rs},
crates/code_assistant/src/ui/ui_events.rs, and terminal state.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants