From e378e523eb5db074039e97afb6ddced624dca6af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E6=B0=B8=E8=B5=AB?= <1259085392@qq.com> Date: Wed, 1 Jul 2026 09:57:49 +0900 Subject: [PATCH 1/2] fix: mark packaged backend as desktop-managed --- src-tauri/src/backend/launch.rs | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/src-tauri/src/backend/launch.rs b/src-tauri/src/backend/launch.rs index bf8c0ea..ca1deae 100644 --- a/src-tauri/src/backend/launch.rs +++ b/src-tauri/src/backend/launch.rs @@ -132,6 +132,11 @@ where command.env("PYTHONNOUSERSITE", "1"); } +fn configure_desktop_managed_environment(command: &mut Command) { + command.env("ASTRBOT_DESKTOP_CLIENT", "1"); + command.env("ASTRBOT_DESKTOP_MANAGED", "1"); +} + fn configure_desktop_dashboard_environment( command: &mut Command, root_dir: Option<&Path>, @@ -434,7 +439,7 @@ impl BackendState { if plan.packaged_mode { sanitize_packaged_python_environment(&mut command, append_desktop_log); - command.env("ASTRBOT_DESKTOP_CLIENT", "1"); + configure_desktop_managed_environment(&mut command); } if let Some(root_dir) = &plan.root_dir { @@ -531,8 +536,9 @@ mod tests { use std::os::unix::ffi::OsStringExt; use super::{ - configure_desktop_dashboard_environment, read_cmd_config_file_with_retry_and_hook, - sanitize_packaged_python_environment, ASTRBOT_DASHBOARD_HOST_ENV, + configure_desktop_dashboard_environment, configure_desktop_managed_environment, + read_cmd_config_file_with_retry_and_hook, sanitize_packaged_python_environment, + ASTRBOT_DASHBOARD_HOST_ENV, ASTRBOT_DASHBOARD_PORT_ENV, ASTRBOT_DASHBOARD_SKIP_DEFAULT_PASSWORD_AUTH_ENV, CMD_CONFIG_RELATIVE_PATH, DASHBOARD_HOST_ENV, DASHBOARD_PORT_ENV, DASHBOARD_SKIP_DEFAULT_PASSWORD_AUTH_ENV, DEFAULT_DASHBOARD_HOST, DEFAULT_DASHBOARD_PORT, @@ -622,6 +628,22 @@ mod tests { ); } + #[test] + fn configure_desktop_managed_environment_marks_backend_as_desktop_managed() { + let mut command = Command::new("sh"); + + configure_desktop_managed_environment(&mut command); + + assert_eq!( + get_command_env_value(&command, "ASTRBOT_DESKTOP_CLIENT"), + Some(Some("1".to_string())) + ); + assert_eq!( + get_command_env_value(&command, "ASTRBOT_DESKTOP_MANAGED"), + Some(Some("1".to_string())) + ); + } + #[test] fn configure_desktop_dashboard_environment_enables_local_setup_without_default_password() { with_clean_dashboard_env(|| { From e56a692a9f9db62a9fffe92a3f7897ed501158a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E6=B0=B8=E8=B5=AB?= <1259085392@qq.com> Date: Wed, 1 Jul 2026 10:22:38 +0900 Subject: [PATCH 2/2] fix: centralize desktop backend env keys --- src-tauri/src/backend/launch.rs | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/src-tauri/src/backend/launch.rs b/src-tauri/src/backend/launch.rs index ca1deae..e8add07 100644 --- a/src-tauri/src/backend/launch.rs +++ b/src-tauri/src/backend/launch.rs @@ -30,6 +30,8 @@ const ASTRBOT_DASHBOARD_PORT_ENV: &str = "ASTRBOT_DASHBOARD_PORT"; const ASTRBOT_DASHBOARD_SKIP_DEFAULT_PASSWORD_AUTH_ENV: &str = "ASTRBOT_DASHBOARD_SKIP_DEFAULT_PASSWORD_AUTH"; const DASHBOARD_SKIP_DEFAULT_PASSWORD_AUTH_ENV: &str = "DASHBOARD_SKIP_DEFAULT_PASSWORD_AUTH"; +const ASTRBOT_DESKTOP_CLIENT_ENV: &str = "ASTRBOT_DESKTOP_CLIENT"; +const ASTRBOT_DESKTOP_MANAGED_ENV: &str = "ASTRBOT_DESKTOP_MANAGED"; const DEFAULT_DASHBOARD_HOST: &str = "127.0.0.1"; const DEFAULT_DASHBOARD_PORT: &str = "6185"; const CMD_CONFIG_RELATIVE_PATH: &str = "data/cmd_config.json"; @@ -133,8 +135,8 @@ where } fn configure_desktop_managed_environment(command: &mut Command) { - command.env("ASTRBOT_DESKTOP_CLIENT", "1"); - command.env("ASTRBOT_DESKTOP_MANAGED", "1"); + command.env(ASTRBOT_DESKTOP_CLIENT_ENV, "1"); + command.env(ASTRBOT_DESKTOP_MANAGED_ENV, "1"); } fn configure_desktop_dashboard_environment( @@ -538,10 +540,11 @@ mod tests { use super::{ configure_desktop_dashboard_environment, configure_desktop_managed_environment, read_cmd_config_file_with_retry_and_hook, sanitize_packaged_python_environment, - ASTRBOT_DASHBOARD_HOST_ENV, - ASTRBOT_DASHBOARD_PORT_ENV, ASTRBOT_DASHBOARD_SKIP_DEFAULT_PASSWORD_AUTH_ENV, - CMD_CONFIG_RELATIVE_PATH, DASHBOARD_HOST_ENV, DASHBOARD_PORT_ENV, - DASHBOARD_SKIP_DEFAULT_PASSWORD_AUTH_ENV, DEFAULT_DASHBOARD_HOST, DEFAULT_DASHBOARD_PORT, + ASTRBOT_DASHBOARD_HOST_ENV, ASTRBOT_DASHBOARD_PORT_ENV, + ASTRBOT_DASHBOARD_SKIP_DEFAULT_PASSWORD_AUTH_ENV, ASTRBOT_DESKTOP_CLIENT_ENV, + ASTRBOT_DESKTOP_MANAGED_ENV, CMD_CONFIG_RELATIVE_PATH, DASHBOARD_HOST_ENV, + DASHBOARD_PORT_ENV, DASHBOARD_SKIP_DEFAULT_PASSWORD_AUTH_ENV, DEFAULT_DASHBOARD_HOST, + DEFAULT_DASHBOARD_PORT, }; static ENV_TEST_LOCK: Mutex<()> = Mutex::new(()); @@ -635,11 +638,11 @@ mod tests { configure_desktop_managed_environment(&mut command); assert_eq!( - get_command_env_value(&command, "ASTRBOT_DESKTOP_CLIENT"), + get_command_env_value(&command, ASTRBOT_DESKTOP_CLIENT_ENV), Some(Some("1".to_string())) ); assert_eq!( - get_command_env_value(&command, "ASTRBOT_DESKTOP_MANAGED"), + get_command_env_value(&command, ASTRBOT_DESKTOP_MANAGED_ENV), Some(Some("1".to_string())) ); }