Fix Playwright and Backlog MCPs not using their configured defaults - #34
Open
szachovy wants to merge 1 commit into
Open
Fix Playwright and Backlog MCPs not using their configured defaults#34szachovy wants to merge 1 commit into
szachovy wants to merge 1 commit into
Conversation
Playwright's --browser chromium silently resolves to the chrome-for-testing channel (a separately-downloaded build), and DISPLAY=:99 was never backed by a running Xvfb server, so headed launches crashed and fell back to downloading its own browser. Pin --executable-path to the apt-installed /usr/bin/chromium and run --headless instead; drop the now-dead xvfb package and DISPLAY env var. backlog-mcp resolves the project directory via process.env.PWD, which is inherited stale from the VS Code server process chain rather than reflecting the actual /workspace cwd, so it always reported "not initialized". Set PWD=/workspace explicitly in its MCP env. Fixes #33
szachovy
force-pushed
the
fix/mcp-defaults-issue-33
branch
from
July 16, 2026 09:11
791fe60 to
e9c2318
Compare
szachovy
commented
Jul 23, 2026
szachovy
left a comment
Owner
Author
There was a problem hiding this comment.
Check if I can use Chrome for testing: https://www.chromium.org/getting-involved/download-chromium/ with playwright
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fixes #33 — two devcontainer MCPs weren't behaving as configured:
--browser chromiuminternally resolves to Playwright'schrome-for-testingchannel (a separately-managed/downloaded build), not the apt-installed/usr/bin/chromium.DISPLAY=":99"was set but no Xvfb server was ever started anywhere in the container lifecycle (thexvfbpackage was installed in Pin TruffleHog version, fix firewall DNS, remove instructions skill #29 as a workaround but never wired up). Result: headed launches crashed with "Missing X server", and Playwright fell back to downloading its own Chrome build — matching the "downloads chrome (or chrome-testing), initially fails, eventually succeeds" behavior in the issue. Traced this to a regression: Install curated Claude plugins; add headless Chromium (#16) #27 originally pinned the system Chromium via a Dockerfile env var, Pin TruffleHog version, fix firewall DNS, remove instructions skill #29 silently dropped it.@radleta/backlog-md-mcpresolves the project directory viaprocess.env.PWD || process.cwd(), preferring the env var. In this containerPWDis inherited stale from the VS Code server process chain (not/workspace), even though the actual OS cwd is correct — so it always reports "Backlog.md is not initialized" and callers fall back to the raw CLI.Both root causes were empirically verified (live reproduction, source tracing into the installed
@playwright/mcp/@radleta/backlog-md-mcppackages, andgit log -Sfor the Dockerfile regression) before fixing.Changes
.devcontainer/Dockerfile: remove the deadxvfbpackage..devcontainer/config/{claude,codex,opencode}/*: playwright entries now pass--executable-path /usr/bin/chromium --headlessand dropDISPLAY;backlog-mdentries now setPWD=/workspace.CHANGELOG.md: documented both fixes under[Unreleased].Test plan
jq .)tomllibrejects it; diff itself is well-formedMissing X server or $DISPLAY, downloading from~/.cache/ms-playwright/chromium-*), then live-verified the fix: started@playwright/mcpwith the new args/env and drove a realbrowser_navigatecall over the MCP protocol — succeeded instantly, no download, no display neededisBacklogInitialized('/workspace')returnstruewhile the stale inheritedPWDreturnsfalse, confirmingPWD=/workspaceresolves the detection bug