feat(mcp): register loopover_propose_action as a local stdio tool#7990
feat(mcp): register loopover_propose_action as a local stdio tool#7990real-venus wants to merge 1 commit into
Conversation
loopover_propose_action has a remote MCP tool (src/mcp/server.ts) and a `maintain propose` CLI command, but no local stdio MCP tool registration. JSONbored#6744 added the REST route + CLI but never the matching stdio tool. Adds the registerStdioTool block mirroring the maintain-adjacent sibling pattern (loopover_list_pending_actions et al.) -- POSTs to the same {repoBase}/agent/pending-actions route the CLI hits, with the identical stripUndefined body so absent optional fields are omitted. Stages the action into the approval queue; the route never executes it until a maintainer approves. Input mirrors the remote proposeActionShape; description via stdioToolDescription; category "agent". test/unit/mcp-cli-propose-action.test.ts drives it IN-PROCESS (JSONbored#7764 entrypoint guard + InMemoryTransport) so the registration + handler get real Codecov-measured coverage -- a subprocess spawn can't be v8-instrumented. Count 97 -> 98. Closes JSONbored#7753
|
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 #7990 +/- ##
==========================================
- Coverage 91.91% 82.02% -9.89%
==========================================
Files 739 95 -644
Lines 75845 24085 -51760
Branches 23016 4609 -18407
==========================================
- Hits 69712 19756 -49956
+ Misses 5041 4132 -909
+ Partials 1092 197 -895
Flags with carried forward coverage won't be shown. Click here to find out more.
|
|
Warning ⏸️ LoopOver review result - manual review recommendedReview updated: 2026-07-22 01:54:14 UTC
Review summary Nits — 6 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.
|
|
LoopOver is closing this pull request on the maintainer's behalf (conflicts with the base branch — resolve and open a fresh PR). This is an automated maintenance action — to pursue this change, please open a new pull request with the issues resolved. Closed PRs may be analyzed later to improve review accuracy, but they are not automatically reopened or re-reviewed. |
Summary
Closes #7753 —
loopover_propose_actionhas a remote MCP tool (src/mcp/server.ts) and amaintain proposeCLI command, but no local stdio MCP tool registration. #6744 added the REST route + CLI but never the matching stdio tool.What changed (
packages/loopover-mcp/bin/loopover-mcp.ts)registerStdioTool("loopover_propose_action", …)block, placed next to the maintain-adjacent siblings (loopover_list_pending_actionset al.), mirroring their pattern — POSTs to the same{repoBase}/agent/pending-actionsroute themaintain proposeCLI already calls, with the identicalstripUndefined({pullNumber, actionClass, reason, label, reviewBody, mergeMethod, closeComment})body (absent optionals omitted).proposeActionShapemirrors the remote (sameactionClassenum + bounds). Description viastdioToolDescription(...);category: "agent".Testing / coverage
test/unit/mcp-cli-propose-action.test.tsdrives it in-process (the loopover_plan_repo_issues has no REST route, CLI command, or local stdio MCP tool #7764isProcessEntrypointguard +InMemoryTransport) so the registration + handler get real Codecov-measured coverage — a subprocess spawn can't be v8-instrumented (that's what left prior attempts at this exact tool at 0.00% patch). Asserts thePOST /v1/repos/owner/repo/agent/pending-actionsand that the serialized body (echoed by the fixture) carries the rightactionClass/pullNumber/reason.No REST/OpenAPI/CLI-surface change —
ui:openapi:check,command-reference:check,docs/manifestdrift all clean;build:mcpclean.(Supersedes #7987, base-conflicted when #7977 merged mid-review — rebased onto current main.)