fix(app): spawn bun by absolute path in e2e-local to fix Windows e2e - #80
Merged
nikomatt69 merged 1 commit intoMay 23, 2026
Conversation
…ampoline The Windows e2e job (`test (windows)`) failed deterministically: `bun script/e2e-local.ts` started, but its first child spawn `Bun.spawn(["bun", ...])` resolved `bun` through node_modules/.bin, where the hoisted-linker install on Windows (workaround for oven-sh/bun#28147) produces a broken .exe trampoline: error: could not create process Bun failed to remap this bin to its proper location within node_modules. Spawn the running bun binary by absolute path (process.execPath) instead of the bare string "bun" so the spawn no longer depends on trampoline resolution. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This was referenced Jul 28, 2026
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.
Issue for this PR
Closes #79
Type of change
What does this PR do?
The
test (windows)job fails on every run, before the e2e script even starts:Root cause is a nested
bunresolving a broken trampoline. The job runsbun test:e2e:local, whose package-script value isbun script/e2e-local.ts. That nestedbuntoken resolves throughnode_modules/.bin, where the Windows install (bun install --linker hoisted, the documented workaround for oven-sh/bun#28147) leaves a broken.exetrampoline.Two changes fix it:
ci(test): run the script file directly (bun script/e2e-local.ts) instead of via thebun test:e2e:localpackage script, so there is no nested package-scriptbunto resolve throughnode_modules/.bin.fix(app): insidee2e-local.ts, spawn child bun processes by absolute path (process.execPath) instead of the bare string"bun", so the seed and playwright spawns don't hit the trampolines either.How did you verify your code works?
The failure only reproduces on the Windows CI runner (fresh hoisted install), not locally. With the first version of this PR (in-script fix only) the Windows job got further — it failed after ~6 min at the same nested-bun point rather than immediately — which confirmed the remaining failure was the package-script indirection, addressed by change #1. The real verification is this PR's
test (windows)job.Checklist