Skip to content

feat(mcp): register loopover_list_notifications as a local stdio tool (#7761)#7965

Merged
loopover-orb[bot] merged 1 commit into
JSONbored:mainfrom
andriypolanski:fix/7761
Jul 22, 2026
Merged

feat(mcp): register loopover_list_notifications as a local stdio tool (#7761)#7965
loopover-orb[bot] merged 1 commit into
JSONbored:mainfrom
andriypolanski:fix/7761

Conversation

@andriypolanski

Copy link
Copy Markdown
Contributor

Summary
Registers loopover_list_notifications as a local stdio MCP tool (89 → 90), mirroring the existing remote tool + notifications CLI.
Reuses getNotifications → GET /v1/contributors/:login/notifications (no duplicated HTTP).
Handler is branch-free (no ?? / ?. / ternaries) to keep codecov/patch at ~100% after #7763 partials failures.
Closes #7761

Test plan
build:mcp + typecheck + branding-drift:check
vitest coverage: mcp-cli-list-notifications-tool, mcp-tool-rename-aliases (3 executable patch lines, all hit)
CI green including codecov/patch

@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 00:15:44 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 new stdio MCP tool loopover_list_notifications that thinly wraps the existing getNotifications() helper (GET /v1/contributors/:login/notifications), following the exact same registerStdioTool pattern used by sibling tools like loopover_get_maintainer_noise and loopover_mark_notifications_read. The handler is intentionally branch-free to keep patch coverage high, and the accompanying test correctly exercises the real registered tool in-process, asserting the captured request URL, response payload, and description text. The tool-count bump test (93→94) is updated in lockstep with the new registration, which is a known convention in this file.

Nits — 5 non-blocking
  • The handler at packages/loopover-mcp/bin/loopover-mcp.ts:2440 uses `({ login }: any) =>`, but this matches the untyped convention already used by every other stdio tool handler in this file, so it's not something this PR should be singled out for.
  • The external secret scanner flagged test/unit/mcp-cli-list-notifications-tool.test.ts:33 (`LOOPOVER_API_TOKEN = "in-process-token"`) — this is a hardcoded fixture token for the in-process test harness, not a real credential, but worth a quick sanity check that it can't be confused with a live secret in CI logs.
  • The PR description notes issue Register loopover_list_notifications as a local stdio MCP tool #7761 coverage as 'partial' per the external brief; worth confirming the issue's acceptance criteria are fully met before merge, though nothing in the diff itself looks incomplete.
  • Nothing to change in the diff itself — it's a clean, minimal mirror of an established pattern (get/proxy handler + registration + coverage test + count-pin update).
  • 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 #7761
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: 184 registered-repo PR(s), 118 merged, 22 issue(s).
Contributor context ✅ Confirmed Gittensor contributor andriypolanski; Gittensor profile; 184 PR(s), 22 issue(s).
Improvement ✅ Minor risk: clean · value: minor
Linked issue satisfaction

Addressed
The PR adds a registerStdioTool block for loopover_list_notifications following the exact pattern of the PR #6382 siblings, reuses the existing getNotifications call (no duplicated HTTP logic), and sources its description via stdioToolDescription, with accompanying test coverage updating the tool count and verifying the REST call path.

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: 184 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

@loopover-orb loopover-orb Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LoopOver approves — the gate is satisfied and CI is green.

@loopover-orb
loopover-orb Bot merged commit 8c2950c into JSONbored:main Jul 22, 2026
10 checks passed
@codecov

codecov Bot commented Jul 22, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 81.79%. Comparing base (a4c15d6) to head (6cc6166).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@             Coverage Diff             @@
##             main    #7965       +/-   ##
===========================================
- Coverage   91.87%   81.79%   -10.08%     
===========================================
  Files         735       91      -644     
  Lines       75474    23713    -51761     
  Branches    22960     4551    -18409     
===========================================
- Hits        69340    19396    -49944     
+ Misses       5042     4121      -921     
+ Partials     1092      196      -896     
Flag Coverage Δ
shard-1 11.63% <100.00%> (-47.08%) ⬇️
shard-2 0.00% <0.00%> (-46.92%) ⬇️
shard-3 0.00% <0.00%> (-56.28%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
packages/loopover-mcp/bin/loopover-mcp.ts 11.63% <100.00%> (-4.60%) ⬇️

... and 644 files with indirect coverage changes

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.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Register loopover_list_notifications as a local stdio MCP tool

2 participants