fix: detect bare pipe alternation as regex in grep_knowledge_files (#26795)

is_regex_pattern only recognized the BRE-escaped form \| and not a bare |,
so a pattern like "Jornak|Silverlake|Orissa" was treated as one literal
string (including the pipe characters) and silently returned no matches.
This contradicted the tool docstring, which explicitly advertises
"error|warn" as an auto-detected regex example, and misled models into
concluding the searched terms were absent from the file.

Checking for a bare | also covers the escaped form, since \| contains |,
and normalize_regex already converts escaped pipes before compilation.
Literal patterns without regex metacharacters are unaffected.

Fixes #26781
This commit is contained in:
Classic298 authored and GitHub committed 2026-07-23 23:33:35 -04:00
1 parent 315a6b5995
commit 504e724fde
1 file changed
+2 -2
+2 -2
View File
@@ -33,9 +33,9 @@ MAX_GREP_MATCHES = 50
def is_regex_pattern(pattern: str) -> bool: def is_regex_pattern(pattern: str) -> bool:
"""Detect if a pattern looks like regex (\|, .*, .+, \d, \w, \s, [...]).""" """Detect if a pattern looks like regex (|, .*, .+, \d, \w, \s, [...])."""
return ( return (
'\|' in pattern '|' in pattern
or '.*' in pattern or '.*' in pattern
or '.+' in pattern or '.+' in pattern
or '.?' in pattern or '.?' in pattern