From 109be206be39d96dbc606ba7461b84b6218635bd Mon Sep 17 00:00:00 2001 From: "claude[bot]" <41898282+claude[bot]@users.noreply.github.com> Date: Thu, 11 Jun 2026 14:58:36 +0000 Subject: [PATCH 1/2] fix(mcp): replace phantom mcp-configuration-guide.md path with live integration guide URL PR ##2888 standardized the deprecated /wheels/mcp HTTP transport's doc pointer on https://guides.wheels.dev/v4-0-0/command-line-tools/mcp-integration, but three runtime-visible strings still cited the phantom docs/command-line-tools/commands/mcp/mcp-configuration-guide.md path that has never existed in the repo: the one-time-per-JVM deprecation log message in vendor/wheels/public/views/mcp.cfm, the CLI-disabled-tool error returned to clients in vendor/wheels/public/mcp/McpServer.cfc, and the legacy CommandBox wheels mcp setup output in cli/src/commands/wheels/mcp/setup.cfc. Replace all three (plus the file-header comment in mcp.cfm) with the URL #2888 already standardized on, matching the serverInfo.deprecationNotice field that PR did fix. Refs #3016 Signed-off-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com> --- .../3016-mcp-deprecation-stale-path.fixed.md | 1 + cli/src/commands/wheels/mcp/setup.cfc | 2 +- vendor/wheels/public/mcp/McpServer.cfc | 2 +- vendor/wheels/public/views/mcp.cfm | 4 +- .../McpDeprecationNoticeStaleDocPathSpec.cfc | 59 +++++++++++++++++++ 5 files changed, 64 insertions(+), 4 deletions(-) create mode 100644 changelog.d/3016-mcp-deprecation-stale-path.fixed.md create mode 100644 vendor/wheels/tests/specs/cli/McpDeprecationNoticeStaleDocPathSpec.cfc diff --git a/changelog.d/3016-mcp-deprecation-stale-path.fixed.md b/changelog.d/3016-mcp-deprecation-stale-path.fixed.md new file mode 100644 index 0000000000..3bca2462d7 --- /dev/null +++ b/changelog.d/3016-mcp-deprecation-stale-path.fixed.md @@ -0,0 +1 @@ +- Deprecated `/wheels/mcp` HTTP transport's runtime warnings (log message, CLI-disabled-tool error, and legacy `wheels mcp setup` output) now point to the live integration guide (`https://guides.wheels.dev/v4-0-0/command-line-tools/mcp-integration`) instead of the phantom `docs/command-line-tools/commands/mcp/mcp-configuration-guide.md` path that #2888 missed (#3016) diff --git a/cli/src/commands/wheels/mcp/setup.cfc b/cli/src/commands/wheels/mcp/setup.cfc index 8ca2f7799d..28fd65e259 100644 --- a/cli/src/commands/wheels/mcp/setup.cfc +++ b/cli/src/commands/wheels/mcp/setup.cfc @@ -91,7 +91,7 @@ component extends="../base" { print.indentedLine("• Test runner (test)"); print.indentedLine("• Browser automation (via Browser MCP)"); print.line(); - print.indentedLine("Full guide: docs/command-line-tools/commands/mcp/mcp-configuration-guide.md"); + print.indentedLine("Full guide: https://guides.wheels.dev/v4-0-0/command-line-tools/mcp-integration"); print.line(); } diff --git a/vendor/wheels/public/mcp/McpServer.cfc b/vendor/wheels/public/mcp/McpServer.cfc index bd4ded60a6..ca5817231c 100755 --- a/vendor/wheels/public/mcp/McpServer.cfc +++ b/vendor/wheels/public/mcp/McpServer.cfc @@ -1286,7 +1286,7 @@ Provide migration code following Wheels conventions." // intact for existing clients. return "Error: CLI-backed tools are disabled on the deprecated /wheels/mcp HTTP endpoint. " & "Use the stdio MCP server instead ('wheels mcp wheels'; see " - & "docs/command-line-tools/commands/mcp/mcp-configuration-guide.md). " + & "https://guides.wheels.dev/v4-0-0/command-line-tools/mcp-integration). " & "Requested command: " & arguments.command; } diff --git a/vendor/wheels/public/views/mcp.cfm b/vendor/wheels/public/views/mcp.cfm index d241a2e196..b5445f429b 100644 --- a/vendor/wheels/public/views/mcp.cfm +++ b/vendor/wheels/public/views/mcp.cfm @@ -14,7 +14,7 @@ // and doesn't require a running dev server for file-based operations // (generate, migrate, stats, etc.). This HTTP endpoint will be removed in // a future release. See: -// docs/command-line-tools/commands/mcp/mcp-configuration-guide.md +// https://guides.wheels.dev/v4-0-0/command-line-tools/mcp-integration // Log one-time deprecation warning per JVM if (!structKeyExists(application, "mcpHttpDeprecationLogged")) { @@ -24,7 +24,7 @@ if (!structKeyExists(application, "mcpHttpDeprecationLogged")) { type="warning", text="The in-dev-server MCP endpoint at /wheels/mcp is deprecated. " & "Use 'wheels mcp wheels' (LuCLI stdio MCP) instead. " - & "See docs/command-line-tools/commands/mcp/mcp-configuration-guide.md" + & "See https://guides.wheels.dev/v4-0-0/command-line-tools/mcp-integration" ); } catch (any ignored) { /* logging is best-effort */ } application.mcpHttpDeprecationLogged = true; diff --git a/vendor/wheels/tests/specs/cli/McpDeprecationNoticeStaleDocPathSpec.cfc b/vendor/wheels/tests/specs/cli/McpDeprecationNoticeStaleDocPathSpec.cfc new file mode 100644 index 0000000000..139f4f51b5 --- /dev/null +++ b/vendor/wheels/tests/specs/cli/McpDeprecationNoticeStaleDocPathSpec.cfc @@ -0,0 +1,59 @@ +/** + * Regression: #2888 standardized the deprecated `/wheels/mcp` HTTP transport's + * doc pointer on the live integration guide + * (`https://guides.wheels.dev/v4-0-0/command-line-tools/mcp-integration`), + * but three runtime-visible strings still cite a phantom path that has + * never existed in the repo: + * + * - vendor/wheels/public/views/mcp.cfm (deprecation log message) + * - vendor/wheels/public/mcp/McpServer.cfc (CLI-disabled-tool error) + * - cli/src/commands/wheels/mcp/setup.cfc (legacy CommandBox CLI output) + * + * The phantom path is `docs/command-line-tools/commands/mcp/mcp-configuration-guide.md`. + * Issue ##3016. + */ +component extends="wheels.WheelsTest" { + + function run() { + + describe("MCP deprecation pointers cite the live integration guide", () => { + + // expandPath("/wheels") resolves to vendor/wheels via the configured + // Lucee mapping; the repo root is two levels above. + var repoRoot = expandPath("/wheels/../.."); + var phantomPath = "docs/command-line-tools/commands/mcp/mcp-configuration-guide.md"; + var canonical = "https://guides.wheels.dev/v4-0-0/command-line-tools/mcp-integration"; + var targets = [ + "vendor/wheels/public/views/mcp.cfm", + "vendor/wheels/public/mcp/McpServer.cfc", + "cli/src/commands/wheels/mcp/setup.cfc" + ]; + + for (var rel in targets) { + // Capture the loop variable so the closure body binds the + // current value, not the final iteration's value. + (function(relPath) { + it("references " & canonical & " in " & relPath, () => { + var absolute = repoRoot & "/" & relPath; + expect(fileExists(absolute)).toBeTrue("Missing file: " & absolute); + + var content = fileRead(absolute); + + expect(content contains canonical).toBeTrue( + relPath & " should reference " & canonical + & " — the URL ##2888 standardized on for the deprecated /wheels/mcp transport." + ); + + expect(content contains phantomPath).toBeFalse( + relPath & " still references the phantom path " & phantomPath + & " that has never existed in the repo." + ); + }); + })(rel); + } + + }); + + } + +} From 063c5bd3c2d983cc5bf8180d59c0c47da1a5fc5b Mon Sep 17 00:00:00 2001 From: "claude[bot]" <41898282+claude[bot]@users.noreply.github.com> Date: Thu, 11 Jun 2026 15:01:13 +0000 Subject: [PATCH 2/2] docs(web/guides): replace deprecated "dependencies" key with "requires" in package.json example Signed-off-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com> --- .../guides/src/content/docs/v4-0-0/digging-deeper/packages.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/sites/guides/src/content/docs/v4-0-0/digging-deeper/packages.mdx b/web/sites/guides/src/content/docs/v4-0-0/digging-deeper/packages.mdx index e71d1b20d0..43be63c45e 100644 --- a/web/sites/guides/src/content/docs/v4-0-0/digging-deeper/packages.mdx +++ b/web/sites/guides/src/content/docs/v4-0-0/digging-deeper/packages.mdx @@ -88,7 +88,7 @@ Every package declares a `package.json` at its root. The loader parses it before "services": [], "middleware": [] }, - "dependencies": {} + "requires": {} } ```