Skip to content

glob: match explicitly-named dotfiles and resolve literal paths through symlinks - #32853

Merged
Jarred-Sumner merged 8 commits into
mainfrom
claude/farm/38875b1f/glob-explicit-dot-and-symlink-literal
Jun 28, 2026
Merged

glob: match explicitly-named dotfiles and resolve literal paths through symlinks#32853
Jarred-Sumner merged 8 commits into
mainfrom
claude/farm/38875b1f/glob-explicit-dot-and-symlink-literal

ci: retrigger

0b1fe52
Select commit
Loading
Failed to load commit list.
Claude / Claude Code Review completed Jun 27, 2026 in 37m 47s

Code review found 1 important issue

Found 1 candidates, confirmed 1. See review comments for details.

Details

Severity Count
🔴 Important 1
🟡 Nit 0
🟣 Pre-existing 0
Severity File:Line Issue
🔴 Important src/glob/GlobWalker.rs:1048-1056 eval_impl pre-filter blocks **/.dotdir/... fix for SymLink and Unknown entries

Annotations

Check failure on line 1056 in src/glob/GlobWalker.rs

See this annotation in the file changed.

@claude claude / Claude Code Review

eval_impl pre-filter blocks **/.dotdir/... fix for SymLink and Unknown entries

The `**/.dotdir/...` fix only works when readdir reports `DT_DIR`: the `SymLink` arm (with `followSymlinks:true`) and the `Unknown` arm both gate on `eval_impl(&active, entry_name)` before reaching `eval_dir`, and `eval_impl` never peeks past `**`, so for active={`**`} and entry `.dotdir` it returns `false` and the entry is skipped. Result: `new Glob("**/.dotdir/inner.txt").scan({followSymlinks:true})` finds the file when `.dotdir` is a real directory but returns `[]` when `.dotdir` is a symlink