mirror of
https://github.com/openai/codex.git
synced 2026-05-15 08:42:34 +00:00
## Summary Starts the process of getting rid of `--full-auto`, with some concessions: 1. Fully removes the command from the tui, since it just resolves to the default permissions there, and encourages users to use the one-time trust flow if they're not in a trusted repo. 2. Marks the command as deprecated in `codex exec`, in case users are actively relying on this. We'll remove in an upcoming n+X release. 3. Cleans up some of the `codex sandbox` cli logic, to keep supporting legacy sandbox policies for now. This isn't the cleanest setup, but I think it is worthwhile to warn users for one release before hard-removing it. ## Testing - [x] Updated unit tests
83 lines
2.1 KiB
Rust
83 lines
2.1 KiB
Rust
use super::*;
|
|
use pretty_assertions::assert_eq;
|
|
|
|
#[test]
|
|
fn resume_parses_prompt_after_global_flags() {
|
|
const PROMPT: &str = "echo resume-with-global-flags-after-subcommand";
|
|
let cli = Cli::parse_from([
|
|
"codex-exec",
|
|
"resume",
|
|
"--last",
|
|
"--json",
|
|
"--model",
|
|
"gpt-5.2-codex",
|
|
"--dangerously-bypass-approvals-and-sandbox",
|
|
"--skip-git-repo-check",
|
|
"--ephemeral",
|
|
"--ignore-user-config",
|
|
"--ignore-rules",
|
|
PROMPT,
|
|
]);
|
|
|
|
assert!(cli.ephemeral);
|
|
assert!(cli.ignore_user_config);
|
|
assert!(cli.ignore_rules);
|
|
let Some(Command::Resume(args)) = cli.command else {
|
|
panic!("expected resume command");
|
|
};
|
|
let effective_prompt = args.prompt.clone().or_else(|| {
|
|
if args.last {
|
|
args.session_id.clone()
|
|
} else {
|
|
None
|
|
}
|
|
});
|
|
assert_eq!(effective_prompt.as_deref(), Some(PROMPT));
|
|
}
|
|
|
|
#[test]
|
|
fn resume_accepts_output_last_message_flag_after_subcommand() {
|
|
const PROMPT: &str = "echo resume-with-output-file";
|
|
let cli = Cli::parse_from([
|
|
"codex-exec",
|
|
"resume",
|
|
"session-123",
|
|
"-o",
|
|
"/tmp/resume-output.md",
|
|
PROMPT,
|
|
]);
|
|
|
|
assert_eq!(
|
|
cli.last_message_file,
|
|
Some(PathBuf::from("/tmp/resume-output.md"))
|
|
);
|
|
let Some(Command::Resume(args)) = cli.command else {
|
|
panic!("expected resume command");
|
|
};
|
|
assert_eq!(args.session_id.as_deref(), Some("session-123"));
|
|
assert_eq!(args.prompt.as_deref(), Some(PROMPT));
|
|
}
|
|
|
|
#[test]
|
|
fn parses_config_isolation_flags() {
|
|
let cli = Cli::parse_from([
|
|
"codex-exec",
|
|
"--ignore-user-config",
|
|
"--ignore-rules",
|
|
"summarize",
|
|
]);
|
|
|
|
assert!(cli.ignore_user_config);
|
|
assert!(cli.ignore_rules);
|
|
}
|
|
|
|
#[test]
|
|
fn removed_full_auto_flag_reports_migration_path() {
|
|
let cli = Cli::parse_from(["codex-exec", "--full-auto", "summarize"]);
|
|
|
|
assert_eq!(
|
|
cli.removed_full_auto_warning(),
|
|
Some("warning: `--full-auto` is deprecated; use `--sandbox workspace-write` instead.")
|
|
);
|
|
}
|