mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-04-25 00:51:20 +00:00
fix: /browser connect CDP override now takes priority over Camofox (#10523)
When a user runs /browser connect to attach browser tools to their real Chrome instance via CDP, the BROWSER_CDP_URL env var is set. However, every browser tool function checks _is_camofox_mode() first, which short-circuits to the Camofox backend before _get_session_info() ever checks for the CDP override. Fix: is_camofox_mode() now returns False when BROWSER_CDP_URL is set, so the explicit CDP connection takes priority. This is the correct behavior — /browser connect is an intentional user override. Reported by SkyLinx on Discord.
This commit is contained in:
parent
824c33729d
commit
305a702e09
2 changed files with 21 additions and 1 deletions
|
|
@ -37,6 +37,18 @@ class TestCamofoxMode:
|
||||||
monkeypatch.setenv("CAMOFOX_URL", "http://localhost:9377")
|
monkeypatch.setenv("CAMOFOX_URL", "http://localhost:9377")
|
||||||
assert is_camofox_mode() is True
|
assert is_camofox_mode() is True
|
||||||
|
|
||||||
|
def test_cdp_override_takes_priority(self, monkeypatch):
|
||||||
|
"""When BROWSER_CDP_URL is set (via /browser connect), CDP takes priority over Camofox."""
|
||||||
|
monkeypatch.setenv("CAMOFOX_URL", "http://localhost:9377")
|
||||||
|
monkeypatch.setenv("BROWSER_CDP_URL", "http://127.0.0.1:9222")
|
||||||
|
assert is_camofox_mode() is False
|
||||||
|
|
||||||
|
def test_cdp_override_blank_does_not_disable_camofox(self, monkeypatch):
|
||||||
|
"""Empty/whitespace BROWSER_CDP_URL should not suppress Camofox."""
|
||||||
|
monkeypatch.setenv("CAMOFOX_URL", "http://localhost:9377")
|
||||||
|
monkeypatch.setenv("BROWSER_CDP_URL", " ")
|
||||||
|
assert is_camofox_mode() is True
|
||||||
|
|
||||||
def test_health_check_unreachable(self, monkeypatch):
|
def test_health_check_unreachable(self, monkeypatch):
|
||||||
monkeypatch.setenv("CAMOFOX_URL", "http://localhost:19999")
|
monkeypatch.setenv("CAMOFOX_URL", "http://localhost:19999")
|
||||||
assert check_camofox_available() is False
|
assert check_camofox_available() is False
|
||||||
|
|
|
||||||
|
|
@ -54,7 +54,15 @@ def get_camofox_url() -> str:
|
||||||
|
|
||||||
|
|
||||||
def is_camofox_mode() -> bool:
|
def is_camofox_mode() -> bool:
|
||||||
"""True when Camofox backend is configured."""
|
"""True when Camofox backend is configured and no CDP override is active.
|
||||||
|
|
||||||
|
When the user has explicitly connected to a live Chrome instance via
|
||||||
|
``/browser connect`` (which sets ``BROWSER_CDP_URL``), the CDP connection
|
||||||
|
takes priority over Camofox so the browser tools operate on the real
|
||||||
|
browser instead of being silently routed to the Camofox backend.
|
||||||
|
"""
|
||||||
|
if os.getenv("BROWSER_CDP_URL", "").strip():
|
||||||
|
return False
|
||||||
return bool(get_camofox_url())
|
return bool(get_camofox_url())
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue