diff --git a/src-tauri/src/core_runtime.rs b/src-tauri/src/core_runtime.rs
index 77c80a5..fa79a91 100644
--- a/src-tauri/src/core_runtime.rs
+++ b/src-tauri/src/core_runtime.rs
@@ -802,6 +802,7 @@ pub(crate) fn current_core_status(
let install_dir = core_install_dir()?;
let binary_path = find_core_binary(&install_dir);
let installed = binary_path.is_some();
+ let starting = process_state.is_some_and(CoreProcessState::is_starting);
let managed_pid = process_state.and_then(|state| state.managed_pid());
let management_port_open = management_port.map(is_management_port_open);
let process_id = match managed_pid {
@@ -814,7 +815,9 @@ pub(crate) fn current_core_status(
let running = process_id.is_some() && management_port_open.unwrap_or(true);
let current_version = read_core_metadata(&install_dir).map(|metadata| metadata.version);
- let message = if !installed {
+ let message = if starting {
+ "CPA 内核正在启动".to_string()
+ } else if !installed {
"未安装 CPA 内核,请先安装最新版".to_string()
} else if running {
"CPA 内核正在运行".to_string()
@@ -825,6 +828,7 @@ pub(crate) fn current_core_status(
Ok(CoreStatus {
installed,
running,
+ starting,
managed: managed_pid.is_some(),
process_id,
current_version,
diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs
index d1a6962..d618cab 100644
--- a/src-tauri/src/main.rs
+++ b/src-tauri/src/main.rs
@@ -39,7 +39,6 @@ use objc2::MainThreadMarker;
use objc2_app_kit::NSEvent;
use serde::{Deserialize, Serialize};
use sha2::{Digest, Sha256};
-#[cfg(target_os = "windows")]
use std::sync::atomic::{AtomicBool, Ordering};
#[cfg(target_os = "macos")]
use std::sync::Arc;
@@ -276,6 +275,7 @@ struct AppUpdateInner {
#[derive(Default)]
struct CoreProcessState {
child: Mutex