Repository navigation
Conversation
wan9chi
added this pull request to stack #826
October 9, 2026 06:06
wan9chi
force-pushed
the
claude/ignore-pnpm-workspace-state
branch
from
October 9, 2026 06:08
ad30cff to
1a36a1e
Compare
fspy benchmarklinuxmacoswindows |
wan9chi
force-pushed
the
claude/ignore-pnpm-workspace-state
branch
from
October 12, 2026 04:32
1a36a1e to
34c502f
Compare
wan9chi
force-pushed
the
claude/ignore-pnpm-workspace-state
branch
from
October 12, 2026 05:26
34c502f to
df1dd79
Compare
wan9chi
added a commit
that referenced
this pull request
Oct 12, 2026
## Motivation `vitest_browser_cache::vitest_browser_caches_inputs_and_restores_outputs` fails intermittently on Windows runners in the `Test (windows-ignored)` job: ``` Error: listen EACCES: permission denied ::1:63315 ``` 63315 is the fixed default port for Vitest browser mode's server. Windows reserves dynamic port ranges (Hyper-V/WinNAT excluded port ranges), and listening on a reserved port fails with `EACCES`. Vite only tries another port on `EADDRINUSE`, so the run fails, `dist/result.json` is never written, and the snapshot diverges. It depends on which runner the job lands on: it failed on #824 and #825 and passed on other runs of the same code. ## Changes The fixture's browser server now listens on port 0, so the OS chooses a free port. Vite supports `server.listen(0)` directly, but the config can't request it the normal way: - `test.api: { port: 0 }`: Vitest only copies `api.port` when it is truthy, so `0` falls back to 63315. - Setting `test.api` at all, even with a concrete port, adds an `API started at http://localhost:<port>/` banner line that would change the snapshot. `test.browser.api` prints a deprecation warning in Vitest 5. Instead, a small `enforce: 'post'` plugin sets `test.api.port = 0` after Vitest resolves `test.api`. The banner stays unchanged, and the snapshot is identical. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
wan9chi
force-pushed
the
claude/ignore-pnpm-workspace-state
branch
2 times, most recently
from
October 12, 2026 05:42
945328b to
8cb1389
Compare
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
`node_modules/.pnpm-workspace-state-*.json` records pnpm's dependency check before `pnpm run` and `pnpm exec`. pnpm rewrites it with a new timestamp whenever it rechecks dependencies, for example after a manifest becomes newer than the last check, and it holds absolute project paths. Tasks that run `pnpm run` read it, so they missed the cache whenever another pnpm command had rechecked, and across checkouts. Whether the check passes doesn't change what a cached task outputs, so these files are skipped like `.git`, in any `node_modules` directory. The e2e test runs a real `pnpm run`, so `vite-task-tools` now depends on pnpm's npm package, pinned to the repo's `packageManager` version. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
wan9chi
force-pushed
the
claude/ignore-pnpm-workspace-state
branch
from
October 12, 2026 06:24
8cb1389 to
49c0fd5
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.
Motivation
node_modules/.pnpm-workspace-state-v1.jsonrecords pnpm's dependency check beforepnpm runandpnpm exec, which pnpm 11 runs by default (verify-deps-before-run: install). Every task that runspnpm runreads it. pnpm rewrites it with a newlastValidatedTimestampwhenever it rechecks dependencies, which happens when a manifest is newer than the last check, for example after switching branches away and back. It also holds absolute project directories. So a cached task missed with'node_modules/.pnpm-workspace-state-v1.json' modifiedafter any other pnpm command had rechecked, and across checkouts.Changes
node_modules/.pnpm-workspace-state-*.jsonfiles in anynode_modulesdirectory are skipped when recording tracked accesses, next to.git, so they're neither inputs nor outputs. The pattern also covers future versions of the file and pnpm workspaces nested inside the vite-task workspace.pnpm installinside the task, which modifiesnode_modules. The file's settings mirror config files the nested pnpm reads anyway.pnpm runtask. It stays a cache hit after an uncachedpnpm runrechecks dependencies and rewrites the state file, and without the skip it misses. To run pnpm's JavaScript build at a pinned version,vite-task-toolsnow depends on thepnpmnpm package, kept in sync withpackageManager. The test is ignored by default, like the other Node-backed fixtures.🤖 Generated with Claude Code