Tool · Qwen Code · Alibaba

grep_search

qwen-code/grep-searchCode search · primarysource@56f75adf2992checked 2026-09-04
What matters here1 of 3 invariants hold · 1 fails · 1 unverified

The facts the registry marks decision-changing, with how the other implementations answered. An invariant may be shown as pass/fail; a design choice never is, however unusual it looks.

How this differs from most implementations
  • Case sensitivityalways insensitive, not configurablevs sensitive, model can ask in 3 of 5

Derived by comparing every recorded value against the other implementations of the same capability. Differing is not a defect unless the row is marked an invariant.

Description, as the model sees it

Not recorded yet — the verbatim description has not been captured for this tool.

Registered schema

Not recorded yet — the schema as registered has not been captured for this tool.

Observed · Code search

compare all →
FactThis toolAcross all implementations
Shape3 of 3 recorded
What it searchesby-contentsrclike 9 of 20by-name ×9 · both ×1 +1
Tools per harnesstwo toolssrclike 18 of 20no search tool ×1 · one tool ×1
Search engineripgrep, else git grep, else grep, else JS regexsrc
Two implementations of the same tool name ship side by side (ripGrep.ts and grep.ts); the fallback chain ends in an in-process JavaScript scan.
only one of 19bundled ripgrep ×6 · ripgrep ×2 +101 unverified
Query language2 of 2 recorded
Regex dialectvaries by backend: Rust regex, git grep, POSIX, or JS RegExpsrconly one of 11Rust regex ×8 · varies by backend: Rust regex, POSIX, or Python re ×1 +1
Case sensitivityalways insensitive, not configurablesrc
--ignore-case is appended unconditionally when building the ripgrep argv.
like 2 of 6sensitive, model can ask ×3 · whatever is on the machine ×113 unverified
Result shape4 of 4 recorded
Line numbers in resultsLN: and path:line:textsrc
1-indexed; the JS fallback numbers with index + 1.
only one of 11Line N: ×3 · path:N: ×2 +5
Result capline and character limits, both announcedsrconly one of 20100 files ×4 · 100 matches ×3 +10
Announces truncationinvariantholdssrc
"[N lines truncated] ..." is appended when either the line or the character budget bites.
all 18 hold1 unverified
How "no matches" readssentencesrc
"No matches found for pattern ..." — the sentence names the pattern and the search location.
like 16 of 17empty stdout ×13 unverified
Agreement with read2 of 2 recorded
Search line N is read line Ninvariantfailssrc
Search reports 1-indexed line numbers; read_file's offset is documented as "the 0-based line number to start reading from". A hit reported at L42 is at read_file offset 41.
6 of 7 holdtrue ×62 unverified
Search counts as having readyes — matched files are recorded as partial readssrc
recordGrepResultFileReads stats every matched path and calls cache.recordRead(..., {full: false}), so a file the model has seen one line of is registered with the read cache.
only one of 2no read tracking at all ×19 unverified
Scope1 of 3 recorded
Respects .gitignoreyes, plus .qwenignoresrc
--no-ignore-vcs is only passed when respectGitIgnore is turned off.
like 2 of 18yes ×8 · no, deliberately ×2 +52 unverified
Searches hidden files?14 others recordedyes ×7 · yes, except .git ×3 +36 unverified
Binary content never enters contextinvariant?2 of 3 holdtrue ×2 · false ×18 unverified
Ordering0 of 1 recorded
Result ordering?16 others recordedmodification time, newest first ×5 · ripgrep traversal order ×5 +64 unverified

Other tools in Qwen Code

names verbatim, as registered