Skip to content

feat(mcp): register loopover_propose_action as a local stdio tool - #7987

Closed
real-venus wants to merge 2 commits into
JSONbored:mainfrom
real-venus:feat/propose-action-stdio-tool-7753
Closed

feat(mcp): register loopover_propose_action as a local stdio tool#7987
real-venus wants to merge 2 commits into
JSONbored:mainfrom
real-venus:feat/propose-action-stdio-tool-7753

Conversation

@real-venus

Copy link
Copy Markdown
Contributor

Summary

Closes #7753loopover_propose_action has a remote MCP tool (src/mcp/server.ts) and a maintain propose CLI 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)

  • A registerStdioTool("loopover_propose_action", …) block, placed next to the maintain-adjacent siblings (loopover_list_pending_actions et al.), mirroring their pattern — POSTs to the same {repoBase}/agent/pending-actions route the maintain propose CLI already calls, with the identical stripUndefined({pullNumber, actionClass, reason, label, reviewBody, mergeMethod, closeComment}) body (absent optionals omitted).
  • Stages the action into the approval queue; the route never executes it until a maintainer approves. Input proposeActionShape mirrors the remote (same actionClass enum, same bounds). Description via stdioToolDescription(...); category: "agent".

Testing / coverage

  • test/unit/mcp-cli-propose-action.test.ts drives it in-process (the loopover_plan_repo_issues has no REST route, CLI command, or local stdio MCP tool #7764 isProcessEntrypoint guard + 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 the POST /v1/repos/owner/repo/agent/pending-actions and that the serialized body (echoed by the fixture) carries the right actionClass/pullNumber/reason.
  • Tool-count invariant bumped to 98.

No REST/OpenAPI/CLI-surface change — ui:openapi:check, command-reference:check, docs/manifest drift all clean; build:mcp clean.

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
@real-venus
real-venus requested a review from JSONbored as a code owner July 22, 2026 01:34
@superagent-security

Copy link
Copy Markdown
Contributor

Superagent didn't find any vulnerabilities or security issues in this PR.

@codecov

codecov Bot commented Jul 22, 2026

Copy link
Copy Markdown

⚠️ JUnit XML file not found

The CLI was unable to find any JUnit XML files to upload.
For more help, visit our troubleshooting guide.

Signed-off-by: venus <153379385+real-venus@users.noreply.github.com>
@loopover-orb loopover-orb Bot closed this Jul 22, 2026
@loopover-orb

loopover-orb Bot commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

This repository reviews pull requests one-shot: the PR must be correct as originally opened. Pushing an additional commit closes it automatically instead of restarting review — open a fresh pull request with every fix included.

@loopover-orb loopover-orb Bot added review-evasion Gittensor contributor context gittensor:bug Gittensor-scored bug fix — scores a 0.05x multiplier. labels Jul 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

gittensor:bug Gittensor-scored bug fix — scores a 0.05x multiplier. review-evasion Gittensor contributor context

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Register loopover_propose_action as a local stdio MCP tool

1 participant