github / github/copilot-cli

`glob` tool false-negatives on any multi-segment pattern unless prefixed with `**/`

Abierto
#4,271 0 comentarios 0 reacciones 0 asignados Ver en GitHub
area:tools
Lenguaje dominante
Shell
Estrellas
11.2k
Forks
1.9k
Merge medio
14 h 16 min
PR fusionados (30 d)
6

Descripción

## Describe the bug

The built-in `glob` tool returns "No files matched the pattern." for **any
pattern containing a path separator**, unless the pattern is prefixed with
`**/`. Literal relative paths (`2026/07/26.md`) and wildcarded multi-segment
patterns (`2026/07/*.md`) both fail even though the files exist directly under
the given `paths` root. Single-segment patterns (`inbox.md`, `*.md`) and
`**/`-prefixed patterns work.

This is worse than an inconvenience: the agent trusts the empty result. In one
session the agent checked for a file with its exact relative path, got no
match, and confidently declared the file missing — then acted on that false
premise.

## Affected version

1.0.70-0 (running as the VS Code Agent Sessions CLI backend; macOS arm64)

## Steps to reproduce the behavior

Against a repo containing `2026/07/26.md` and `inbox.md` at the root:

1. `glob` with `pattern: "2026/07/26.md"`, `paths: [""]` →
`No files matched the pattern.` (file exists)
2. `glob` with `pattern: "2026/07/*.md"`, same paths →
`No files matched the pattern.` (31 files exist there)
3. `glob` with `pattern: "**/07/26.md"`, same paths →
`/2026/07/26.md` ✔
4. `glob` with `pattern: "inbox.md"`, same paths →
`/inbox.md` ✔

So the failure is specifically: multi-segment pattern **not** prefixed with
`**/`. It looks like the matcher compares patterns against basenames (or a
single path segment) unless a globstar forces full-path matching.

## Expected behavior

A relative pattern is resolved against the given `paths` roots, per standard
glob semantics: `2026/07/26.md` matches `/2026/07/26.md`. At minimum,
the tool description should say patterns must be `**/`-prefixed to traverse
directories — but fixing the matching is much better than documenting the
trap, since empty results are treated as evidence of absence.

## Additional context

- OS: macOS 26.5.2, arm64
- Observed both from VS Code Agent Sessions and reproduced deterministically
(4 calls above, same session, seconds apart)

Guía de contribución

Abrir la guía de contribución

Línea de trabajo

Empieza localizando la herramienta glob integrada y su implementación de coincidencia de rutas, y después reproduce los cuatro patrones del issue en un repositorio que contenga los archivos enumerados. Sigue cómo se comparan los patrones relativos con las raíces de las rutas. Se considera terminado cuando los patrones relativos de varios segmentos coinciden con archivos existentes, mientras los casos existentes de un solo segmento y **/ siguen funcionando.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
shell
Área
cli, tooling
Tipo de issue
Error
Dificultad
3/5
Tiempo estimado
1-2 días
Estado de actividad
Tranquilo
Claridad
Bastante claro
Aptitud para principiantes
55/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.