Skip to content

test(cache): run the remote cache e2e tests on Windows - #841

Merged
wan9chi merged 2 commits into
claude/pnpm-direct-stepsfrom
claude/remote-cache-tests-windows
Oct 12, 2026
Merged

wan9chi merged 2 commits into
claude/pnpm-direct-stepsfrom
claude/remote-cache-tests-windows

Conversation

@wan9chi

@wan9chi wan9chi commented Oct 12, 2026 •

Copy link
Copy Markdown
Member

Motivation

The remote_cache and remote_cache_backend e2e tests were skipped on Windows because the e2e harness couldn't launch remote-cache-server, a pnpm command shim in vite-task-tools. #839 makes the harness resolve .cmd shims the way vp does and start them outside the verbatim temp path, so these tests can run on Windows too.

Changes

  • Remove cfg = "not(windows)" from the remote_cache and remote_cache_backend cases, along with the comments that explained the skip.
  • remote-cache-server starts its command with cross-spawn instead of Node's spawn, which can't run pnpm's .cmd shims on Windows (spawn cbor-http ENOENT). cross-spawn and @types/cross-spawn are added to vite-task-tools through the catalog.
  • pending_uploads and hide_pending_uploads stay skipped on Windows, now for a different, documented reason. A milestone there is the console title, and ConPTY sends only the latest title when it next renders. In pending_uploads, the proxy's stalled milestone for the second upload can replace uploads-pending. In hide_pending_uploads, nothing is printed after it.

🤖 Generated with Claude Code

They were skipped on Windows because the e2e harness couldn't launch
`remote-cache-server`, a pnpm command shim. The harness now resolves
`.cmd` shims and starts them outside the verbatim temp path.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@wan9chi
wan9chi added this pull request to stack #842 October 12, 2026 07:06
@github-actions

github-actions Bot commented Oct 12, 2026 •

Copy link
Copy Markdown

fspy benchmark

linux

dynamic/launch             change  -0.86%  [-11.38% .. +14.94%]  overhead   +49.24%
dynamic/access             change  -6.59%  [-30.06% .. +16.17%]  overhead    +9.89%
dynamic/access-relative    change  +0.68%  [-11.64% .. +16.90%]  overhead   +53.41%
dynamic/access-contended   change  +1.15%  [ -7.21% .. +13.60%]  overhead   +11.95%
static/launch              change  -0.79%  [ -9.81% ..  +8.56%]  overhead  +149.81%
static/access              change  +0.44%  [ -9.78% ..  +7.65%]  overhead  +827.55%
static/access-relative     change  +0.86%  [ -5.50% ..  +7.24%]  overhead +1258.07%
static/access-contended    change  +0.57%  [ -8.27% .. +11.01%]  overhead +2072.04%

macos

dynamic/launch             change  -0.53%  [ -4.67% ..  +4.00%]  overhead  +224.86%
dynamic/access             change  +1.73%  [-21.80% .. +156.84%]  overhead    +5.03%
dynamic/access-relative    change  -0.21%  [ -8.31% .. +18.29%]  overhead  +243.42%
dynamic/access-contended   change  -7.24%  [-86.11% .. +13.31%]  overhead    -0.56%

windows

dynamic/launch             change  +0.14%  [ -3.32% ..  +3.41%]  overhead   +26.97%
dynamic/access             change  +0.37%  [ -0.74% ..  +1.31%]  overhead    +1.14%
dynamic/access-relative    change  -0.18%  [ -1.09% ..  +0.92%]  overhead    +1.29%
dynamic/access-contended   change  +0.72%  [ -4.50% .. +14.41%]  overhead    +1.83%

On Windows, Node's `spawn` can't run pnpm's `.cmd` shims, so
`remote-cache-server cbor-http ...` failed with `spawn cbor-http ENOENT`.
cross-spawn runs them with the arguments escaped for `cmd.exe`.

`pending_uploads` and `hide_pending_uploads` stay skipped on Windows for
another reason: a milestone there is the console title, which ConPTY
sends only as the latest title when it next renders, so `uploads-pending`
can be replaced by the proxy's `stalled` milestone or not sent at all.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@socket-security

Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Addednpm/​@​types/​cross-spawn@​6.0.61001007780100

View full report

@wan9chi
wan9chi merged commit 4a0f130 into main Oct 12, 2026
21 checks passed
@wan9chi
wan9chi deleted the claude/remote-cache-tests-windows branch October 12, 2026 07:24
wan9chi added a commit that referenced this pull request Oct 12, 2026
…#844)

## Motivation

`remote_cache::ctrl_c_during_upload` passed on #841 but timed out on
main in [`Test
(windows-ignored)`](https://github.com/voidzero-dev/vite-task/actions/runs/38217517719/job/114706317248),
waiting for the `uploads-pending` milestone.

On Windows a milestone is the console title, and ConPTY sends only the
latest title when it next renders. `vtt stalled-remote-cache` emits a
`stalled` milestone when the upload arrives, which can be just after `vt
run` emits `uploads-pending`. `stalled` then replaces it, and the
harness waits until the test times out. `fast_fail_during_upload` has
the same race, and it's why `pending_uploads` and `hide_pending_uploads`
timed out on Windows in #841's first CI run. Only `ctrl_c_during_fetch`
waits for `stalled`.

## Changes

- `vtt stalled-remote-cache` emits the `stalled` milestone only with the
new `--milestone` flag, which `ctrl_c_during_fetch` passes.
- `pending_uploads` and `hide_pending_uploads` run on Windows again.
#841 skipped `hide_pending_uploads` because nothing is printed after
`uploads-pending`, but ConPTY sends a title change without other output,
as `milestone_raw_mode_keystrokes` and `vtt exit-on-ctrlc` show.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant