Add Chrome headless diagnostic tool

Runs automatically when --chrome-headless flag is used, checking:
- ChromeDriver installation and PATH
- Chrome/Chromium installation
- Chrome and ChromeDriver version compatibility
- config.toml chrome_binary setting
- Chrome for Testing installation
- ChromeDriver executable permissions (macOS quarantine)

Displays a detailed report with:
- Summary of detected versions and paths
- Pass/warning/error status for each check
- Specific fix suggestions for any issues found

Users can then ask g3 to help fix any detected issues.
This commit is contained in:
Dhanji R. Prasanna
2026-01-10 20:44:23 +11:00
parent 60aeb67c56
commit 9bef7753bf
7 changed files with 558 additions and 0 deletions

View File

@@ -8,6 +8,7 @@ description = "CLI interface for G3 AI coding agent"
g3-core = { path = "../g3-core" }
g3-config = { path = "../g3-config" }
g3-planner = { path = "../g3-planner" }
g3-computer-control = { path = "../g3-computer-control" }
g3-providers = { path = "../g3-providers" }
clap = { workspace = true }
g3-ensembles = { path = "../g3-ensembles" }

View File

@@ -548,6 +548,17 @@ pub async fn run() -> Result<()> {
if cli.chrome_headless {
config.webdriver.enabled = true;
config.webdriver.browser = g3_config::WebDriverBrowser::ChromeHeadless;
// Run Chrome diagnostics on first use
let report = g3_computer_control::run_chrome_diagnostics(
config.webdriver.chrome_binary.as_deref(),
);
// Display the diagnostic report
println!("{}", report.format_report());
// If there are errors, the user can ask g3 to help fix them
// We continue anyway to let the user decide
}
// Apply safari flag override