mirror of
https://github.com/openai/codex.git
synced 2026-10-22 17:58:46 +00:00
Merge 11f94d436d into sapling-pr-archive-bolinfest
This commit is contained in:
@@ -6689,7 +6689,7 @@ impl CodexMessageProcessor {
|
||||
cwd: cwd.clone(),
|
||||
approval_policy,
|
||||
approvals_reviewer,
|
||||
permission_profile: permission_profile_for_validation,
|
||||
permission_profile: permission_profile_for_validation.clone(),
|
||||
active_permission_profile: active_permission_profile.clone(),
|
||||
clear_active_permission_profile: sandbox_policy.is_some(),
|
||||
windows_sandbox_level: None,
|
||||
@@ -6716,9 +6716,9 @@ impl CodexMessageProcessor {
|
||||
cwd,
|
||||
approval_policy,
|
||||
approvals_reviewer,
|
||||
sandbox_policy,
|
||||
permission_profile,
|
||||
permission_profile: permission_profile_for_validation,
|
||||
active_permission_profile,
|
||||
clear_active_permission_profile: sandbox_policy.is_some(),
|
||||
windows_sandbox_level: None,
|
||||
model,
|
||||
effort,
|
||||
|
||||
@@ -34,7 +34,6 @@ use crate::tasks::execute_user_shell_command;
|
||||
use codex_mcp::collect_mcp_snapshot_from_manager;
|
||||
use codex_mcp::compute_auth_statuses;
|
||||
use codex_protocol::models::ContentItem;
|
||||
use codex_protocol::models::PermissionProfile;
|
||||
use codex_protocol::models::ResponseInputItem;
|
||||
use codex_protocol::protocol::CodexErrorInfo;
|
||||
use codex_protocol::protocol::ErrorEvent;
|
||||
@@ -51,7 +50,6 @@ use codex_protocol::protocol::RealtimeVoicesList;
|
||||
use codex_protocol::protocol::ReviewDecision;
|
||||
use codex_protocol::protocol::ReviewRequest;
|
||||
use codex_protocol::protocol::RolloutItem;
|
||||
use codex_protocol::protocol::SandboxPolicy;
|
||||
use codex_protocol::protocol::SkillErrorInfo;
|
||||
use codex_protocol::protocol::SkillsListEntry;
|
||||
use codex_protocol::protocol::ThreadMemoryMode;
|
||||
@@ -73,7 +71,6 @@ use codex_protocol::user_input::UserInput;
|
||||
use codex_rmcp_client::ElicitationAction;
|
||||
use codex_rmcp_client::ElicitationResponse;
|
||||
use serde_json::Value;
|
||||
use std::path::Path;
|
||||
use std::path::PathBuf;
|
||||
use std::sync::Arc;
|
||||
use tracing::debug;
|
||||
@@ -181,9 +178,9 @@ pub(super) async fn user_input_or_turn_inner(
|
||||
cwd,
|
||||
approval_policy,
|
||||
approvals_reviewer,
|
||||
sandbox_policy,
|
||||
permission_profile,
|
||||
active_permission_profile,
|
||||
clear_active_permission_profile,
|
||||
windows_sandbox_level,
|
||||
model,
|
||||
effort,
|
||||
@@ -207,15 +204,6 @@ pub(super) async fn user_input_or_turn_inner(
|
||||
.with_updates(model, effort, /*developer_instructions*/ None),
|
||||
)
|
||||
};
|
||||
let clear_active_permission_profile =
|
||||
permission_profile.is_none() && sandbox_policy.is_some();
|
||||
let permission_profile = permission_profile_with_legacy_fallback(
|
||||
sess,
|
||||
sandbox_policy.as_ref(),
|
||||
permission_profile,
|
||||
cwd.as_deref(),
|
||||
)
|
||||
.await;
|
||||
(
|
||||
items,
|
||||
SessionSettingsUpdate {
|
||||
@@ -305,26 +293,6 @@ pub(super) async fn user_input_or_turn_inner(
|
||||
}
|
||||
}
|
||||
|
||||
async fn permission_profile_with_legacy_fallback(
|
||||
sess: &Session,
|
||||
sandbox_policy: Option<&SandboxPolicy>,
|
||||
permission_profile: Option<PermissionProfile>,
|
||||
cwd: Option<&Path>,
|
||||
) -> Option<PermissionProfile> {
|
||||
match (permission_profile, sandbox_policy) {
|
||||
(Some(permission_profile), _) => Some(permission_profile),
|
||||
(None, Some(sandbox_policy)) => {
|
||||
let state = sess.state.lock().await;
|
||||
Some(
|
||||
state
|
||||
.session_configuration
|
||||
.permission_profile_from_legacy_sandbox_update(sandbox_policy, cwd),
|
||||
)
|
||||
}
|
||||
(None, None) => None,
|
||||
}
|
||||
}
|
||||
|
||||
async fn mirror_user_text_to_realtime(sess: &Arc<Session>, items: &[UserInput]) {
|
||||
let text = UserMessageItem::new(items).message();
|
||||
if text.is_empty() {
|
||||
@@ -1050,8 +1018,8 @@ pub(super) async fn submission_loop(
|
||||
cwd,
|
||||
approval_policy,
|
||||
approvals_reviewer,
|
||||
sandbox_policy,
|
||||
permission_profile,
|
||||
clear_active_permission_profile,
|
||||
windows_sandbox_level,
|
||||
model,
|
||||
effort,
|
||||
@@ -1070,15 +1038,6 @@ pub(super) async fn submission_loop(
|
||||
/*developer_instructions*/ None,
|
||||
)
|
||||
};
|
||||
let clear_active_permission_profile =
|
||||
permission_profile.is_none() && sandbox_policy.is_some();
|
||||
let permission_profile = permission_profile_with_legacy_fallback(
|
||||
&sess,
|
||||
sandbox_policy.as_ref(),
|
||||
permission_profile,
|
||||
cwd.as_deref(),
|
||||
)
|
||||
.await;
|
||||
override_turn_context(
|
||||
&sess,
|
||||
sub.id.clone(),
|
||||
|
||||
@@ -127,24 +127,6 @@ impl SessionConfiguration {
|
||||
self.permission_profile.get().network_sandbox_policy()
|
||||
}
|
||||
|
||||
pub(super) fn permission_profile_from_legacy_sandbox_update(
|
||||
&self,
|
||||
sandbox_policy: &SandboxPolicy,
|
||||
cwd: Option<&Path>,
|
||||
) -> PermissionProfile {
|
||||
let file_system_sandbox_policy =
|
||||
FileSystemSandboxPolicy::from_legacy_sandbox_policy_preserving_deny_entries(
|
||||
sandbox_policy,
|
||||
self.resolved_update_cwd(cwd).as_path(),
|
||||
&self.file_system_sandbox_policy(),
|
||||
);
|
||||
PermissionProfile::from_runtime_permissions_with_enforcement(
|
||||
SandboxEnforcement::from_legacy_sandbox_policy(sandbox_policy),
|
||||
&file_system_sandbox_policy,
|
||||
NetworkSandboxPolicy::from(sandbox_policy),
|
||||
)
|
||||
}
|
||||
|
||||
pub(super) fn thread_config_snapshot(&self) -> ThreadConfigSnapshot {
|
||||
ThreadConfigSnapshot {
|
||||
model: self.collaboration_mode.model().to_string(),
|
||||
|
||||
@@ -1685,7 +1685,7 @@ async fn fork_startup_context_then_first_turn_diff_snapshot() -> anyhow::Result<
|
||||
cwd: None,
|
||||
approval_policy: Some(AskForApproval::Never),
|
||||
approvals_reviewer: None,
|
||||
sandbox_policy: None,
|
||||
clear_active_permission_profile: false,
|
||||
permission_profile: None,
|
||||
windows_sandbox_level: None,
|
||||
model: None,
|
||||
@@ -4182,7 +4182,7 @@ fn op_kind_distinguishes_turn_ops() {
|
||||
cwd: None,
|
||||
approval_policy: None,
|
||||
approvals_reviewer: None,
|
||||
sandbox_policy: None,
|
||||
clear_active_permission_profile: false,
|
||||
permission_profile: None,
|
||||
windows_sandbox_level: None,
|
||||
model: None,
|
||||
@@ -4214,7 +4214,7 @@ fn op_kind_distinguishes_turn_ops() {
|
||||
cwd: None,
|
||||
approval_policy: None,
|
||||
approvals_reviewer: None,
|
||||
sandbox_policy: None,
|
||||
clear_active_permission_profile: false,
|
||||
permission_profile: None,
|
||||
active_permission_profile: None,
|
||||
windows_sandbox_level: None,
|
||||
|
||||
@@ -128,7 +128,7 @@ async fn user_input_includes_collaboration_instructions_after_override() -> Resu
|
||||
cwd: None,
|
||||
approval_policy: None,
|
||||
approvals_reviewer: None,
|
||||
sandbox_policy: None,
|
||||
clear_active_permission_profile: false,
|
||||
permission_profile: None,
|
||||
windows_sandbox_level: None,
|
||||
model: None,
|
||||
@@ -234,7 +234,7 @@ async fn override_then_next_turn_uses_updated_collaboration_instructions() -> Re
|
||||
cwd: None,
|
||||
approval_policy: None,
|
||||
approvals_reviewer: None,
|
||||
sandbox_policy: None,
|
||||
clear_active_permission_profile: false,
|
||||
permission_profile: None,
|
||||
windows_sandbox_level: None,
|
||||
model: None,
|
||||
@@ -293,7 +293,7 @@ async fn user_turn_overrides_collaboration_instructions_after_override() -> Resu
|
||||
cwd: None,
|
||||
approval_policy: None,
|
||||
approvals_reviewer: None,
|
||||
sandbox_policy: None,
|
||||
clear_active_permission_profile: false,
|
||||
permission_profile: None,
|
||||
windows_sandbox_level: None,
|
||||
model: None,
|
||||
@@ -366,7 +366,7 @@ async fn collaboration_mode_update_emits_new_instruction_message() -> Result<()>
|
||||
cwd: None,
|
||||
approval_policy: None,
|
||||
approvals_reviewer: None,
|
||||
sandbox_policy: None,
|
||||
clear_active_permission_profile: false,
|
||||
permission_profile: None,
|
||||
windows_sandbox_level: None,
|
||||
model: None,
|
||||
@@ -396,7 +396,7 @@ async fn collaboration_mode_update_emits_new_instruction_message() -> Result<()>
|
||||
cwd: None,
|
||||
approval_policy: None,
|
||||
approvals_reviewer: None,
|
||||
sandbox_policy: None,
|
||||
clear_active_permission_profile: false,
|
||||
permission_profile: None,
|
||||
windows_sandbox_level: None,
|
||||
model: None,
|
||||
@@ -455,7 +455,7 @@ async fn collaboration_mode_update_noop_does_not_append() -> Result<()> {
|
||||
cwd: None,
|
||||
approval_policy: None,
|
||||
approvals_reviewer: None,
|
||||
sandbox_policy: None,
|
||||
clear_active_permission_profile: false,
|
||||
permission_profile: None,
|
||||
windows_sandbox_level: None,
|
||||
model: None,
|
||||
@@ -485,7 +485,7 @@ async fn collaboration_mode_update_noop_does_not_append() -> Result<()> {
|
||||
cwd: None,
|
||||
approval_policy: None,
|
||||
approvals_reviewer: None,
|
||||
sandbox_policy: None,
|
||||
clear_active_permission_profile: false,
|
||||
permission_profile: None,
|
||||
windows_sandbox_level: None,
|
||||
model: None,
|
||||
@@ -543,7 +543,7 @@ async fn collaboration_mode_update_emits_new_instruction_message_when_mode_chang
|
||||
cwd: None,
|
||||
approval_policy: None,
|
||||
approvals_reviewer: None,
|
||||
sandbox_policy: None,
|
||||
clear_active_permission_profile: false,
|
||||
permission_profile: None,
|
||||
windows_sandbox_level: None,
|
||||
model: None,
|
||||
@@ -576,7 +576,7 @@ async fn collaboration_mode_update_emits_new_instruction_message_when_mode_chang
|
||||
cwd: None,
|
||||
approval_policy: None,
|
||||
approvals_reviewer: None,
|
||||
sandbox_policy: None,
|
||||
clear_active_permission_profile: false,
|
||||
permission_profile: None,
|
||||
windows_sandbox_level: None,
|
||||
model: None,
|
||||
@@ -638,7 +638,7 @@ async fn collaboration_mode_update_noop_does_not_append_when_mode_is_unchanged()
|
||||
cwd: None,
|
||||
approval_policy: None,
|
||||
approvals_reviewer: None,
|
||||
sandbox_policy: None,
|
||||
clear_active_permission_profile: false,
|
||||
permission_profile: None,
|
||||
windows_sandbox_level: None,
|
||||
model: None,
|
||||
@@ -671,7 +671,7 @@ async fn collaboration_mode_update_noop_does_not_append_when_mode_is_unchanged()
|
||||
cwd: None,
|
||||
approval_policy: None,
|
||||
approvals_reviewer: None,
|
||||
sandbox_policy: None,
|
||||
clear_active_permission_profile: false,
|
||||
permission_profile: None,
|
||||
windows_sandbox_level: None,
|
||||
model: None,
|
||||
@@ -739,7 +739,7 @@ async fn resume_replays_collaboration_instructions() -> Result<()> {
|
||||
cwd: None,
|
||||
approval_policy: None,
|
||||
approvals_reviewer: None,
|
||||
sandbox_policy: None,
|
||||
clear_active_permission_profile: false,
|
||||
permission_profile: None,
|
||||
windows_sandbox_level: None,
|
||||
model: None,
|
||||
@@ -807,7 +807,7 @@ async fn empty_collaboration_instructions_are_ignored() -> Result<()> {
|
||||
cwd: None,
|
||||
approval_policy: None,
|
||||
approvals_reviewer: None,
|
||||
sandbox_policy: None,
|
||||
clear_active_permission_profile: false,
|
||||
permission_profile: None,
|
||||
windows_sandbox_level: None,
|
||||
model: None,
|
||||
|
||||
@@ -3037,7 +3037,7 @@ async fn snapshot_request_shape_pre_turn_compaction_including_incoming_user_mess
|
||||
cwd: Some(PathBuf::from(PRETURN_CONTEXT_DIFF_CWD)),
|
||||
approval_policy: None,
|
||||
approvals_reviewer: None,
|
||||
sandbox_policy: None,
|
||||
clear_active_permission_profile: false,
|
||||
permission_profile: None,
|
||||
windows_sandbox_level: None,
|
||||
model: None,
|
||||
|
||||
@@ -2243,7 +2243,7 @@ async fn snapshot_request_shape_remote_pre_turn_compaction_including_incoming_us
|
||||
cwd: Some(PathBuf::from(PRETURN_CONTEXT_DIFF_CWD)),
|
||||
approval_policy: None,
|
||||
approvals_reviewer: None,
|
||||
sandbox_policy: None,
|
||||
clear_active_permission_profile: false,
|
||||
permission_profile: None,
|
||||
windows_sandbox_level: None,
|
||||
model: None,
|
||||
@@ -2359,7 +2359,7 @@ async fn snapshot_request_shape_remote_pre_turn_compaction_strips_incoming_model
|
||||
cwd: None,
|
||||
approval_policy: None,
|
||||
approvals_reviewer: None,
|
||||
sandbox_policy: None,
|
||||
clear_active_permission_profile: false,
|
||||
permission_profile: None,
|
||||
windows_sandbox_level: None,
|
||||
model: Some(next_model.to_string()),
|
||||
|
||||
@@ -549,7 +549,7 @@ async fn snapshot_rollback_followup_turn_trims_context_updates() -> Result<()> {
|
||||
cwd: Some(override_cwd.to_path_buf()),
|
||||
approval_policy: None,
|
||||
approvals_reviewer: None,
|
||||
sandbox_policy: None,
|
||||
clear_active_permission_profile: false,
|
||||
permission_profile: None,
|
||||
windows_sandbox_level: None,
|
||||
model: None,
|
||||
|
||||
@@ -29,7 +29,7 @@ async fn override_turn_context_does_not_persist_when_config_exists() {
|
||||
cwd: None,
|
||||
approval_policy: None,
|
||||
approvals_reviewer: None,
|
||||
sandbox_policy: None,
|
||||
clear_active_permission_profile: false,
|
||||
permission_profile: None,
|
||||
windows_sandbox_level: None,
|
||||
model: Some("o3".to_string()),
|
||||
@@ -68,7 +68,7 @@ async fn override_turn_context_does_not_create_config_file() {
|
||||
cwd: None,
|
||||
approval_policy: None,
|
||||
approvals_reviewer: None,
|
||||
sandbox_policy: None,
|
||||
clear_active_permission_profile: false,
|
||||
permission_profile: None,
|
||||
windows_sandbox_level: None,
|
||||
model: Some("o3".to_string()),
|
||||
|
||||
@@ -158,7 +158,7 @@ async fn model_change_appends_model_instructions_developer_message() -> Result<(
|
||||
cwd: None,
|
||||
approval_policy: None,
|
||||
approvals_reviewer: None,
|
||||
sandbox_policy: None,
|
||||
clear_active_permission_profile: false,
|
||||
permission_profile: None,
|
||||
windows_sandbox_level: None,
|
||||
model: Some(next_model.to_string()),
|
||||
@@ -238,7 +238,7 @@ async fn model_and_personality_change_only_appends_model_instructions() -> Resul
|
||||
cwd: None,
|
||||
approval_policy: None,
|
||||
approvals_reviewer: None,
|
||||
sandbox_policy: None,
|
||||
clear_active_permission_profile: false,
|
||||
permission_profile: None,
|
||||
windows_sandbox_level: None,
|
||||
model: Some(next_model.to_string()),
|
||||
@@ -931,7 +931,7 @@ async fn model_switch_to_smaller_model_updates_token_context_window() -> Result<
|
||||
cwd: None,
|
||||
approval_policy: None,
|
||||
approvals_reviewer: None,
|
||||
sandbox_policy: None,
|
||||
clear_active_permission_profile: false,
|
||||
permission_profile: None,
|
||||
windows_sandbox_level: None,
|
||||
model: Some(smaller_model_slug.to_string()),
|
||||
|
||||
@@ -473,7 +473,7 @@ async fn snapshot_model_visible_layout_resume_override_matches_rollout_model() -
|
||||
cwd: Some(resume_override_cwd),
|
||||
approval_policy: None,
|
||||
approvals_reviewer: None,
|
||||
sandbox_policy: None,
|
||||
clear_active_permission_profile: false,
|
||||
permission_profile: None,
|
||||
windows_sandbox_level: None,
|
||||
model: Some("gpt-5.2".to_string()),
|
||||
|
||||
@@ -117,7 +117,7 @@ async fn override_turn_context_without_user_turn_does_not_record_permissions_upd
|
||||
cwd: None,
|
||||
approval_policy: Some(AskForApproval::Never),
|
||||
approvals_reviewer: None,
|
||||
sandbox_policy: None,
|
||||
clear_active_permission_profile: false,
|
||||
permission_profile: None,
|
||||
windows_sandbox_level: None,
|
||||
model: None,
|
||||
@@ -160,7 +160,7 @@ async fn override_turn_context_without_user_turn_does_not_record_environment_upd
|
||||
cwd: Some(new_cwd.path().to_path_buf()),
|
||||
approval_policy: None,
|
||||
approvals_reviewer: None,
|
||||
sandbox_policy: None,
|
||||
clear_active_permission_profile: false,
|
||||
permission_profile: None,
|
||||
windows_sandbox_level: None,
|
||||
model: None,
|
||||
@@ -200,7 +200,7 @@ async fn override_turn_context_without_user_turn_does_not_record_collaboration_u
|
||||
cwd: None,
|
||||
approval_policy: None,
|
||||
approvals_reviewer: None,
|
||||
sandbox_policy: None,
|
||||
clear_active_permission_profile: false,
|
||||
permission_profile: None,
|
||||
windows_sandbox_level: None,
|
||||
model: None,
|
||||
|
||||
@@ -106,7 +106,7 @@ async fn permissions_message_added_on_override_change() -> Result<()> {
|
||||
cwd: None,
|
||||
approval_policy: Some(AskForApproval::Never),
|
||||
approvals_reviewer: None,
|
||||
sandbox_policy: None,
|
||||
clear_active_permission_profile: false,
|
||||
permission_profile: None,
|
||||
windows_sandbox_level: None,
|
||||
model: None,
|
||||
@@ -239,7 +239,7 @@ async fn permissions_message_omitted_when_disabled() -> Result<()> {
|
||||
cwd: None,
|
||||
approval_policy: Some(AskForApproval::Never),
|
||||
approvals_reviewer: None,
|
||||
sandbox_policy: None,
|
||||
clear_active_permission_profile: false,
|
||||
permission_profile: None,
|
||||
windows_sandbox_level: None,
|
||||
model: None,
|
||||
@@ -328,7 +328,7 @@ async fn resume_replays_permissions_messages() -> Result<()> {
|
||||
cwd: None,
|
||||
approval_policy: Some(AskForApproval::Never),
|
||||
approvals_reviewer: None,
|
||||
sandbox_policy: None,
|
||||
clear_active_permission_profile: false,
|
||||
permission_profile: None,
|
||||
windows_sandbox_level: None,
|
||||
model: None,
|
||||
@@ -434,7 +434,7 @@ async fn resume_and_fork_append_permissions_messages() -> Result<()> {
|
||||
cwd: None,
|
||||
approval_policy: Some(AskForApproval::Never),
|
||||
approvals_reviewer: None,
|
||||
sandbox_policy: None,
|
||||
clear_active_permission_profile: false,
|
||||
permission_profile: None,
|
||||
windows_sandbox_level: None,
|
||||
model: None,
|
||||
|
||||
@@ -331,7 +331,7 @@ async fn user_turn_personality_some_adds_update_message() -> anyhow::Result<()>
|
||||
cwd: None,
|
||||
approval_policy: None,
|
||||
approvals_reviewer: None,
|
||||
sandbox_policy: None,
|
||||
clear_active_permission_profile: false,
|
||||
permission_profile: None,
|
||||
windows_sandbox_level: None,
|
||||
model: None,
|
||||
@@ -415,7 +415,7 @@ async fn user_turn_personality_same_value_does_not_add_update_message() -> anyho
|
||||
cwd: None,
|
||||
approval_policy: None,
|
||||
approvals_reviewer: None,
|
||||
sandbox_policy: None,
|
||||
clear_active_permission_profile: false,
|
||||
permission_profile: None,
|
||||
windows_sandbox_level: None,
|
||||
model: None,
|
||||
@@ -512,7 +512,7 @@ async fn user_turn_personality_skips_if_feature_disabled() -> anyhow::Result<()>
|
||||
cwd: None,
|
||||
approval_policy: None,
|
||||
approvals_reviewer: None,
|
||||
sandbox_policy: None,
|
||||
clear_active_permission_profile: false,
|
||||
permission_profile: None,
|
||||
windows_sandbox_level: None,
|
||||
model: None,
|
||||
@@ -759,7 +759,7 @@ async fn user_turn_personality_remote_model_template_includes_update_message() -
|
||||
cwd: None,
|
||||
approval_policy: None,
|
||||
approvals_reviewer: None,
|
||||
sandbox_policy: None,
|
||||
clear_active_permission_profile: false,
|
||||
permission_profile: None,
|
||||
windows_sandbox_level: None,
|
||||
model: None,
|
||||
|
||||
@@ -445,7 +445,7 @@ async fn overrides_turn_context_but_keeps_cached_prefix_and_key_constant() -> an
|
||||
cwd: None,
|
||||
approval_policy: Some(AskForApproval::Never),
|
||||
approvals_reviewer: None,
|
||||
sandbox_policy: None,
|
||||
clear_active_permission_profile: false,
|
||||
permission_profile: Some(permission_profile),
|
||||
windows_sandbox_level: None,
|
||||
model: None,
|
||||
@@ -531,7 +531,7 @@ async fn override_before_first_turn_emits_environment_context() -> anyhow::Resul
|
||||
cwd: None,
|
||||
approval_policy: Some(AskForApproval::Never),
|
||||
approvals_reviewer: None,
|
||||
sandbox_policy: None,
|
||||
clear_active_permission_profile: false,
|
||||
permission_profile: None,
|
||||
windows_sandbox_level: None,
|
||||
model: Some("gpt-5.4".to_string()),
|
||||
|
||||
@@ -602,7 +602,7 @@ async fn remote_models_remote_model_uses_unified_exec() -> Result<()> {
|
||||
cwd: None,
|
||||
approval_policy: None,
|
||||
approvals_reviewer: None,
|
||||
sandbox_policy: None,
|
||||
clear_active_permission_profile: false,
|
||||
permission_profile: None,
|
||||
windows_sandbox_level: None,
|
||||
model: Some(REMOTE_MODEL_SLUG.to_string()),
|
||||
@@ -851,7 +851,7 @@ async fn remote_models_apply_remote_base_instructions() -> Result<()> {
|
||||
cwd: None,
|
||||
approval_policy: None,
|
||||
approvals_reviewer: None,
|
||||
sandbox_policy: None,
|
||||
clear_active_permission_profile: false,
|
||||
permission_profile: None,
|
||||
windows_sandbox_level: None,
|
||||
model: Some(model.to_string()),
|
||||
|
||||
@@ -427,7 +427,7 @@ async fn resume_model_switch_is_not_duplicated_after_pre_turn_override() -> Resu
|
||||
cwd: None,
|
||||
approval_policy: None,
|
||||
approvals_reviewer: None,
|
||||
sandbox_policy: None,
|
||||
clear_active_permission_profile: false,
|
||||
permission_profile: None,
|
||||
windows_sandbox_level: None,
|
||||
model: Some("gpt-5.4".to_string()),
|
||||
|
||||
@@ -836,7 +836,7 @@ async fn review_uses_overridden_cwd_for_base_branch_merge_base() {
|
||||
cwd: Some(repo_path.to_path_buf()),
|
||||
approval_policy: None,
|
||||
approvals_reviewer: None,
|
||||
sandbox_policy: None,
|
||||
clear_active_permission_profile: false,
|
||||
permission_profile: None,
|
||||
windows_sandbox_level: None,
|
||||
model: None,
|
||||
|
||||
@@ -472,10 +472,6 @@ pub enum Op {
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
approvals_reviewer: Option<ApprovalsReviewer>,
|
||||
|
||||
/// Updated sandbox policy for tool calls.
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
sandbox_policy: Option<SandboxPolicy>,
|
||||
|
||||
/// Updated permissions profile for tool calls.
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
permission_profile: Option<PermissionProfile>,
|
||||
@@ -486,6 +482,11 @@ pub enum Op {
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
active_permission_profile: Option<ActivePermissionProfile>,
|
||||
|
||||
/// Clear the active profile name/provenance even when setting a
|
||||
/// concrete `permission_profile`.
|
||||
#[serde(default, skip_serializing_if = "std::ops::Not::not")]
|
||||
clear_active_permission_profile: bool,
|
||||
|
||||
/// Updated Windows sandbox mode for tool execution.
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
windows_sandbox_level: Option<WindowsSandboxLevel>,
|
||||
@@ -609,14 +610,15 @@ pub enum Op {
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
approvals_reviewer: Option<ApprovalsReviewer>,
|
||||
|
||||
/// Updated sandbox policy for tool calls.
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
sandbox_policy: Option<SandboxPolicy>,
|
||||
|
||||
/// Updated permissions profile for tool calls.
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
permission_profile: Option<PermissionProfile>,
|
||||
|
||||
/// Clear the active profile name/provenance even when setting a
|
||||
/// concrete `permission_profile`.
|
||||
#[serde(default, skip_serializing_if = "std::ops::Not::not")]
|
||||
clear_active_permission_profile: bool,
|
||||
|
||||
/// Updated Windows sandbox mode for tool execution.
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
windows_sandbox_level: Option<WindowsSandboxLevel>,
|
||||
|
||||
@@ -1659,7 +1659,7 @@ async fn update_feature_flags_enabling_guardian_selects_auto_review() -> Result<
|
||||
cwd: None,
|
||||
approval_policy: Some(auto_review.approval_policy),
|
||||
approvals_reviewer: Some(auto_review.approvals_reviewer),
|
||||
sandbox_policy: None,
|
||||
clear_active_permission_profile: false,
|
||||
permission_profile: Some(auto_review.permission_profile.clone()),
|
||||
windows_sandbox_level: None,
|
||||
model: None,
|
||||
@@ -1750,7 +1750,7 @@ async fn update_feature_flags_disabling_guardian_clears_review_policy_and_restor
|
||||
cwd: None,
|
||||
approval_policy: None,
|
||||
approvals_reviewer: Some(ApprovalsReviewer::User),
|
||||
sandbox_policy: None,
|
||||
clear_active_permission_profile: false,
|
||||
permission_profile: None,
|
||||
windows_sandbox_level: None,
|
||||
model: None,
|
||||
@@ -1829,7 +1829,7 @@ async fn update_feature_flags_enabling_guardian_overrides_explicit_manual_review
|
||||
cwd: None,
|
||||
approval_policy: Some(auto_review.approval_policy),
|
||||
approvals_reviewer: Some(auto_review.approvals_reviewer),
|
||||
sandbox_policy: None,
|
||||
clear_active_permission_profile: false,
|
||||
permission_profile: Some(auto_review.permission_profile.clone()),
|
||||
windows_sandbox_level: None,
|
||||
model: None,
|
||||
@@ -1887,7 +1887,7 @@ async fn update_feature_flags_disabling_guardian_clears_manual_review_policy_wit
|
||||
cwd: None,
|
||||
approval_policy: None,
|
||||
approvals_reviewer: Some(ApprovalsReviewer::User),
|
||||
sandbox_policy: None,
|
||||
clear_active_permission_profile: false,
|
||||
permission_profile: None,
|
||||
windows_sandbox_level: None,
|
||||
model: None,
|
||||
@@ -1947,7 +1947,7 @@ async fn update_feature_flags_enabling_guardian_in_profile_sets_profile_auto_rev
|
||||
cwd: None,
|
||||
approval_policy: Some(auto_review.approval_policy),
|
||||
approvals_reviewer: Some(auto_review.approvals_reviewer),
|
||||
sandbox_policy: None,
|
||||
clear_active_permission_profile: false,
|
||||
permission_profile: Some(auto_review.permission_profile.clone()),
|
||||
windows_sandbox_level: None,
|
||||
model: None,
|
||||
@@ -2035,7 +2035,7 @@ guardian_approval = true
|
||||
cwd: None,
|
||||
approval_policy: None,
|
||||
approvals_reviewer: Some(ApprovalsReviewer::User),
|
||||
sandbox_policy: None,
|
||||
clear_active_permission_profile: false,
|
||||
permission_profile: None,
|
||||
windows_sandbox_level: None,
|
||||
model: None,
|
||||
|
||||
@@ -399,8 +399,8 @@ impl AppCommand {
|
||||
cwd,
|
||||
approval_policy,
|
||||
approvals_reviewer,
|
||||
sandbox_policy: None,
|
||||
permission_profile,
|
||||
clear_active_permission_profile: false,
|
||||
windows_sandbox_level,
|
||||
model,
|
||||
effort,
|
||||
@@ -634,8 +634,8 @@ impl From<Op> for AppCommand {
|
||||
cwd,
|
||||
approval_policy,
|
||||
approvals_reviewer,
|
||||
sandbox_policy,
|
||||
permission_profile,
|
||||
clear_active_permission_profile,
|
||||
windows_sandbox_level,
|
||||
model,
|
||||
effort,
|
||||
@@ -644,7 +644,7 @@ impl From<Op> for AppCommand {
|
||||
collaboration_mode,
|
||||
personality,
|
||||
} => {
|
||||
if sandbox_policy.is_none() {
|
||||
if !clear_active_permission_profile {
|
||||
Self::OverrideTurnContext {
|
||||
cwd,
|
||||
approval_policy,
|
||||
@@ -663,8 +663,8 @@ impl From<Op> for AppCommand {
|
||||
cwd,
|
||||
approval_policy,
|
||||
approvals_reviewer,
|
||||
sandbox_policy,
|
||||
permission_profile,
|
||||
clear_active_permission_profile,
|
||||
windows_sandbox_level,
|
||||
model,
|
||||
effort,
|
||||
|
||||
@@ -710,7 +710,7 @@ async fn permissions_selection_sends_approvals_reviewer_in_override_turn_context
|
||||
cwd: None,
|
||||
approval_policy: Some(AskForApproval::OnRequest),
|
||||
approvals_reviewer: Some(ApprovalsReviewer::AutoReview),
|
||||
sandbox_policy: None,
|
||||
clear_active_permission_profile: false,
|
||||
permission_profile: Some(PermissionProfile::workspace_write()),
|
||||
windows_sandbox_level: None,
|
||||
model: None,
|
||||
|
||||
Reference in New Issue
Block a user