From f39978d9e57f3ef5e884be5035401a3a94a6c05b Mon Sep 17 00:00:00 2001 From: Soulter <905617992@qq.com> Date: Thu, 6 Aug 2026 16:42:59 +0800 Subject: [PATCH] feat(metrics): mark desktop installation source --- docs/environment-variables.md | 1 + src-tauri/src/backend/launch.rs | 14 +++++++++++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/docs/environment-variables.md b/docs/environment-variables.md index 4493bbe1..b4719e03 100644 --- a/docs/environment-variables.md +++ b/docs/environment-variables.md @@ -54,6 +54,7 @@ | 变量 | 用途 | 默认值/行为 | | --- | --- | --- | | `ASTRBOT_DESKTOP_CLIENT` | 标记桌面客户端环境 | 打包态启动后端时写入 `1` | +| `ASTRBOT_INSTALLATION_SOURCE` | 标记 AstrBot 匿名指标中的安装来源 | 打包态启动后端时写入 `desktop` | | `ASTRBOT_BACKEND_STARTUP_HEARTBEAT_PATH` | 桌面端写给后端启动器的 heartbeat 文件路径 | 打包态默认写到 `ASTRBOT_ROOT/data/backend-startup-heartbeat.json` | ### 局域网访问 WebUI diff --git a/src-tauri/src/backend/launch.rs b/src-tauri/src/backend/launch.rs index a97948b4..83eb9c3d 100644 --- a/src-tauri/src/backend/launch.rs +++ b/src-tauri/src/backend/launch.rs @@ -32,6 +32,8 @@ const ASTRBOT_DASHBOARD_SKIP_DEFAULT_PASSWORD_AUTH_ENV: &str = 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 ASTRBOT_INSTALLATION_SOURCE_ENV: &str = "ASTRBOT_INSTALLATION_SOURCE"; +const DESKTOP_INSTALLATION_SOURCE: &str = "desktop"; const ENABLED_ENV_VALUE: &str = "1"; const DEFAULT_DASHBOARD_HOST: &str = "127.0.0.1"; const DEFAULT_DASHBOARD_PORT: &str = "6185"; @@ -138,6 +140,7 @@ where fn mark_as_desktop_managed(command: &mut Command) { command.env(ASTRBOT_DESKTOP_CLIENT_ENV, ENABLED_ENV_VALUE); command.env(ASTRBOT_DESKTOP_MANAGED_ENV, ENABLED_ENV_VALUE); + command.env(ASTRBOT_INSTALLATION_SOURCE_ENV, DESKTOP_INSTALLATION_SOURCE); } fn configure_desktop_dashboard_environment( @@ -543,9 +546,10 @@ mod tests { 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, 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, ENABLED_ENV_VALUE, + ASTRBOT_DESKTOP_MANAGED_ENV, ASTRBOT_INSTALLATION_SOURCE_ENV, CMD_CONFIG_RELATIVE_PATH, + DASHBOARD_HOST_ENV, DASHBOARD_PORT_ENV, DASHBOARD_SKIP_DEFAULT_PASSWORD_AUTH_ENV, + DEFAULT_DASHBOARD_HOST, DEFAULT_DASHBOARD_PORT, DESKTOP_INSTALLATION_SOURCE, + ENABLED_ENV_VALUE, }; static ENV_TEST_LOCK: Mutex<()> = Mutex::new(()); @@ -646,6 +650,10 @@ mod tests { get_command_env_value(&command, ASTRBOT_DESKTOP_MANAGED_ENV), Some(Some(ENABLED_ENV_VALUE.to_string())) ); + assert_eq!( + get_command_env_value(&command, ASTRBOT_INSTALLATION_SOURCE_ENV), + Some(Some(DESKTOP_INSTALLATION_SOURCE.to_string())) + ); } #[test]