Skip to content

npx-migration: flip plugin launcher to npx; delete bun launcher + workspace-freeze staging (comms-iw8w.5) - #25

Merged
GraemeF merged 1 commit into
mainfrom
comms-iw8w.5
Jun 14, 2026
Merged

GraemeF merged 1 commit into
mainfrom
comms-iw8w.5

Conversation

@GraemeF

@GraemeF GraemeF commented Jun 14, 2026

Copy link
Copy Markdown
Contributor

Flips the Claude Code plugin's MCP launcher from the launch.sh bun bootstrap to npx -y @codeforbreakfast/commy-mcp with cwd: ${CLAUDE_PLUGIN_ROOT}, dropping the consumer prerequisite from bun to node.

What changes

  • .mcp.json: command: npx, args: [-y, @codeforbreakfast/commy-mcp] (bare name — no version pin on the command line, so a local install can shadow the registry), cwd: ${CLAUDE_PLUGIN_ROOT}. Env block unchanged.
  • Delete launch.sh + launch.test.ts; add launcher.test.ts pinning the npx command shape, the bare-name/cwd contract, and the realm-credential env keys.
  • Rewrite publish-marketplace.ts: stage the self-contained node bundle as a local node_modules/@codeforbreakfast/commy-mcp override under the plugin dir, instead of freezing the whole bun workspace and running bun install. verifyBoots now runs the staged bundle under node for the MCP initialize smoke test. No source tree, no workspace, no install step.
  • dependencies.test.ts: comment reframed for the bundle model (the test still guards that every runtime import is a declared dependency so the bundle build can resolve it).
  • Docs (README.md, clients/claude-code/README.md, docs/self-hosting.md): node-only consumer contract — npx pulls the published bundle; bun/nix are development-only.

How resolution works

npx resolves a package from its cwd's node_modules before the registry. With cwd: ${CLAUDE_PLUGIN_ROOT}:

  • an external consumer (no local install) resolves the published @codeforbreakfast/commy-mcp from npm;
  • a host that stages the bundle locally (publish-marketplace) runs its own copy with zero registry hits.

Both paths, the -y behaviour, and the cwd field support were verified empirically against the published package.

bun run check green (833 pass).

…p; delete bun launcher + workspace-freeze staging (comms-iw8w.5)

The Claude Code plugin now launches its MCP server with
`npx -y @codeforbreakfast/commy-mcp` and cwd ${CLAUDE_PLUGIN_ROOT},
replacing the launch.sh bun bootstrap. npx resolves the published,
self-contained node bundle from the registry for external consumers; a
local node_modules/@codeforbreakfast/commy-mcp install (staged by
publish-marketplace) shadows the registry so a host running its own copy
resolves it with zero registry hits. The consumer prerequisite drops from
bun to node.

- .mcp.json: command=npx, args=[-y, @codeforbreakfast/commy-mcp] (bare, no
  version pin so the local override wins), cwd=${CLAUDE_PLUGIN_ROOT}.
- Delete launch.sh + launch.test.ts; add launcher.test.ts pinning the npx
  shape, the bare-name/cwd contract, and the env block.
- Rewrite publish-marketplace.ts: stage the node bundle as a local override
  under the plugin's node_modules instead of freezing the whole bun
  workspace + bun install; verifyBoots runs the staged bundle under node.
- Update the dependencies.test.ts framing (bundle inlines deps; the test
  still guards that every runtime import is a declared dependency).
- Docs (README, clients README, self-hosting): node-only consumer contract.
@GraemeF
GraemeF merged commit 1ca19e8 into main Jun 14, 2026
2 checks passed
@GraemeF
GraemeF deleted the comms-iw8w.5 branch June 14, 2026 16:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant