You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 0787ba2
Browse filesBrowse the repository at this point in the historyBrowse files
refactor(claude-code): bake patch-playwright-mcp into the image (#87) (#88)
- COPY --chmod=0755 patch-playwright-mcp.sh into /usr/local/bin/ in the
base stage so both default and sandbox targets inherit it
- switch init-plugins.sh and both devcontainer.json templates to invoke
/usr/local/bin/patch-playwright-mcp directly
- drop the per-project script from README setup guidance and add the
boundary rule: project-specific config stays per-project, universal
logic moves into the image
- add test -x check for the binary to all four CI verify matrix entries
Copy file name to clipboardExpand all lines: claude-code/README.md
+12-9Lines changed: 12 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -78,20 +78,22 @@ Projects consuming these images need the following files in their repository.
78
78
79
79
Only pin tools that affect project stability — dev infrastructure (rtk, ralphex, Claude Code) is pre-installed in the image at latest. See [`mise.toml`](mise.toml) for a template.
80
80
81
-
### Optional: `.devcontainer/init-plugins.sh` and `.devcontainer/patch-playwright-mcp.sh`
81
+
### Optional: `.devcontainer/init-plugins.sh`
82
82
83
-
Claude Code plugin initialization. `init-plugins.sh` registers marketplaces, installs plugins, and (via `patch-playwright-mcp.sh`) rewrites every cached Playwright MCP `.mcp.json` to launch the system chromium. Both scripts are idempotent. See [`.devcontainer/init-plugins.sh`](.devcontainer/init-plugins.sh)and [`.devcontainer/patch-playwright-mcp.sh`](.devcontainer/patch-playwright-mcp.sh)for templates.
83
+
Claude Code plugin initialization. `init-plugins.sh` registers marketplaces, installs plugins, and invokes the image-baked `/usr/local/bin/patch-playwright-mcp` to rewrite every cached Playwright MCP `.mcp.json` to launch the system chromium. Idempotent. See [`.devcontainer/init-plugins.sh`](.devcontainer/init-plugins.sh) for the template.
`postStartCommand` re-runs the patch on every container start so plugin auto-updates between sessions cannot leave MCP pointing at the missing chrome channel. See the [Playwright Strategy](#playwright-strategy) section.
93
93
94
-
Mark as executable: `chmod +x init-plugins.sh patch-playwright-mcp.sh`
94
+
Mark as executable: `chmod +x init-plugins.sh`
95
+
96
+
> **Why `init-plugins.sh` stays per-project but `patch-playwright-mcp` doesn't:**`init-plugins.sh` carries project-specific configuration (marketplace list, plugin list) — it's *meant* to be edited per project. The patch script has zero project-specific config and is identical across every consumer, so it's baked into the image and flows through the same daily-rebuild + `pull_policy: always` channel as the rest of the image. That boundary is the rule: project-specific config stays per-project; universal logic moves into the image.
0 commit comments