Skip to content

Commit 06972e7

Browse files
Naituwcursoragent
andcommitted
fix(cli): guard daemon status calls behind unix for windows build
channel list and doctor called crate::client::request_status() unconditionally, but the client module is unix-only; route both through a cfg-gated cfgio::daemon_status() (None on non-unix). Release-Note: skip Co-authored-by: Cursor <cursoragent@cursor.com>
1 parent ca62262 commit 06972e7

3 files changed

Lines changed: 13 additions & 2 deletions

File tree

src-tauri/src/cli/cfgio.rs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,17 @@ pub fn block_on<F: std::future::Future>(fut: F) -> F::Output {
3838
.block_on(fut)
3939
}
4040

41+
/// daemon 运行状态(仅 unix 有 daemon;非 unix 无 `client` 模块,一律 None)。
42+
/// 供 channel list / doctor 跨平台复用,避免在 Windows 直接引用 unix-only 的 `crate::client`。
43+
#[cfg(unix)]
44+
pub fn daemon_status() -> Option<crate::ipc::StatusInfo> {
45+
block_on(crate::client::request_status())
46+
}
47+
#[cfg(not(unix))]
48+
pub fn daemon_status() -> Option<crate::ipc::StatusInfo> {
49+
None
50+
}
51+
4152
// ——— 点号路径读写(基于 serde_json::Value,camelCase)———
4253

4354
/// 取点号路径的引用(任一段缺失返回 None)。

src-tauri/src/cli/channel_cmd.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ pub fn dispatch(args: &[String], lang: Lang) {
4141
fn list(args: &[String], lang: Lang) -> Result<(), String> {
4242
let json = args.iter().any(|a| a == "--json");
4343
let cfg = AppConfig::load_without_secrets();
44-
let status = cfgio::block_on(crate::client::request_status());
44+
let status = cfgio::daemon_status();
4545
let conns = status.as_ref().map(|s| s.im_connections.clone()).unwrap_or_default();
4646
let daemon_up = status.is_some();
4747

src-tauri/src/cli/doctor.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ pub fn dispatch(args: &[String], lang: Lang) {
2222
}
2323

2424
let cfg = AppConfig::load_without_secrets();
25-
let status = cfgio::block_on(crate::client::request_status());
25+
let status = cfgio::daemon_status();
2626

2727
if json {
2828
super::print_line(&render_json(&cfg, &status));

0 commit comments

Comments
 (0)