fix(agent): honor explicit no-web requests

This commit is contained in:
Alexandre Teixeira
2026-10-03 04:02:59 +01:00
parent 18996588ff
commit 80adeda937
2 changed files with 6 additions and 8 deletions
+5
View File
@@ -8647,6 +8647,11 @@ def _web_search_unavailable_for_turn(
"""
if "web" not in set(intent_domains or ()):
return False
# Mentioning web only to forbid its use is not affirmative web demand.
# Keep the web tools disabled, but let the normal model-only path answer
# instead of claiming the request cannot proceed without web access.
if _explicitly_avoids_web_lookup(text):
return False
# A turn is unavailable only when every public-web route is disabled.
# Exact-URL turns intentionally expose web_fetch while keeping broad
# web_search disabled; the former intersection check incorrectly
+1 -8
View File
@@ -146,15 +146,8 @@ def test_negative_web_wording_withholds_the_web_tools(monkeypatch, phrasing):
_assert_negative_web_turn(monkeypatch, phrasing)
@pytest.mark.xfail(
strict=True,
raises=_MemoryOnlyTurnBlocked,
reason="negative web wording is recognized but the memory-only turn is "
"misclassified as web-dependent and blocked before the model call; "
"production intent/short-circuit correction is outside test isolation",
)
@pytest.mark.parametrize("phrasing", BLOCKED_MEMORY_ONLY)
def test_negative_web_wording_withholds_the_web_tools_unhandled(monkeypatch, phrasing):
def test_negative_web_wording_withholds_the_web_tools_memory_only(monkeypatch, phrasing):
_assert_negative_web_turn(monkeypatch, phrasing)