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
2026-07-23 23:33:35 -04:00
committed by GitHub
parent 315a6b5995
commit 504e724fde
+2 -2
View File
@@ -33,9 +33,9 @@ MAX_GREP_MATCHES = 50
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 (
'\|' in pattern
'|' in pattern
or '.*' in pattern
or '.+' in pattern
or '.?' in pattern