core: preserve constrained approval/sandbox policies in TurnContext (#12473)

This commit is contained in:
Michael Bolin
2026-02-21 14:40:24 -08:00
committed by GitHub
Unverified
parent f33ac830aa
commit 66d5d34e6e
13 changed files with 112 additions and 61 deletions
+6 -2
View File
@@ -193,8 +193,12 @@ mod tests {
async fn test_session_and_turn() -> (Arc<Session>, Arc<TurnContext>) {
let (session, mut turn) = make_session_and_context().await;
turn.approval_policy = AskForApproval::Never;
turn.sandbox_policy = SandboxPolicy::DangerFullAccess;
turn.approval_policy
.set(AskForApproval::Never)
.expect("test setup should allow updating approval policy");
turn.sandbox_policy
.set(SandboxPolicy::DangerFullAccess)
.expect("test setup should allow updating sandbox policy");
(Arc::new(session), Arc::new(turn))
}
@@ -576,8 +576,8 @@ impl UnifiedExecProcessManager {
.exec_policy
.create_exec_approval_requirement_for_command(ExecApprovalRequest {
command: &request.command,
approval_policy: context.turn.approval_policy,
sandbox_policy: &context.turn.sandbox_policy,
approval_policy: context.turn.approval_policy.value(),
sandbox_policy: context.turn.sandbox_policy.get(),
sandbox_permissions: request.sandbox_permissions,
prefix_rule: request.prefix_rule.clone(),
})
@@ -605,7 +605,7 @@ impl UnifiedExecProcessManager {
&req,
&tool_ctx,
context.turn.as_ref(),
context.turn.approval_policy,
context.turn.approval_policy.value(),
)
.await
.map(|result| (result.output, result.deferred_network_approval))