Skip to content

fix: pin the verification harness install (v0.6.1) - #20

Merged
TueJon merged 3 commits into
mainfrom
fix/pin-verification-harness
Sep 19, 2026
Merged

TueJon merged 3 commits into
mainfrom
fix/pin-verification-harness

Conversation

@TueJon

@TueJon TueJon commented Sep 19, 2026

Copy link
Copy Markdown
Owner

v0.6.0 removed unpinned package execution from the guidance step, but the verification harness in references/verify.md still ran npm i -D @playwright/test typescript @types/node. That installs whatever the registry serves as latest. A PR risk scan on the v0.6.0 mirror refresh (github/awesome-copilot#3420) flagged the step.

  • The harness now installs @playwright/test@1.61.1, typescript@5.9.3 and @types/node@22.20.1 with --save-exact. These are the versions this repository tests with, and @playwright/test matches the Workbench's pinned Playwright.
  • It runs ./node_modules/.bin/playwright test instead of npx, so a missing install fails rather than downloading a package.
  • tests/harness-pin.test.mjs fails when the documented install is unpinned, uses npx, or drifts from scripts/workbench.mjs. Verified red without the fix and green with it.
  • Prepared as v0.6.1: manifests, lockfile, changelog and release/v0.6.1.md.

Validation: npm run check passes (45 tests plus type and syntax checks).

Closes #18

Install @playwright/test, typescript and @types/node at the exact versions the
skill is tested with, matching the Workbench's Playwright, and run the local
binary instead of npx so verification never downloads an unreviewed package.
A test fails when the documented install is unpinned or drifts.

Closes #18
@TueJon TueJon added bug Something isn't working webmcp WebMCP agent surface labels Sep 19, 2026
@TueJon TueJon self-assigned this Sep 19, 2026
@TueJon TueJon added bug Something isn't working webmcp WebMCP agent surface labels Sep 19, 2026

@TueJon TueJon left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CHANGELOG.md:13 — The new absolute claim that verification "never downloads an unreviewed package" is stronger than the install recipe. npm i creates a fresh dependency graph on every harness setup; for example, the pinned @types/node@22.20.1 still declares undici-types: ~6.21.0, so a future 6.21.x can be selected without being the version exercised by this repository's lockfile. This is a pre-existing transitive-reproducibility gap rather than a regression in the direct-pin fix, so I consider it non-blocking, but the release claim and the test name currently promise more than the test at tests/harness-pin.test.mjs:7-22 establishes.

Closure checklist:

  • Either ship an audited harness lockfile (or an equivalent full-graph integrity pin) and install from it, or narrow the changelog/test wording to exact top-level package pins and prevention of npx fallback.
  • If full-graph reproducibility is intended, extend the regression test to cover the lock/integrity-backed install path rather than only the three direct package tokens.

@TueJon
TueJon marked this pull request as draft September 19, 2026 16:40
@TueJon

TueJon commented Sep 19, 2026

Copy link
Copy Markdown
Owner Author

Fixed at c932b50: the changelog now limits the claim to exact direct harness dependencies and no package download during harness execution; the regression test name matches that scope. Verified with npm ci --ignore-scripts and npm run check (45/45).

@TueJon
TueJon marked this pull request as ready for review September 19, 2026 16:40

@TueJon TueJon left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The previous transitive-reproducibility caveat is closed: the changelog now limits the guarantee to exact direct harness dependencies and no package download during harness execution, and the test name matches that scope.

No blocking findings or fix-induced regressions remain at this head.

@TueJon TueJon left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The previously closed direct-vs-transitive pinning caveat remains closed at this head.

The merge commit introduces no PR-side content change or fix-induced regression; no blocking findings remain.

@TueJon
TueJon merged commit 75f46c1 into main Sep 19, 2026
2 checks passed
@TueJon
TueJon deleted the fix/pin-verification-harness branch September 22, 2026 11:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working webmcp WebMCP agent surface

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Pin the verification harness install

1 participant