Repository navigation
fix(playwright): skip the demo-video Python install under claude plugin eval - #11929
Conversation
Lane-Activity: work-resolve-issue/resolve-issue
Lane-Activity: pr-unblock/address-feedback Lane-Thread: PRRT_kwDOTCGFQM6yZNAJ Lane-Thread: PRRT_kwDOTCGFQM6yZOTS Lane-Thread: PRRT_kwDOTCGFQM6yZOTi
…wright-skip-pydeps-11902
…as a P2 exception The #11902 decision requires the Exceptions table to record the EVAL_PLAYWRIGHT_SKIP_PYDEPS=1 skip in the playwright SessionStart hook. The row names the variable, gives the reason (eval runs that never use demo-video install nothing) and leaves the P2 text unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
claude-security-review reviewed Security review: PR #11929, no security issues foundI read every hunk of all 8 changed files in What changed: What I checked:
Spend: none. The change only cuts install time out of eval runs. critical-findings: 0 |
|
claude-review reviewed Code review: no findingsI read every hunk of all 8 changed files in The change. The playwright What I checked:
Closing issue #11902:
What I did not verify. The PR's Verification section (test suite 16/0, validate-cases, fragment check, markdownlint, pre-push) is the author's claim. I had no shell and ran none of it. No paid resources or billing changes are involved. The change slightly reduces eval-run install time and disk use. |
Closes #11902
Summary
The playwright
SessionStarthook no longer installs demo-video's numpy and Pillow (about 91 MB) when the plugin-defined opt-inEVAL_PLAYWRIGHT_SKIP_PYDEPS=1is set. The plugin's four eval cases set it in theirenv, so their measured runs install nothing and get no install notice. This is the approach the #11902 decision chose: anEVAL_*variable, the channel the plugin-eval docs give a case for passing the plugin anything, rather than inferring an eval run from the sandbox directory name. Unset, or any value other than1, the hook behaves as before, so a demo-video eval case leaves it unset and installs as a session does.pydeps.py runis unchanged and still never installs.This PR carries the lane PR #11923's commits (merged in, history kept) plus the one change that lane's path check refused: the contract's Exceptions row.
Fix
plugins/playwright/hooks/install-python-deps.sh: exit 0 before looking for Python whenEVAL_PLAYWRIGHT_SKIP_PYDEPSis exactly1; the header comment says what it does and who sets itplugins/playwright/hooks/install-python-deps.test.sh: a case with the variable set to1(exit 0, no output, nopython/directory) and cases for unset, empty,0,true,1and1x(each still installs); the suite unsets the variable at the top so an operator's export cannot skew itplugins/playwright/evals/*/prompt.md(four cases, none using demo-video):env: {EVAL_PLAYWRIGHT_SKIP_PYDEPS: "1"}docs/contracts/on-demand-dependencies/README.md: a row in the Exceptions table for the playwright demo-video set under rule P2, naming the variable and the reason (eval runs that never use demo-video install nothing); the P2 text is unchanged.changes/playwright/work-resolve-issue-issue-11902-9c4e1b7a.md: patch fragment naming the variable and saying a demo-video eval case must leave it unsetVerification
Run locally on the merged branch head:
bash plugins/playwright/hooks/install-python-deps.test.sh: passed 16, failed 0python3 -I plugins/evals/skills/validate/scripts/validate-cases.py plugins/playwright/evals: exit 0, no findingsbash scripts/check-changelog-fragments.sh --check: all 113 fragments validmarkdownlint-cli2 docs/contracts/on-demand-dependencies/README.md: 0 issuescheck-affected: passedNot verified: whether a live
claude plugin evalrun passes a case'senvto the plugin'sSessionStarthook process. The docs sayenvreaches the child session and do not mention hooks; the decision tracks that check on host-run issue #6587.Related
Related: replaces #11923
🤖 Generated with Claude Code