I asked Command Code to search my project log files for errors using its built-in search tools. Command Code invoked its grep tool, but the search failed before it searched anything.
What I expected
When I ask Command Code to search matching log files with a pattern such as:
- Glob:
**/*.log
- Pattern:
error|exception|failed|failure|fatal|critical|warning|stack trace|traceback
I expect Command Code's search tool to search the matching files. If no file type is selected, the tool should search based on the glob alone.
What happened
Command Code's grep tool returned:
grep: rg: unrecognized file type:
This indicates that the tool is passing an empty type value to ripgrep, effectively invoking something like:
Command Code also tried using type: "text", which returned:
grep: rg: unrecognized file type: text
text is not a registered ripgrep file type.
I did not run grep, rg, or the file search manually. Command Code invoked the search tool as part of handling my request.
How to reproduce
- Run Command Code
1.14.0 on macOS.
- Ask Command Code to search project log files for errors.
- Command Code invokes the built-in
grep tool with a valid project path, glob: "**/*.log", and an error pattern.
- Leave the file type empty or unset.
- Observe
rg: unrecognized file type:.
- Setting the type to
text produces rg: unrecognized file type: text instead.
Environment
- Command Code:
1.14.0
- macOS 26.4, ARM64
- zsh (
/bin/zsh)
Workaround
Command Code worked around the problem by using its glob tool to locate log files and then opening the files individually with read_file. That worked, but it is inconvenient for large or numerous log files and does not provide the normal search/context behavior.
I was asking Command Code to investigate real application failures in the logs, including database connection errors, missing database tables, missing PHP classes, an unknown ActiveRecord property, and audit-log schema errors. I have not included any credentials or tokens that were present in those logs.
Possible fix
The type field should be optional, and an empty value should not be passed to ripgrep. The tool could also validate file types against ripgrep's registered types and return a clear validation error for unsupported values.
I asked Command Code to search my project log files for errors using its built-in search tools. Command Code invoked its
greptool, but the search failed before it searched anything.What I expected
When I ask Command Code to search matching log files with a pattern such as:
**/*.logerror|exception|failed|failure|fatal|critical|warning|stack trace|tracebackI expect Command Code's search tool to search the matching files. If no file type is selected, the tool should search based on the glob alone.
What happened
Command Code's
greptool returned:This indicates that the tool is passing an empty
typevalue to ripgrep, effectively invoking something like:Command Code also tried using
type: "text", which returned:textis not a registered ripgrep file type.I did not run
grep,rg, or the file search manually. Command Code invoked the search tool as part of handling my request.How to reproduce
1.14.0on macOS.greptool with a valid project path,glob: "**/*.log", and an error pattern.rg: unrecognized file type:.textproducesrg: unrecognized file type: textinstead.Environment
1.14.0/bin/zsh)Workaround
Command Code worked around the problem by using its
globtool to locate log files and then opening the files individually withread_file. That worked, but it is inconvenient for large or numerous log files and does not provide the normal search/context behavior.I was asking Command Code to investigate real application failures in the logs, including database connection errors, missing database tables, missing PHP classes, an unknown ActiveRecord property, and audit-log schema errors. I have not included any credentials or tokens that were present in those logs.
Possible fix
The
typefield should be optional, and an empty value should not be passed to ripgrep. The tool could also validate file types against ripgrep's registered types and return a clear validation error for unsupported values.