Source evidence
Two NotFair MCP feedback reports (nowork-studio/notfair-mcp #759 and #777) identify the same current source-repo failure: browser_open cannot launch from the packaged standalone install because Playwright cannot resolve its packaged browsers.json.
The live source owns this path:
notfair/src/server/mcp-server/browser-tools.ts calls getOrLaunchBrowser() before opening a tab.
notfair/package.json ships the standalone package and declares playwright-core.
notfair/scripts/copy-standalone-assets.mjs dereferences and copies standalone package assets, but has no Playwright metadata inclusion/self-check.
Scope
Make the standalone package include the Playwright metadata required by the workspace-browser runtime, and make the startup failure actionable when that package invariant is missing. Do not change browser account/session behavior, OAuth, or navigation semantics.
Acceptance checks
- A packaged standalone artifact contains the Playwright
browsers.json resolution target needed by the installed playwright-core runtime.
- A focused regression proves the packaging/self-check behavior rather than relying on a developer
node_modules tree.
browser_open reports a clear repair/package-integrity error if that invariant is absent; it must not claim the browser was launched.
- Existing browser-tool tests and TypeScript typecheck pass.
Non-goals
- No OAuth/profile-selection changes.
- No browser tool namespace change.
- No changes to external Chrome installation or customer credentials.
Source evidence
Two NotFair MCP feedback reports (
nowork-studio/notfair-mcp#759 and #777) identify the same current source-repo failure:browser_opencannot launch from the packaged standalone install because Playwright cannot resolve its packagedbrowsers.json.The live source owns this path:
notfair/src/server/mcp-server/browser-tools.tscallsgetOrLaunchBrowser()before opening a tab.notfair/package.jsonships the standalone package and declaresplaywright-core.notfair/scripts/copy-standalone-assets.mjsdereferences and copies standalone package assets, but has no Playwright metadata inclusion/self-check.Scope
Make the standalone package include the Playwright metadata required by the workspace-browser runtime, and make the startup failure actionable when that package invariant is missing. Do not change browser account/session behavior, OAuth, or navigation semantics.
Acceptance checks
browsers.jsonresolution target needed by the installedplaywright-coreruntime.node_modulestree.browser_openreports a clear repair/package-integrity error if that invariant is absent; it must not claim the browser was launched.Non-goals