diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index c98ac1b..92465b6 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Fixed +- Print only the exact pinned `pipx install` command when the plugin launcher + cannot execute DocPull. + ## [6.5.5] - 2026-09-04 ### Fixed diff --git a/plugin/scripts/launch-docpull-mcp.mjs b/plugin/scripts/launch-docpull-mcp.mjs index 76a3580..8b390ad 100644 --- a/plugin/scripts/launch-docpull-mcp.mjs +++ b/plugin/scripts/launch-docpull-mcp.mjs @@ -8,9 +8,7 @@ const child = spawn("docpull", ["mcp", ...process.argv.slice(2)], { child.on("error", (error) => { if (error.code === "ENOENT" || error.code === "EACCES") { - console.error( - "DocPull is not installed or is not executable. Run: pipx install 'docpull[mcp]==6.5.5'", - ); + console.error("pipx install 'docpull[mcp]==6.5.5'"); process.exitCode = 127; return; } diff --git a/tests/test_ci_policy.py b/tests/test_ci_policy.py index 0c02169..3b31a87 100644 --- a/tests/test_ci_policy.py +++ b/tests/test_ci_policy.py @@ -332,7 +332,7 @@ def test_plugin_launcher_reports_actionable_setup_when_docpull_is_missing( ) assert proc.returncode == 127 - assert "pipx install 'docpull[mcp]==6.5.5'" in proc.stderr + assert proc.stderr == "pipx install 'docpull[mcp]==6.5.5'\n" (tmp_path / "docpull").mkdir() proc = subprocess.run( # nosec B603 @@ -345,7 +345,7 @@ def test_plugin_launcher_reports_actionable_setup_when_docpull_is_missing( ) assert proc.returncode == 127 - assert "pipx install 'docpull[mcp]==6.5.5'" in proc.stderr + assert proc.stderr == "pipx install 'docpull[mcp]==6.5.5'\n" def test_codex_plugin_default_prompt_fits_host_limit() -> None: