diff --git a/scripts/dev-api.js b/scripts/dev-api.js index 2ebc330..62b9f32 100644 --- a/scripts/dev-api.js +++ b/scripts/dev-api.js @@ -515,7 +515,7 @@ function getLocalOpenclawVersion() { } catch {} } if (!current) { - try { current = execSync('openclaw --version 2>&1', { windowsHide: true }).toString().trim().split(/\s+/).pop() } catch {} + try { current = execSync('openclaw --version 2>&1', { windowsHide: true }).toString().trim().split(/\s+/).find(w => /^\d/.test(w)) || null } catch {} } return current || null } diff --git a/src-tauri/src/commands/config.rs b/src-tauri/src/commands/config.rs index 1070221..302dd63 100644 --- a/src-tauri/src/commands/config.rs +++ b/src-tauri/src/commands/config.rs @@ -1276,9 +1276,9 @@ async fn get_local_version() -> Option { .await .ok()?; let raw = String::from_utf8_lossy(&output.stdout).trim().to_string(); + // 输出格式: "OpenClaw 2026.3.24 (hash)" → 取第一个数字开头的词(版本号) raw.split_whitespace() - .last() - .filter(|s| !s.is_empty()) + .find(|w| w.chars().next().map_or(false, |c| c.is_ascii_digit())) .map(String::from) }