🏗️🔧:let the glob see dot files - #1804
Merged
Merged
Conversation
✅ Deploy Preview for gh-pages-openinf ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
This was referenced Aug 12, 2026
DerekNonGeneric
force-pushed
the
fix/glob-skips-dotfiles
branch
from
August 13, 2026 00:49
e225678 to
53120f6
Compare
DerekNonGeneric
force-pushed
the
fix/glob-skips-dotfiles
branch
2 times, most recently
from
August 13, 2026 02:35
0fc7a98 to
efff2f3
Compare
Neither `*` nor `**` will match a name that starts with a dot, so every dot-config file in the repo has been slipping past the verify and format tasks unnoticed: `**/*.yml` walked straight past `.github/workflows/`, and `**/*.mjs` never saw `.remarkrc.mjs`. Eighteen files across five tasks were going unchecked. Brace alternation is the way back in, since `fs.glob` has no `dot` option to set. Matching dot names also brings `.git/` within reach of a plain `**`, hence the standing exclusion. Assisted-by: Claude-Code:claude-opus-5
What the tasks find now that they can see dot files: sequence indentation in the semgrep workflow, and a hand-wrapped array in .remarkrc.mjs that biome would rather have one entry per line. Assisted-by: Claude-Code:claude-opus-5
Naming a directory expands to `dir/**`, and a pattern whose own tail is
`**` has no basename segment for the dot-file alternative to attach to.
So `glob('sub/')` returned everything under it except the dot files --
the one shape where the widening quietly did not apply.
Found in review, before this landed. No task used a trailing slash as an
include, so nothing was affected in practice.
Assisted-by: Claude-Code:claude-opus-5
DerekNonGeneric
force-pushed
the
fix/glob-skips-dotfiles
branch
from
August 13, 2026 03:23
4682b48 to
6663a82
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The
glob()helper inbuild/utils.mtshas never matched a dot-prefixed name, so every dot-config file in the repo has been slipping past the verify and format tasks.What was happening
Neither
*nor**matches a name beginning with a dot, andfs.globhas nodotoption to turn that off. So**/*.ymlwalked straight past.github/workflows/, and**/*.mjsnever saw.remarkrc.mjs.Eighteen files across five tasks were unchecked:
verify.js.remarkrc.mjsverify.json.ecrc.json,.stylelintrc.json,.renovaterc.json5,.markdownlint.jsonc,.markdownlint-cli2.jsonc,.vscode/*.json×3,.devcontainer/*.json×2verify.yaml.prettierrc.yml,.github/dependabot.yml,.github/workflows/*.yml×4verify.toml.deepsource.tomlverify.md.github/PULL_REQUEST_TEMPLATE.md,.github/ISSUE_TEMPLATE/1-bug-report.mdverify.dockerfilewas unaffected: its pattern names.devcontainer/outright, and a literal dot in the pattern does match.The fix
Brace alternation, applied to include patterns in the helper rather than to each caller — being explicit per task is what failed here:
One alternative descends through a dot directory, one matches the dot file itself. A dot directory nested inside another (
.a/.b/) is past what the syntax can express; there is none here, and one would have to be named outright.Matching dot names also brings
.git/within reach of a plain**, so the helper now excludes it as standing policy. Excluded directories are pruned whole, dot entries included, so callers do not need to widen their own exclusions — verified by checking that nothing leaks out ofnode_modules/.The fallout
Only two tasks failed once they could see everything, and the second commit fixes what they found:
.github/dependabot.yml— quote style.github/workflows/semgrep.yml— sequence indentation.remarkrc.mjs— a hand-wrapped array biome would rather have one entry per lineThe remaining sixteen files were already clean. Neither
.github/file is imported content:siteifyHealthFilesonly writes tocollections/_docs/andcollections/_pages/.Verification
nps test— 13/13 tasks pass, up from 11/13 mid-changenps buildunchanged: 26 copied, 34 writtenFound while looking at #1274, which wants a filename linter — a check that would have been just as blind to
.github/as everything else.