Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
8c8dd8a
Add Codex session rerun command
gregpr07 Jun 3, 2026
9459e50
Honor managed BrowserProfile launch args
gregpr07 Jun 3, 2026
172c569
Honor managed BrowserProfile profile dir
gregpr07 Jun 3, 2026
052ff00
Honor managed BrowserProfile viewport
gregpr07 Jun 3, 2026
a6a9173
Apply BrowserProfile user agent override
gregpr07 Jun 3, 2026
3316faf
Grant BrowserProfile permissions in worker
gregpr07 Jun 3, 2026
eb7c5b0
Apply BrowserProfile download behavior
gregpr07 Jun 3, 2026
b9fc569
Apply BrowserProfile storage state
gregpr07 Jun 3, 2026
5410382
Enforce BrowserProfile domain constraints
gregpr07 Jun 3, 2026
22f7bec
Apply BrowserProfile wait timing
gregpr07 Jun 3, 2026
5e7b700
Apply BrowserProfile runtime env in Rust core
gregpr07 Jun 3, 2026
d0d5350
Make BrowserProfile constraints passive without env
gregpr07 Jun 3, 2026
255145b
Flatten Anthropic error tool results
gregpr07 Jun 3, 2026
5b72bda
Honor max turns in terminal sessions
gregpr07 Jun 4, 2026
2f9eab8
Support Remote CDP browser mode
gregpr07 Jun 4, 2026
ce6cc35
Merge remote-tracking branch 'origin/main' into magnus/browser-use-ru…
gregpr07 Jun 4, 2026
bbcf273
Harden browser script startup and image payloads
gregpr07 Jun 4, 2026
e6fe176
Gate eval finalization artifacts
gregpr07 Jun 4, 2026
32a9d94
Merge remote-tracking branch 'origin/main' into magnus/browser-use-ru…
gregpr07 Jun 4, 2026
562b23c
Speed up eval browser step defaults
gregpr07 Jun 4, 2026
f6f7c58
Merge remote-tracking branch 'origin/main' into magnus/browser-use-ru…
gregpr07 Jun 4, 2026
3a1c78e
Disable continuous browser capture by default
gregpr07 Jun 4, 2026
ed549a3
Reduce remote CDP setup churn
gregpr07 Jun 4, 2026
f87907d
Bound multi-item collection loops
gregpr07 Jun 4, 2026
d4a3548
Commit single-site collection to one domain
gregpr07 Jun 4, 2026
33dce80
Clarify viable single-site collection
gregpr07 Jun 4, 2026
3ead547
Nudge bounded agents to finish on final turn
gregpr07 Jun 4, 2026
b48c04b
Shorten browser script observe threshold
gregpr07 Jun 4, 2026
0cb95d7
Align done tool with Browser Use result fields
gregpr07 Jun 4, 2026
2354801
Cap browser script stdout for model context
gregpr07 Jun 4, 2026
25bad16
Lower browser script model output cap
gregpr07 Jun 4, 2026
297930a
Preserve browser script summaries under stdout cap
gregpr07 Jun 4, 2026
21a180a
Add batch browser fetch helpers
gregpr07 Jun 4, 2026
8af682f
Add batch fetch recipe guidance
gregpr07 Jun 4, 2026
3453591
Guide text-heavy extraction away from screenshots
gregpr07 Jun 4, 2026
ce498f7
Add dataset eval timebox guidance
gregpr07 Jun 4, 2026
89bb71e
Record Rust LLM request messages for traces
gregpr07 Jun 4, 2026
040d36c
Enable Anthropic prompt cache breakpoints
gregpr07 Jun 4, 2026
116e730
Mirror Python Anthropic message cache breakpoint
gregpr07 Jun 4, 2026
af70af0
Normalize Anthropic cache usage accounting
gregpr07 Jun 4, 2026
ac9ace2
Merge remote-tracking branch 'origin/main' into magnus/browser-use-ru…
gregpr07 Jun 4, 2026
a823fc0
Emit full LLM observability input
gregpr07 Jun 4, 2026
5b5b6ac
Improve Rust agent replay and cache breakpoints
gregpr07 Jun 4, 2026
9102fb2
Emit Rust LLM tool definitions for tracing
gregpr07 Jun 4, 2026
53e1364
Cache Anthropic tool definitions in provider path
gregpr07 Jun 4, 2026
adeb4cd
Enable Anthropic automatic conversation caching
gregpr07 Jun 4, 2026
98d912b
Apply runtime config overrides to CLI runs
gregpr07 Jun 4, 2026
8fff5fa
Avoid duplicate durable prompt replay
gregpr07 Jun 4, 2026
fa0728a
Nudge long bounded runs to finalize
gregpr07 Jun 4, 2026
e109049
Return structured errors from single browser_fetch
gregpr07 Jun 4, 2026
c92bb0a
Merge remote-tracking branch 'origin/main' into magnus/browser-use-ru…
gregpr07 Jun 4, 2026
45c3659
Handle busy browser recovery without tool failure
gregpr07 Jun 5, 2026
c45d6a6
Merge branch 'main' of https://browser-use-terminal.int.exe.xyz/brows…
gregpr07 Jun 5, 2026
98c530c
Retry transient browser bridge calls
gregpr07 Jun 5, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
57 changes: 46 additions & 11 deletions crates/browser-use-agent/src/config_overrides.rs
Original file line number Diff line number Diff line change
Expand Up @@ -733,41 +733,57 @@ pub fn apply_child_request_runtime_config(
config: &mut ProviderRunConfig,
request: &ChildAgentRunRequest,
) -> Result<()> {
let overrides = &request.config_overrides;
apply_runtime_config_overrides(&mut config.options, &request.config_overrides)
}

/// Apply config keys that mutate in-memory runtime options.
///
/// The raw override list is still retained for downstream consumers that read
/// less common config keys directly, but options that are consulted before those
/// consumers run must be materialized here.
pub fn apply_runtime_config_overrides(
options: &mut AgentRunOptions,
overrides: &ConfigOverrides,
) -> Result<()> {
if let Some(value) = config_override_u64(overrides, "max_turns") {
options.max_turns = usize::try_from(value)
.context("max_turns does not fit in usize")?
.max(1);
}
if let Some(value) = config_override_str(overrides, "browser_mode") {
config.options.browser_mode = Some(value);
options.browser_mode = Some(value);
}
if let Some(value) = config_override_str(overrides, "base_instructions") {
config.options.base_instructions = Some(value);
options.base_instructions = Some(value);
}
if let Some(value) = config_override_str(overrides, "developer_instructions") {
config.options.developer_instructions = Some(value);
options.developer_instructions = Some(value);
}
if let Some(value) = config_override_str(overrides, "compact_prompt") {
config.options.compact_prompt = Some(value);
options.compact_prompt = Some(value);
}
if let Some(value) = config_override_u64(overrides, "python_tool_timeout_seconds") {
config.options.python_tool_timeout_seconds = value;
options.python_tool_timeout_seconds = value;
}
if let Some(value) = config_override_bool(overrides, "model_compaction_enabled") {
config.options.model_compaction_enabled = value;
options.model_compaction_enabled = value;
}
if let Some(value) = config_override_i64(overrides, "model_auto_compact_token_limit") {
config.options.model_auto_compact_token_limit = Some(value);
options.model_auto_compact_token_limit = Some(value);
}
if let Some(value) = config_override_str(overrides, "model_auto_compact_token_limit_scope") {
config.options.model_auto_compact_token_limit_scope =
options.model_auto_compact_token_limit_scope =
parse_auto_compact_token_limit_scope(&value)?;
}
if let Some(value) = config_override_str(overrides, "approval_policy")
.or_else(|| config_override_str(overrides, "ask_for_approval"))
{
config.options.approval_policy = parse_approval_policy(&value)?;
options.approval_policy = parse_approval_policy(&value)?;
}
if let Some(value) = config_override_bool(overrides, "use_guardian")
.or_else(|| config_override_bool(overrides, "guardian"))
{
config.options.use_guardian = value;
options.use_guardian = value;
}
Ok(())
}
Expand Down Expand Up @@ -1816,6 +1832,25 @@ command = "profile-server"
assert!(options.agent_roles.is_empty());
}

#[test]
fn runtime_config_overrides_materialize_max_turns_and_browser_mode() {
let overrides = parse_config_overrides(&ov(&[
"max_turns=100",
"browser_mode=\"remote-cdp\"",
"python_tool_timeout_seconds=45",
"model_compaction_enabled=false",
]))
.unwrap();
let mut options = AgentRunOptions::default();

apply_runtime_config_overrides(&mut options, &overrides).unwrap();

assert_eq!(options.max_turns, 100);
assert_eq!(options.browser_mode.as_deref(), Some("remote-cdp"));
assert_eq!(options.python_tool_timeout_seconds, 45);
assert!(!options.model_compaction_enabled);
}

#[test]
fn provider_run_config_new_uses_explicit_source_and_default_options() {
let config = ProviderRunConfig::new(ProviderBackend::Anthropic, "claude-x");
Expand Down
2 changes: 2 additions & 0 deletions crates/browser-use-agent/src/context/tests_accounting.rs
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,7 @@ fn from_llm_usage_uses_server_total_when_present() {
let u = Usage {
input_tokens: 100,
cached_input_tokens: 40,
cache_creation_input_tokens: 0,
output_tokens: 30,
reasoning_output_tokens: 10,
total_tokens: 123,
Expand All @@ -96,6 +97,7 @@ fn from_llm_usage_total_fallback_excludes_cached() {
let u = Usage {
input_tokens: 100,
cached_input_tokens: 40,
cache_creation_input_tokens: 0,
output_tokens: 30,
reasoning_output_tokens: 10,
total_tokens: 0,
Expand Down
Loading