@@ -30,6 +30,8 @@ const ASTRBOT_DASHBOARD_PORT_ENV: &str = "ASTRBOT_DASHBOARD_PORT";
3030const ASTRBOT_DASHBOARD_SKIP_DEFAULT_PASSWORD_AUTH_ENV : & str =
3131 "ASTRBOT_DASHBOARD_SKIP_DEFAULT_PASSWORD_AUTH" ;
3232const 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" ;
3335const DEFAULT_DASHBOARD_HOST : & str = "127.0.0.1" ;
3436const DEFAULT_DASHBOARD_PORT : & str = "6185" ;
3537const 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+
135142fn 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