Skip to content

feat(mcp): register loopover_get_repo_onboarding_pack as a local #7977

Merged
JSONbored merged 3 commits into
JSONbored:mainfrom
andriypolanski:fix/7756-v2
Jul 22, 2026
Merged

feat(mcp): register loopover_get_repo_onboarding_pack as a local #7977
JSONbored merged 3 commits into
JSONbored:mainfrom
andriypolanski:fix/7756-v2

Conversation

@andriypolanski

Copy link
Copy Markdown
Contributor

Summary

  • loopover_get_repo_onboarding_pack was a remote MCP tool (src/mcp/server.ts) with a maintain onboarding-pack CLI mirror (CLI mirror for loopover_get_repo_onboarding_pack #6738), but had no local stdio MCP tool registration.
  • This registers the missing stdio tool next to its get-repo siblings, calling the same GET .../onboarding-pack/preview endpoint the CLI already uses (refresh: true?refresh=true).

Closes #7756

Change

  • Input schema (packages/loopover-mcp/bin/loopover-mcp.ts): added repoOnboardingPackShape (owner/repo required, refresh optional boolean).
  • Local stdio MCP tool: registered loopover_get_repo_onboarding_pack with a matching STDIO_TOOL_DESCRIPTORS entry (maintainer category). Thin GET proxy of {repoBase}/onboarding-pack/preview; refresh === true forwards ?refresh=true exactly as the CLI does.
  • Tool count pin: 96 → 97 in mcp-tool-rename-aliases.test.ts (current main already includes Register loopover_get_agent_audit_feed as a local stdio MCP tool #7757 agent-audit-feed).

Tests

  • New test/unit/mcp-cli-get-repo-onboarding-pack.test.ts: in-process InMemoryTransport coverage — both arms of the refresh === true ternary (omitted → no query; refresh: true?refresh=true). Fixture already served by mcp-cli-harness.

Validation

  • git diff --check clean; npm run build:mcp clean.
  • Targeted vitest suites pass (onboarding-pack in-process, tools list, rename-aliases).
  • Codecov patch = 100%. Verified from coverage-final.json: all added statements/functions hit; refresh ternary arms are [1,1].
  • Replaces closed conflicted feat(mcp): register loopover_get_repo_onboarding_pack as a local stdio tool #7968 (that PR targeted a stale ~94→95 pin; this branch is based on current main at 96 tools).

UI Evidence

N/A — local stdio MCP tool only; no UI surface changed.

@andriypolanski andriypolanski changed the title Fix/7756 v2 feat(mcp): register loopover_get_repo_onboarding_pack as a local Jul 22, 2026
@superagent-security

Copy link
Copy Markdown
Contributor

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

@loopover-orb loopover-orb Bot added the gittensor:bug Gittensor-scored bug fix — scores a 0.05x multiplier. label Jul 22, 2026
@loopover-orb

loopover-orb Bot commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

Tip

✅ LoopOver review result - approve/merge recommended

Review updated: 2026-07-22 01:15:27 UTC

3 files · 1 AI reviewer · no blockers · readiness 100/100 · CI green · clean

✅ Suggested Action - Approve/Merge

  • safe to merge

Review summary
This PR registers a missing local stdio mirror of the `loopover_get_repo_onboarding_pack` MCP tool, following the exact same thin-GET-proxy pattern already used by sibling tools (e.g. `loopover_refresh_repo_docs`, `maintainer_noise`) in this file. The `refresh === true` ternary correctly forwards `?refresh=true` only on the true arm and omits the query otherwise, matching the CLI's existing behavior, and both arms are covered by the new InMemoryTransport test. The tool-count pin bump (97→98) and descriptor entry are consistent with the rest of the diff.

Nits — 5 non-blocking
  • The external brief flags `test/unit/mcp-cli-get-repo-onboarding-pack.test.ts:34` as a potential secret assignment, but it's just `process.env.LOOPOVER_API_TOKEN = "in-process-token";`, a placeholder test fixture value identical in shape to sibling test files — not a real credential, so no rotation is needed.
  • `packages/loopover-mcp/bin/loopover-mcp.ts:1781` uses an explicit `any` for the handler args (`{ owner, repo, refresh }: any`), consistent with every other `registerStdioTool` handler in this file, so it's not a new pattern but worth eventually typing from the zod shape.
  • The file continues to grow past 1700 lines as a single-file CLI (a known, documented design decision per the top-of-file comment), so no action needed here beyond what's already acknowledged in the codebase.
  • None beyond the nits above — the change is narrow, well-tested, and consistent with existing sibling tool registrations.
  • Possible secret-shaped assignment in the diff (generic_secret_assignment) — Verify the value is not a real credential.

Decision drivers

  • ✅ Code review — No blockers (1 reviewer)
  • ✅ Gate result — Passing (No configured blocker found.)
Context & advisory signals — never blocks the verdict
Signal Result Evidence
Linked issue ✅ Linked #7756
Related work ✅ No active overlap found No same-issue or scoped active PR overlap found.
Change scope ✅ 20/20 Low review scope from cached public metadata (1 linked issue).
Validation posture ✅ 25/25 PR body includes validation/test evidence.
Contributor workload ✅ 10/10 Author activity: 190 registered-repo PR(s), 120 merged, 22 issue(s).
Contributor context ✅ Confirmed Gittensor contributor andriypolanski; Gittensor profile; 190 PR(s), 22 issue(s).
Improvement ✅ Minor risk: clean · value: minor · LLM: moderate
Linked issue satisfaction

Addressed
The PR adds a registerStdioTool block for loopover_get_repo_onboarding_pack following the sibling pattern (STDIO_TOOL_DESCRIPTORS entry, stdioToolDescription lookup, toolResult), reuses the same GET .../onboarding-pack/preview endpoint the CLI uses, and includes a matching test file plus updated tool-count pin.

Review context
  • Author: andriypolanski
  • Role context: outside_contributor
  • Public audience mode: oss maintainer
  • Lane context: Repository is configured for direct PR review.
  • Public profile languages: Python, TypeScript, JavaScript, Rust, Cuda, Kotlin, MDX, Scala
  • Official Gittensor activity: 190 PR(s), 22 issue(s).
  • PR-specific overlap: none found.
Contributor next steps
  • Keep the PR focused and include validation evidence before maintainer review.
Signal definitions
  • Related work = same linked issue, overlapping active PRs, or title/path similarity.
  • Change scope = cached public metadata such as size labels, draft state, and review-burden hints.
  • Validation posture = whether the PR provides enough public validation/test evidence for maintainer review.
  • Contributor workload = public contributor activity and cleanup pressure, not a repo-wide quality failure.
  • Contributor context = public GitHub/Gittensor identity context; non-Gittensor status is not a blocker.
🧪 Chat with LoopOver

Ask 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.

  • @loopover ask <question> answers contribution-quality Q&A with source citations and freshness.
  • @loopover chat <question> answers in natural prose from cached decision-pack facts via local inference (maintainer/collaborator; read-only).
  • A plain-language @loopover mention with a real question is routed to the closest matching read-only command automatically — no exact syntax required.

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.

  • Re-run LoopOver review

@JSONbored
JSONbored merged commit b9aa25f into JSONbored:main Jul 22, 2026
22 checks passed
@github-actions github-actions Bot mentioned this pull request Jul 22, 2026
12 tasks
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. manual-review Gittensor contributor context

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Register loopover_get_repo_onboarding_pack as a local stdio MCP tool

3 participants