fix(macos): handle missing clawdis CLI for health check

This commit is contained in:
Peter Steinberger
2025-12-07 15:03:05 +01:00
parent 9c9e04c5a0
commit 96ae0dd23a
2 changed files with 12 additions and 1 deletions

View File

@@ -93,6 +93,12 @@ final class HealthStore: ObservableObject {
self.isRefreshing = true
defer { self.isRefreshing = false }
guard CommandResolver.clawdisExecutable() != nil else {
self.lastError = "clawdis CLI not found; install the CLI (pnpm) or symlink it into PATH"
if onDemand { self.snapshot = nil }
return
}
let response = await ShellRunner.run(
command: CommandResolver.clawdisCommand(subcommand: "health", extraArgs: ["--json"]),
cwd: nil,

View File

@@ -176,6 +176,7 @@ enum CLIInstaller {
enum CommandResolver {
private static let projectRootDefaultsKey = "clawdis.relayProjectRootPath"
private static let helperName = "clawdis"
static func projectRoot() -> URL {
if let stored = UserDefaults.standard.string(forKey: self.projectRootDefaultsKey),
@@ -223,8 +224,12 @@ enum CommandResolver {
return nil
}
static func clawdisExecutable() -> String? {
self.findExecutable(named: self.helperName)
}
static func clawdisCommand(subcommand: String, extraArgs: [String] = []) -> [String] {
if let clawdisPath = self.findExecutable(named: "clawdis") {
if let clawdisPath = self.clawdisExecutable() {
return [clawdisPath, subcommand] + extraArgs
}
if let node = self.findExecutable(named: "node") {