Skip to content

Commit 35f61e4

Browse files
authored
fix: mark packaged backend as desktop-managed (#146)
* fix: mark packaged backend as desktop-managed * fix: centralize desktop backend env keys
1 parent cdadd2e commit 35f61e4

1 file changed

Lines changed: 31 additions & 6 deletions

File tree

src-tauri/src/backend/launch.rs

Lines changed: 31 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ const ASTRBOT_DASHBOARD_PORT_ENV: &str = "ASTRBOT_DASHBOARD_PORT";
3030
const ASTRBOT_DASHBOARD_SKIP_DEFAULT_PASSWORD_AUTH_ENV: &str =
3131
"ASTRBOT_DASHBOARD_SKIP_DEFAULT_PASSWORD_AUTH";
3232
const DASHBOARD_SKIP_DEFAULT_PASSWORD_AUTH_ENV: &str = "DASHBOARD_SKIP_DEFAULT_PASSWORD_AUTH";
33+
const ASTRBOT_DESKTOP_CLIENT_ENV: &str = "ASTRBOT_DESKTOP_CLIENT";
34+
const ASTRBOT_DESKTOP_MANAGED_ENV: &str = "ASTRBOT_DESKTOP_MANAGED";
3335
const DEFAULT_DASHBOARD_HOST: &str = "127.0.0.1";
3436
const DEFAULT_DASHBOARD_PORT: &str = "6185";
3537
const CMD_CONFIG_RELATIVE_PATH: &str = "data/cmd_config.json";
@@ -132,6 +134,11 @@ where
132134
command.env("PYTHONNOUSERSITE", "1");
133135
}
134136

137+
fn configure_desktop_managed_environment(command: &mut Command) {
138+
command.env(ASTRBOT_DESKTOP_CLIENT_ENV, "1");
139+
command.env(ASTRBOT_DESKTOP_MANAGED_ENV, "1");
140+
}
141+
135142
fn configure_desktop_dashboard_environment(
136143
command: &mut Command,
137144
root_dir: Option<&Path>,
@@ -434,7 +441,7 @@ impl BackendState {
434441

435442
if plan.packaged_mode {
436443
sanitize_packaged_python_environment(&mut command, append_desktop_log);
437-
command.env("ASTRBOT_DESKTOP_CLIENT", "1");
444+
configure_desktop_managed_environment(&mut command);
438445
}
439446

440447
if let Some(root_dir) = &plan.root_dir {
@@ -531,11 +538,13 @@ mod tests {
531538
use std::os::unix::ffi::OsStringExt;
532539

533540
use super::{
534-
configure_desktop_dashboard_environment, read_cmd_config_file_with_retry_and_hook,
535-
sanitize_packaged_python_environment, ASTRBOT_DASHBOARD_HOST_ENV,
536-
ASTRBOT_DASHBOARD_PORT_ENV, ASTRBOT_DASHBOARD_SKIP_DEFAULT_PASSWORD_AUTH_ENV,
537-
CMD_CONFIG_RELATIVE_PATH, DASHBOARD_HOST_ENV, DASHBOARD_PORT_ENV,
538-
DASHBOARD_SKIP_DEFAULT_PASSWORD_AUTH_ENV, DEFAULT_DASHBOARD_HOST, DEFAULT_DASHBOARD_PORT,
541+
configure_desktop_dashboard_environment, configure_desktop_managed_environment,
542+
read_cmd_config_file_with_retry_and_hook, sanitize_packaged_python_environment,
543+
ASTRBOT_DASHBOARD_HOST_ENV, ASTRBOT_DASHBOARD_PORT_ENV,
544+
ASTRBOT_DASHBOARD_SKIP_DEFAULT_PASSWORD_AUTH_ENV, ASTRBOT_DESKTOP_CLIENT_ENV,
545+
ASTRBOT_DESKTOP_MANAGED_ENV, CMD_CONFIG_RELATIVE_PATH, DASHBOARD_HOST_ENV,
546+
DASHBOARD_PORT_ENV, DASHBOARD_SKIP_DEFAULT_PASSWORD_AUTH_ENV, DEFAULT_DASHBOARD_HOST,
547+
DEFAULT_DASHBOARD_PORT,
539548
};
540549

541550
static ENV_TEST_LOCK: Mutex<()> = Mutex::new(());
@@ -622,6 +631,22 @@ mod tests {
622631
);
623632
}
624633

634+
#[test]
635+
fn configure_desktop_managed_environment_marks_backend_as_desktop_managed() {
636+
let mut command = Command::new("sh");
637+
638+
configure_desktop_managed_environment(&mut command);
639+
640+
assert_eq!(
641+
get_command_env_value(&command, ASTRBOT_DESKTOP_CLIENT_ENV),
642+
Some(Some("1".to_string()))
643+
);
644+
assert_eq!(
645+
get_command_env_value(&command, ASTRBOT_DESKTOP_MANAGED_ENV),
646+
Some(Some("1".to_string()))
647+
);
648+
}
649+
625650
#[test]
626651
fn configure_desktop_dashboard_environment_enables_local_setup_without_default_password() {
627652
with_clean_dashboard_env(|| {

0 commit comments

Comments
 (0)