Update render name in tui for approval_policy to match with config values (#1675)
Currently, codex on start shows the value for the approval policy as name of [AskForApproval](2437a8d17a/codex-rs/core/src/protocol.rs (L128)) enum, which differs from [approval_policy](2437a8d17a/codex-rs/config.md (approval_policy)) config values. E.g. "untrusted" becomes "UnlessTrusted", "on-failure" -> "OnFailure", "never" -> "Never". This PR changes render names of the approval policy to match with configuration values.
This commit is contained in:
@@ -11,6 +11,7 @@ use std::str::FromStr;
|
|||||||
use mcp_types::CallToolResult;
|
use mcp_types::CallToolResult;
|
||||||
use serde::Deserialize;
|
use serde::Deserialize;
|
||||||
use serde::Serialize;
|
use serde::Serialize;
|
||||||
|
use strum_macros::Display;
|
||||||
use uuid::Uuid;
|
use uuid::Uuid;
|
||||||
|
|
||||||
use crate::config_types::ReasoningEffort as ReasoningEffortConfig;
|
use crate::config_types::ReasoningEffort as ReasoningEffortConfig;
|
||||||
@@ -123,14 +124,16 @@ pub enum Op {
|
|||||||
|
|
||||||
/// Determines the conditions under which the user is consulted to approve
|
/// Determines the conditions under which the user is consulted to approve
|
||||||
/// running the command proposed by Codex.
|
/// running the command proposed by Codex.
|
||||||
#[derive(Debug, Clone, Copy, Default, PartialEq, Eq, Hash, Serialize, Deserialize)]
|
#[derive(Debug, Clone, Copy, Default, PartialEq, Eq, Hash, Serialize, Deserialize, Display)]
|
||||||
#[serde(rename_all = "kebab-case")]
|
#[serde(rename_all = "kebab-case")]
|
||||||
|
#[strum(serialize_all = "kebab-case")]
|
||||||
pub enum AskForApproval {
|
pub enum AskForApproval {
|
||||||
/// Under this policy, only "known safe" commands—as determined by
|
/// Under this policy, only "known safe" commands—as determined by
|
||||||
/// `is_safe_command()`—that **only read files** are auto‑approved.
|
/// `is_safe_command()`—that **only read files** are auto‑approved.
|
||||||
/// Everything else will ask the user to approve.
|
/// Everything else will ask the user to approve.
|
||||||
#[default]
|
#[default]
|
||||||
#[serde(rename = "untrusted")]
|
#[serde(rename = "untrusted")]
|
||||||
|
#[strum(serialize = "untrusted")]
|
||||||
UnlessTrusted,
|
UnlessTrusted,
|
||||||
|
|
||||||
/// *All* commands are auto‑approved, but they are expected to run inside a
|
/// *All* commands are auto‑approved, but they are expected to run inside a
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ pub(crate) fn create_config_summary_entries(config: &Config) -> Vec<(&'static st
|
|||||||
("workdir", config.cwd.display().to_string()),
|
("workdir", config.cwd.display().to_string()),
|
||||||
("model", config.model.clone()),
|
("model", config.model.clone()),
|
||||||
("provider", config.model_provider_id.clone()),
|
("provider", config.model_provider_id.clone()),
|
||||||
("approval", format!("{:?}", config.approval_policy)),
|
("approval", config.approval_policy.to_string()),
|
||||||
("sandbox", summarize_sandbox_policy(&config.sandbox_policy)),
|
("sandbox", summarize_sandbox_policy(&config.sandbox_policy)),
|
||||||
];
|
];
|
||||||
if config.model_provider.wire_api == WireApi::Responses
|
if config.model_provider.wire_api == WireApi::Responses
|
||||||
|
|||||||
@@ -156,7 +156,7 @@ impl HistoryCell {
|
|||||||
("workdir", config.cwd.display().to_string()),
|
("workdir", config.cwd.display().to_string()),
|
||||||
("model", config.model.clone()),
|
("model", config.model.clone()),
|
||||||
("provider", config.model_provider_id.clone()),
|
("provider", config.model_provider_id.clone()),
|
||||||
("approval", format!("{:?}", config.approval_policy)),
|
("approval", config.approval_policy.to_string()),
|
||||||
("sandbox", summarize_sandbox_policy(&config.sandbox_policy)),
|
("sandbox", summarize_sandbox_policy(&config.sandbox_policy)),
|
||||||
];
|
];
|
||||||
if config.model_provider.wire_api == WireApi::Responses
|
if config.model_provider.wire_api == WireApi::Responses
|
||||||
|
|||||||
Reference in New Issue
Block a user