ci(reviewdog): exclude pnpm probe files from typos (#13242)

`reviewdog` runs every runner concurrently in the repository root, and
two of them are `pnpm -C web exec eslint` and `pnpm -C docs exec
eslint`. Every `pnpm exec` writes two or three filesystem probe files
named `_tmp_<pid>_<hex>` into the directory it runs in and unlinks them
immediately, so `web/` and `docs/` gain and lose untracked files while
the `typos` runner is walking them.

Nothing ignores those names, so the walk yields one and the
`canonicalize()` in `walk_entry` then fails with `ENOENT`. Since v1.50.2
that no longer aborts the process, but it is still reported as an error,
which makes `typos` exit 1 rather than 0 or 2. `run_typos` reads any
other exit code as `typos` itself failing and emits `typos failed (exit
1): error: No such file or directory (os error 2)` against
`.reviewdog.yml`, so the linting step fails on a tree that has nothing
wrong with it. Nine of the last six hundred linting steps failed this
way, and the second `reviewdog` pass in `post-command` passed on the
same tree each time.

Excluding the name closes the window rather than narrowing it, since the
walker matches it against the `readdir` entry and never canonicalizes or
reads the path. Churning probe files through `web/`, `docs/` and
`internal/` while running `.buildkite/steps/lint.sh typos .` fails ten
times out of ten without the exclusion and zero times out of ten with
it.

`crate-ci/typos#1622` proposes skipping a vanished path during the walk
instead of reporting it, which would make this unnecessary, but it is
neither merged nor released.

Signed-off-by: Amir Zarrinkafsh <3339418+nightah@users.noreply.github.com>
This commit is contained in:
Amir Zarrinkafsh authored and GitHub committed 2026-09-22 23:28:03 +00:00
1 parent a596e756fd
commit 882b636ec6
1 file changed
+1
+1
View File
@@ -62,6 +62,7 @@ ignore-hidden = false
extend-exclude = [
".git/",
".claude/",
"_tmp_*",
"*.svg",
"go.sum",
"*-lock.yaml",