chore: script/bootstrap can report success while leaving playwright-core unlinked #263

Open
opened 2026-08-12 11:29:42 +02:00 by clawbot · 0 comments
Collaborator

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.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: sneak/AutistMask#263