From f13bf04402f263c586dcea33e13a7ea906dedd68 Mon Sep 17 00:00:00 2001 From: Pierre Tachoire Date: Fri, 24 Apr 2026 09:42:13 +0200 Subject: [PATCH] feat(config): add browser Backend field + GOCLAW_BROWSER_BACKEND env Introduces an explicit backend selector for the browser automation tool ("chrome" or "lightpanda"). Empty means auto-detect, which will be wired in a later commit. Chrome remains the default behavior. --- internal/config/config_channels.go | 1 + internal/config/config_load.go | 1 + 2 files changed, 2 insertions(+) diff --git a/internal/config/config_channels.go b/internal/config/config_channels.go index 41c8353f..0095bac0 100644 --- a/internal/config/config_channels.go +++ b/internal/config/config_channels.go @@ -523,6 +523,7 @@ type WebFetchPolicyConfig struct { // BrowserToolConfig controls the browser automation tool. type BrowserToolConfig struct { Enabled bool `json:"enabled"` // enable the browser tool (default false) + Backend string `json:"backend,omitempty"` // "chrome" (default) or "lightpanda"; auto-detected from /json/version if empty Headless bool `json:"headless,omitempty"` // run Chrome in headless mode (ignored when RemoteURL is set) RemoteURL string `json:"remote_url,omitempty"` // CDP endpoint for remote Chrome sidecar, e.g. "ws://chrome:9222" ActionTimeoutMs int `json:"action_timeout_ms,omitempty"` // per-action timeout in ms (default 30000) diff --git a/internal/config/config_load.go b/internal/config/config_load.go index 07429b63..075500e0 100644 --- a/internal/config/config_load.go +++ b/internal/config/config_load.go @@ -390,6 +390,7 @@ func (c *Config) applyEnvOverrides() { // Browser (for Docker-compose browser sidecar overlay) envStr("GOCLAW_BROWSER_REMOTE_URL", &c.Tools.Browser.RemoteURL) + envStr("GOCLAW_BROWSER_BACKEND", &c.Tools.Browser.Backend) if c.Tools.Browser.RemoteURL != "" { c.Tools.Browser.Enabled = true }