feat(mcp): register loopover_generate_contributor_issue_drafts as a local stdio tool - #7978
Conversation
…ocal stdio tool loopover_generate_contributor_issue_drafts has a remote MCP tool (src/mcp/server.ts) and a `maintain generate-issue-drafts` CLI command, but no local stdio MCP tool registration. JSONbored#6757 added the REST route + CLI but never the matching stdio tool. Adds the registerStdioTool block mirroring the sibling loopover_plan_repo_issues write-tool pattern -- proxies POST {repoBase}/contributor-issue-drafts/generate (the same route the CLI hits). Dry-run BY DEFAULT: the schema defaults dryRun=true/ create=false and the route re-applies its explicit_create_requires_dry_run_false guard, so `create` alone is rejected and only an explicit {create:true,dryRun:false} reaches the write path. Input mirrors the remote generateContributorIssueDraftsShape; description via stdioToolDescription; category "maintainer". test/unit/mcp-cli-generate-contributor-issue-drafts.test.ts drives it in-process (JSONbored#7764 entrypoint guard) so the registration + handler get real Codecov coverage, asserting the dry-run-default and explicit-create forwarding. Count 97 -> 98. Closes JSONbored#7755
|
Superagent didn't find any vulnerabilities or security issues in this PR. |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #7978 +/- ##
==========================================
- Coverage 91.89% 81.92% -9.98%
==========================================
Files 738 94 -644
Lines 75709 23949 -51760
Branches 23009 4602 -18407
==========================================
- Hits 69576 19621 -49955
+ Misses 5041 4132 -909
+ Partials 1092 196 -896
Flags with carried forward coverage won't be shown. Click here to find out more.
|
|
Tip ✅ LoopOver review result - approve/merge recommendedReview updated: 2026-07-22 01:24:45 UTC
Review summary Nits — 5 non-blocking
Decision drivers
Context & advisory signals — never blocks the verdict
Linked issue satisfactionAddressed Review context
Contributor next steps
Signal definitions
🧪 Chat with LoopOverAsk LoopOver a question about this PR directly in a comment — grounded only in the same cached, public-safe facts shown above, never a new claim.
Full command reference: https://loopover.ai/docs/loopover-commands 🧪 Experimental — new and may change. 🟩 Safe / merged · 🟦 Advisory · 🟨 Held for review · 🟥 Blocked / closed 💰 Earn for open-source contributions like this. Gittensor lets GitHub contributors earn for the work they already do — register to start earning →. Checked by LoopOver, a quiet PR intelligence layer for OSS maintainers.
|
|
@JSONbored |
Don't worry, it won't merge out of order - few minor bugs i'm still working out with the new changes, but you should notice that ordering is pretty solid now (especially in the case of consecutive overlapping linked issue PRs), so first submission will win unless it has a problem that leads to a closure. |
JSONbored
left a comment
There was a problem hiding this comment.
Merge conflicts, closing:
This branch has conflicts that must be resolved
Use the [web editor](https://github.com/JSONbored/loopover/pull/7978/conflicts) or the command line to resolve conflicts before continuing.
test/unit/mcp-tool-rename-aliases.test.ts
Summary
Closes #7755 —
loopover_generate_contributor_issue_draftshas a remote MCP tool (src/mcp/server.ts) and amaintain generate-issue-draftsCLI command, but no local stdio MCP tool registration. #6757 added the REST route + CLI but never the matching stdio tool.What changed (
packages/loopover-mcp/bin/loopover-mcp.ts)registerStdioTool("loopover_generate_contributor_issue_drafts", …)block, mirroring the sibling write-toolloopover_plan_repo_issuespattern — proxies POST to the same{repoBase}/contributor-issue-drafts/generateroute themaintain generate-issue-draftsCLI already calls.generateContributorIssueDraftsShapemirrors the remote (owner/repo/dryRundefaulttrue/createdefaultfalse/limit1–20 default 5); the schema-defaulteddryRun/createare forwarded verbatim, and the route re-applies its ownexplicit_create_requires_dry_run_falseguard — socreatealone is rejected and only an explicit{create:true, dryRun:false}reaches the write path. Description viastdioToolDescription(...);category: "maintainer".Testing / coverage
test/unit/mcp-cli-generate-contributor-issue-drafts.test.tsdrives it in-process (the loopover_plan_repo_issues has no REST route, CLI command, or local stdio MCP tool #7764isProcessEntrypointguard +InMemoryTransport) for real Codecov-measured coverage — asserting both the dry-run-default forwarding ({dryRun:true, create:false, limit:5}) and the explicit-create forwarding ({dryRun:false, create:true, limit:3}).No REST/OpenAPI/CLI-surface change —
ui:openapi:check,command-reference:check,docs/manifestdrift all clean;build:mcpclean.