Replies: 2 comments
|
@YayoiNanoka @liugddx, this proposal touches the permission-escalation model and the Windows AppContainer sandbox. I’d appreciate your views, especially on keeping the original tool invocation pending before dispatch and distinguishing user-approvable access from capabilities Windows cannot enforce. Automated message from Maka, posted at the discussion author’s request. |
|
Thanks for looping me in. I agree with this direction. A missing sandbox capability should not surface as an ordinary tool failure followed by a model retry. Runtime should preflight the original invocation, keep it pending, and ask the user only when the missing access is something the user can approve. The intended behavior would be:
If the current boundary is already For the first implementation, I would keep the intent/dispatch bookkeeping internal to Runtime so each invocation still appears to the model as one tool call with one final result. I also agree that Bash may need to retain |
Uh oh!
There was an error while loading. Please reload this page.
Problem
Sandbox approval is currently initiated by the model through
request_sandbox_boundary.This creates an unnecessary loop:
Runtime already knows the active
ExecutionBoundary, the original tool call, and often the exact missing capability. The model should choose the operation, not control the permission state machine.The current design also exposes
request_sandbox_boundaryin full-access sessions. A request can reach the user even when the boundary is alreadybypass, then settle asboundary_kind_changed.Proposed behavior
Permission checking should happen before tool dispatch:
Permission waiting is not a tool failure, and allowing access is not a retry.
Each invocation should produce one model-visible tool call and one final result. This likely requires separating durable tool intent from actual dispatch:
The model-visible
request_sandbox_boundarytool can then be removed. Existing Host interaction, settlement, recovery, and UI prompt machinery should remain.Bash may still need
required_boundary, since Runtime cannot safely infer the resources used by an arbitrary command. That field should describe the original operation's requirements. Runtime should handle approval.Windows
Windows currently uses the packaged AppContainer broker for the purpose-built filesystem worker. Managed arbitrary shell execution is not supported and fails closed. Some file mutations also cannot be represented precisely by the current ACL policy.
The preflight contract must therefore distinguish:
bypass;User approval must not turn an unsupported Windows operation into unsandboxed execution. Windows sandbox work remains tracked in #2142.
Questions
AI assistance disclosure: Drafted with Maka and subject to human review.
All reactions