On a fresh clone, script/bootstrap printed bootstrap complete but the first make test-e2e died with Cannot find module 'playwright-core'. A plain yarn install --frozen-lockfile fixed it in 0.76s.
Observed once and not reproducible on a second attempt, so this is filed as a suspected flake in install_js_deps rather than a confirmed defect. Recording it rather than dropping it because the failure mode is expensive: bootstrap reports success, so the natural reading of the subsequent error is that the e2e harness itself is broken, not that dependencies are half-installed.
Implementation requirements
Establish whether install_js_deps can exit 0 with an incomplete node_modules — check whether any yarn invocation's exit status is discarded, and whether the workspace layout matters (/srv/code/package.json declares yarn workspaces, so a clone made inside that tree hoists into a shared node_modules, which is a plausible source of this).
If the cause cannot be reproduced, add a cheap post-install verification instead: assert the modules the e2e harnesses actually require are resolvable, and fail bootstrap loudly if not.
Do not paper over it with a blind second yarn install.
Definition of done
script/bootstrap cannot report success while a dependency the test targets need is unresolvable.
The failure names the missing module and what to do about it.
TODO.md updated in the same commit.
make check passes.
On a fresh clone, `script/bootstrap` printed `bootstrap complete` but the first `make test-e2e` died with `Cannot find module 'playwright-core'`. A plain `yarn install --frozen-lockfile` fixed it in 0.76s.
Observed once and not reproducible on a second attempt, so this is filed as a suspected flake in `install_js_deps` rather than a confirmed defect. Recording it rather than dropping it because the failure mode is expensive: bootstrap reports success, so the natural reading of the subsequent error is that the e2e harness itself is broken, not that dependencies are half-installed.
## Implementation requirements
- Establish whether `install_js_deps` can exit 0 with an incomplete `node_modules` — check whether any `yarn` invocation's exit status is discarded, and whether the workspace layout matters (`/srv/code/package.json` declares yarn workspaces, so a clone made inside that tree hoists into a shared `node_modules`, which is a plausible source of this).
- If the cause cannot be reproduced, add a cheap post-install verification instead: assert the modules the e2e harnesses actually require are resolvable, and fail bootstrap loudly if not.
- Do not paper over it with a blind second `yarn install`.
## Definition of done
- [ ] `script/bootstrap` cannot report success while a dependency the test targets need is unresolvable.
- [ ] The failure names the missing module and what to do about it.
- [ ] `TODO.md` updated in the same commit.
- [ ] `make check` passes.
Plan: look for the cause first (a discarded install status, or the workspace hoisting named above); if none is found, script/bootstrap ends with a few lines that resolve the modules the test targets need and fail naming the missing one and the fix. No blind second install. Shown failing with a module removed.
Model: opus-5-5
Plan: look for the cause first (a discarded install status, or the workspace hoisting named above); if none is found, `script/bootstrap` ends with a few lines that resolve the modules the test targets need and fail naming the missing one and the fix. No blind second install. Shown failing with a module removed.
Model: opus-5-5
Built in #483. After the install, script/bootstrap asks node to resolve jest, playwright-core and ethers. If one is missing it fails, naming the module and rm -rf node_modules && make bootstrap as the fix.
The fresh-clone failure did not reproduce. What did reproduce is a package deleted from node_modules surviving a re-run, because yarn skips the install while node_modules/.yarn-integrity matches yarn.lock.
Model: opus-5-5
Built in https://git.eeqj.de/sneak/AutistMask/pulls/483. After the install, `script/bootstrap` asks node to resolve `jest`, `playwright-core` and `ethers`. If one is missing it fails, naming the module and `rm -rf node_modules && make bootstrap` as the fix.
The fresh-clone failure did not reproduce. What did reproduce is a package deleted from `node_modules` surviving a re-run, because yarn skips the install while `node_modules/.yarn-integrity` matches `yarn.lock`.
Model: opus-5-5
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
On a fresh clone,
script/bootstrapprintedbootstrap completebut the firstmake test-e2edied withCannot find module 'playwright-core'. A plainyarn install --frozen-lockfilefixed it in 0.76s.Observed once and not reproducible on a second attempt, so this is filed as a suspected flake in
install_js_depsrather than a confirmed defect. Recording it rather than dropping it because the failure mode is expensive: bootstrap reports success, so the natural reading of the subsequent error is that the e2e harness itself is broken, not that dependencies are half-installed.Implementation requirements
install_js_depscan exit 0 with an incompletenode_modules— check whether anyyarninvocation's exit status is discarded, and whether the workspace layout matters (/srv/code/package.jsondeclares yarn workspaces, so a clone made inside that tree hoists into a sharednode_modules, which is a plausible source of this).yarn install.Definition of done
script/bootstrapcannot report success while a dependency the test targets need is unresolvable.TODO.mdupdated in the same commit.make checkpasses.Plan: look for the cause first (a discarded install status, or the workspace hoisting named above); if none is found,
script/bootstrapends with a few lines that resolve the modules the test targets need and fail naming the missing one and the fix. No blind second install. Shown failing with a module removed.Model: opus-5-5
Built in #483. After the install,
script/bootstrapasks node to resolvejest,playwright-coreandethers. If one is missing it fails, naming the module andrm -rf node_modules && make bootstrapas the fix.The fresh-clone failure did not reproduce. What did reproduce is a package deleted from
node_modulessurviving a re-run, because yarn skips the install whilenode_modules/.yarn-integritymatchesyarn.lock.Model: opus-5-5