feat(mcp): add REST + CLI + stdio surfaces for loopover_plan_repo_issues - #7890
Conversation
|
Superagent didn't find any vulnerabilities or security issues in this PR. |
…lan_repo_issues loopover_plan_repo_issues (generateIssuePlanDrafts) shipped only as a remote MCP tool and never got the REST + CLI + local-stdio mirror surfaces its repo-scoped, requireRepoManageAccess-gated siblings all have. Mirrors loopover_generate_contributor_issue_drafts exactly: a POST /v1/repos/:owner/:repo/issue-plan-drafts/generate route (same gate), a maintain plan-issues CLI command calling it, and a loopover_plan_repo_issues stdio tool. generateIssuePlanDrafts and the remote tool are unchanged. Closes JSONbored#7764
6f23f79 to
6bc8c7f
Compare
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #7890 +/- ##
==========================================
- Coverage 91.39% 83.24% -8.16%
==========================================
Files 730 91 -639
Lines 74774 26032 -48742
Branches 22818 5326 -17492
==========================================
- Hits 68343 21671 -46672
+ Misses 5389 4054 -1335
+ Partials 1042 307 -735
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-21 16:45:38 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. Visual preview
Click any thumbnail to open the full-size screenshot. Before = production · After = this PR's preview deploy · Diff highlights exactly what changed. Scroll preview
A short scroll-through clip (desktop) — click either thumbnail to open the full animation. Evidence for scroll-linked behavior a single screenshot can't show. 🟩 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.
|



Summary
loopover_plan_repo_issues(generateIssuePlanDrafts,src/services/issue-plan-draft.ts) shipped only as a remote MCP tool and never got the REST + CLI + local-stdio mirror surfaces its repo-scoped,requireRepoManageAccess-gated siblings all have. Mirrorsloopover_generate_contributor_issue_draftsexactly:POST /v1/repos/:owner/:repo/issue-plan-drafts/generateinsrc/api/routes.ts, callinggenerateIssuePlanDrafts(requiredgoalfrom the body), gated identically to the contributor sibling, plus thecanSessionAccessPathmatcher and the OpenAPIregisterPath.loopover-mcp maintain plan-issues(dry-run by default;--createopts in).loopover_plan_repo_issues, calling the new CLI logic.generateIssuePlanDrafts, the remote tool, andsrc/services/**are unchanged. Rebased onto latestmain(incl. #7705 — mcp/miner no longer commit the compiled.js; this PR touches only the tracked.ts).Tests
test/unit/routes-issue-plan-draft.test.ts: success, both auth-gate branches incl. write-granted create fall-through, invalid-JSON, invalid-body, explicit-create guard, cross-repo/forbidden — the newroutes.tslines are 100% statement + branch covered.test/unit/mcp-cli-plan-issues.test.ts: in-process coverage of the CLI command + stdio tool via the.tssource.UI Evidence
The only
apps/loopover-ui/**change is the regeneratedpublic/openapi.json(required byui:openapi:checkfor the new backend route). Its sole rendered effect is that the newPOST …/issue-plan-drafts/generateoperation now appears in the API reference (/api) endpoint list + sidebar. loopover-ui is a dark-only build.Validation
tsc --noEmitclean (my files); new route/CLI/stdio +mcp-cli-completion-spec(CLI_COMMAND_SPEC parity) tests pass;ui:openapi:check,command-reference:check,docs:drift-checkgreen; OpenAPI regenerated; rebased on latestmain.Closes #7764