Repository navigation
fix: doctor warns for an MCP server that starts through cmd /c (0.37.1) - #77
Merged
Merged
Conversation
Spec 42 §3: adds the helper doctor needs to identify Windows-only MCP launchers.
Locks current behaviour so the refactor can be shown not to move it.
Exports MCP_FILE from shared.ts; doctor will use writtenServers for mcp-launcher too.
…utName; one workspace checks block
0.37.1 — spec 42, doctor's mcp-launcher.
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
craftar@0.37.1to npm after approval in thenpmenvironment.craftar doctorgains the checkmcp-launcher. It is present when the plan writes an MCP server. It gives onewarnper server whose command iscmd(or a path tocmd.exe) and whose first argument is/cor/k: such a server starts on Windows only. The warning names the server and the files, never acommandorargsvalue. Otherwise the check is oneok.doctor --jsongains the id, and thedoctortool ofcraftar mcpcarries it.mcp-envandmcp-launchernow share one walk of the written servers (writtenServers). Themcp-envlines were pinned byte for byte before the refactor.MCP_FILEinsrc/emitters/shared.tsis the one spelling of the two MCP file paths, checked againstTarget.craftar importwarns once per such server it reads from.mcp.json, in the summary and under--report. It writes the server as read.doctorrow; a new section, MCP servers on Windows and Linux, covering the portable form and a matrix measured on Linux (2026-10-23) and on native Windows (2026-10-24); and to 0.37.1.warn, sodoctor --strictexits 1 where it exited 0, as stated in Upgrading. No emitted byte, lock, registry entry or--jsonshape changes.Test plan
npm run typecheck: passnpm run build: passnpx vitest run --maxWorkers=6 --exclude test/ci.test.ts: 3652 passed, 11 skipped (155 files passed, 1 skipped). Oracle skipped (no fixture).MCP_FILE(same strings).test/doctor-merged.test.tsgainsmcp-launcherin its id list and goes fromok: 8took: 9(its fixture writes a portable server).test/mcp-launcher.test.ts;mcp-launchercases intest/doctor.test.ts; schema 4 rendering intest/server-params-doctor.test.ts; thedoctortool intest/mcp-tools.test.ts;doctor --strictintest/cli.test.ts; the import warning intest/importer.test.tsandtest/import-report-cli.test.ts.