Release binaries / Build macOS ARM64 (push) Has been cancelled
Release binaries / Build macOS x64 (push) Has been cancelled
Release binaries / Build Linux ARM64 (push) Has been cancelled
Release binaries / Build Linux musl ARM64 (push) Has been cancelled
Release binaries / Build Linux musl x64 (push) Has been cancelled
Release binaries / Build Linux x64 (push) Has been cancelled
Release binaries / Build Windows x64 (push) Has been cancelled
Release binaries / Attach binaries to GitHub Release (push) Has been cancelled
Standalone product rename across the whole repo (issue: project identity): - Binary/package/repo/skill/docs: agent-browser[-stealth] → chrome-use (single binary name `chrome-use`; old aliases agent-browser/abs dropped). - Version: 0.27.0-fork.51 → 1.0.0 (drop the upstream-fork counter). - Native-messaging host: com.agent_browser.connect → com.leeguoo.chrome_use (CLI + ab-connect extension in lockstep — this is a breaking handshake change, extension bumped 0.4.2 → 0.5.0, needs a Web Store republish). - Config dir: ~/.agent-browser → ~/.chrome-use. - README/zh: reframed from "stealth fork of agent-browser" to a standalone product with a small `originally based on vercel-labs/agent-browser` credit. - Kept AGENT_BROWSER_* env vars working (63 vars across the codebase; renaming them would break every existing script/skill for no user-facing gain). Build green, 802 unit tests pass, fmt + clippy clean. Upstream attribution to vercel-labs/agent-browser preserved.
71 lines
2.3 KiB
Rust
71 lines
2.3 KiB
Rust
//! Check running daemons: inventory of sessions, version match with the
|
|
//! CLI, and stale sidecar files cleaned up as a side effect of the walk.
|
|
|
|
use super::{Check, Status};
|
|
use crate::connection::{walk_daemons, CleanReason};
|
|
|
|
pub(super) fn check(checks: &mut Vec<Check>) {
|
|
let category = "Daemons";
|
|
let cli_version = env!("CARGO_PKG_VERSION");
|
|
|
|
let inventory = walk_daemons();
|
|
|
|
for cleaned in &inventory.cleaned {
|
|
let reason = match cleaned.reason {
|
|
CleanReason::ProcessGone | CleanReason::DashboardGone => "process gone",
|
|
CleanReason::UnreadablePidFile => "unreadable pid file",
|
|
CleanReason::OrphanedSocket => "orphaned socket",
|
|
};
|
|
checks.push(Check::new(
|
|
format!("daemon.cleaned.{}", cleaned.name),
|
|
category,
|
|
Status::Warn,
|
|
format!("Cleaned stale files: {} ({})", cleaned.name, reason),
|
|
));
|
|
}
|
|
|
|
if inventory.sessions.is_empty() {
|
|
checks.push(Check::new(
|
|
"daemon.active",
|
|
category,
|
|
Status::Pass,
|
|
"No active daemons",
|
|
));
|
|
} else {
|
|
for session in &inventory.sessions {
|
|
let version_match = session.version.as_deref() == Some(cli_version);
|
|
let status = if version_match {
|
|
Status::Pass
|
|
} else {
|
|
Status::Warn
|
|
};
|
|
let suffix = if version_match {
|
|
String::new()
|
|
} else {
|
|
format!(" (version mismatch with CLI {})", cli_version)
|
|
};
|
|
let mut check = Check::new(
|
|
format!("daemon.session.{}", session.name),
|
|
category,
|
|
status,
|
|
format!("Session {} (pid {}){}", session.name, session.pid, suffix),
|
|
);
|
|
if !version_match {
|
|
check = check.with_fix(format!("chrome-use --session {} close", session.name));
|
|
}
|
|
checks.push(check);
|
|
}
|
|
}
|
|
|
|
if let Some(dashboard) = inventory.dashboard {
|
|
if dashboard.alive {
|
|
checks.push(Check::new(
|
|
"daemon.dashboard",
|
|
category,
|
|
Status::Pass,
|
|
format!("Dashboard server running (pid {})", dashboard.pid),
|
|
));
|
|
}
|
|
}
|
|
}
|