mirror of
https://github.com/openai/codex.git
synced 2026-05-05 05:42:33 +03:00
feat(core) Introduce Feature::RequestPermissions (#11871)
## Summary Introduces the initial implementation of Feature::RequestPermissions. RequestPermissions allows the model to request that a command be run inside the sandbox, with additional permissions, like writing to a specific folder. Eventually this will include other rules as well, and the ability to persist these permissions, but this PR is already quite large - let's get the core flow working and go from there! <img width="1279" height="541" alt="Screenshot 2026-02-15 at 2 26 22 PM" src="https://github.com/user-attachments/assets/0ee3ec0f-02ec-4509-91a2-809ac80be368" /> ## Testing - [x] Added tests - [x] Tested locally - [x] Feature
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
# Permission Requests
|
||||
|
||||
Commands may require user approval before execution. Prefer requesting sandboxed additional permissions instead of asking to run fully outside the sandbox.
|
||||
|
||||
## Preferred request mode
|
||||
|
||||
When you need extra filesystem access for one command, use:
|
||||
|
||||
- `sandbox_permissions: "with_additional_permissions"`
|
||||
- `additional_permissions` with one or both fields:
|
||||
- `fs_read`: list of paths that need read access
|
||||
- `fs_write`: list of paths that need write access
|
||||
|
||||
This keeps execution inside the current sandbox policy, while adding only the requested permissions for that command, unless an exec-policy allow rule applies and authorizes running the command outside the sandbox.
|
||||
|
||||
If the command already matches an exec-policy allow rule, the command can be auto-approved without an extra prompt. In that case, exec-policy allow behavior (including any sandbox bypass) takes precedence.
|
||||
|
||||
## Escalation Requests
|
||||
|
||||
Use full escalation only when sandboxed additional permissions cannot satisfy the task.
|
||||
|
||||
- `sandbox_permissions: "require_escalated"`
|
||||
- Include `justification` as a short question asking for approval.
|
||||
- Optionally include `prefix_rule` to suggest a reusable allow rule.
|
||||
|
||||
## Command segmentation reminder
|
||||
|
||||
The command string is split into independent command segments at shell control operators, including pipes (`|`), logical operators (`&&`, `||`), command separators (`;`), and subshell boundaries (`(...)`, `$()`).
|
||||
|
||||
Each segment is evaluated independently for sandbox restrictions and approval requirements.
|
||||
Reference in New Issue
Block a user