mirror of
https://github.com/openai/codex.git
synced 2026-11-07 20:30:33 +00:00
Retire the daemon_auto_start feature flag (#58940)
## What changed Eligible interactive launches now start or reuse the shared daemon regardless of `features.daemon_auto_start`. Remote-control daemon eligibility also no longer checks this flag. Use `--no-daemon` to run without the shared background server. Treat `daemon_auto_start` as removed: ignore configured values with a migration notice, ignore managed requirements with a warning, and hide the flag from experimental feature discovery. Remove its launch telemetry tag. ## Testing Extend retired-feature requirement coverage and add a migration-notice snapshot. Update CLI and TUI integration tests for daemon startup and explicit `--no-daemon` usage. GitOrigin-RevId: e0290e5acd4bc0169a0f71c3296c567e46269ce3
This commit is contained in:
@@ -16,7 +16,6 @@ use codex_app_server_protocol::RemoteControlPairingStartResponse;
|
||||
use codex_arg0::Arg0DispatchPaths;
|
||||
use codex_config::LoaderOverrides;
|
||||
use codex_core::config::ConfigBuilder;
|
||||
use codex_features::Feature;
|
||||
use codex_protocol::protocol::SessionSource;
|
||||
use codex_utils_absolute_path::AbsolutePathBuf;
|
||||
use codex_utils_cli::CliConfigOverrides;
|
||||
@@ -161,8 +160,7 @@ async fn daemon_eligible(root_config_overrides: &CliConfigOverrides) -> anyhow::
|
||||
let Ok(config) = ConfigBuilder::default().build().await else {
|
||||
return Ok(false);
|
||||
};
|
||||
Ok(config.features.enabled(Feature::DaemonAutoStart)
|
||||
&& !codex_tui::uses_wsl_drvfs(&config.codex_home))
|
||||
Ok(!codex_tui::uses_wsl_drvfs(&config.codex_home))
|
||||
}
|
||||
|
||||
fn print_remote_control_progress(json: bool, message: &str) -> anyhow::Result<()> {
|
||||
|
||||
@@ -40,7 +40,7 @@ async fn agents_checks_trust_when_starting_after_dismissing_overview() -> Result
|
||||
|
||||
#[tokio::test]
|
||||
#[cfg(unix)]
|
||||
async fn discovered_managed_daemon_can_restart_with_auto_start_disabled() -> Result<()> {
|
||||
async fn discovered_managed_daemon_can_restart() -> Result<()> {
|
||||
daemon_startup("discovered").await
|
||||
}
|
||||
|
||||
@@ -194,8 +194,10 @@ async fn daemon_startup(command: &str) -> Result<()> {
|
||||
{}\n\
|
||||
notice.model_migrations.\"gpt-5.6-terra\" = \"gpt-6-sol\"\n\
|
||||
[projects.{}]\ntrust_level = \"{}\"\n",
|
||||
if command == "discovered" {
|
||||
"tui.status_line=[\"model\",\"thread-id\",\"thread-name\"]\nfeatures.daemon_auto_start=false"
|
||||
if command == "start" {
|
||||
"features.daemon_auto_start=false"
|
||||
} else if command == "discovered" {
|
||||
"tui.status_line=[\"model\",\"thread-id\",\"thread-name\"]"
|
||||
} else if bedrock_onboarding {
|
||||
"features.gcp_setup_wizard=false"
|
||||
} else {
|
||||
@@ -321,7 +323,6 @@ async fn daemon_startup(command: &str) -> Result<()> {
|
||||
}
|
||||
"entercontinue·escback"
|
||||
} else if command == "discovered" {
|
||||
args.extend(["--disable".into(), "daemon_auto_start".into()]);
|
||||
// Empty drafts need not survive a daemon restart. Renaming materializes the
|
||||
// thread; wait for the confirmed footer name, not the echoed command.
|
||||
steps.push_back(("GPT-5.6-Terra", b"/rename daemon-restart-test\r"));
|
||||
|
||||
@@ -192,7 +192,6 @@ cli_auth_credentials_store = "file"
|
||||
chatgpt_base_url = "{}/source/backend-api"
|
||||
analytics.enabled = false
|
||||
check_for_update_on_startup = false
|
||||
features.daemon_auto_start = {}
|
||||
features.mcp_oauth_refresh_coordination = true
|
||||
model_provider = "local"
|
||||
model = "test-model"
|
||||
@@ -211,7 +210,6 @@ trust_level = "trusted"
|
||||
trust_level = "trusted"
|
||||
"#,
|
||||
server.uri(),
|
||||
backend == "daemon",
|
||||
server.uri(),
|
||||
serde_json::to_string(&source)?,
|
||||
serde_json::to_string(&launcher)?
|
||||
@@ -390,6 +388,9 @@ trust_level = "trusted"
|
||||
.mount(&server)
|
||||
.await;
|
||||
let mut args = worktree_args.clone();
|
||||
if backend == "embedded" && !analytics {
|
||||
args.push("--no-daemon".into());
|
||||
}
|
||||
if backend == "daemon" && previous.is_empty() {
|
||||
args.extend(["-c".into(), "features.auth_elicitation=true".into()]);
|
||||
}
|
||||
@@ -698,14 +699,6 @@ trust_level = "trusted"
|
||||
("terminal_rows", "40-79"),
|
||||
("multiplexer", "none"),
|
||||
("daemon_selection_reason", "incompatible_option"),
|
||||
(
|
||||
"daemon_auto_start",
|
||||
if backend == "daemon" {
|
||||
"enabled"
|
||||
} else {
|
||||
"disabled"
|
||||
},
|
||||
),
|
||||
("auto_update", "enabled"),
|
||||
("auto_update_setting", "default"),
|
||||
("update_interval_setting", "default"),
|
||||
|
||||
Reference in New Issue
Block a user