-
-
Notifications
You must be signed in to change notification settings - Fork 76
chore(mcp): migrate packages/loopover-mcp from plain .js to real TypeScript #7291
Copy link
Copy link
Open
3 / 33 of 3 issues completedOpen
3 / 33 of 3 issues completed
Copy link
Labels
gittensor:featureGittensor-scored feature linked to a feature issue — scores a 0.25x multiplier.Gittensor-scored feature linked to a feature issue — scores a 0.25x multiplier.gittensor:priorityMaintainer-selected Gittensor priority — scores a 1.5x multiplier.Maintainer-selected Gittensor priority — scores a 1.5x multiplier.maintainer-onlyOwner-only work — yields no Gittensor points.Owner-only work — yields no Gittensor points.
Milestone
Description
Metadata
Metadata
Assignees
Labels
gittensor:featureGittensor-scored feature linked to a feature issue — scores a 0.25x multiplier.Gittensor-scored feature linked to a feature issue — scores a 0.25x multiplier.gittensor:priorityMaintainer-selected Gittensor priority — scores a 1.5x multiplier.Maintainer-selected Gittensor priority — scores a 1.5x multiplier.maintainer-onlyOwner-only work — yields no Gittensor points.Owner-only work — yields no Gittensor points.
Problem (corrected 2026-07-19)
packages/loopover-mcphas 6 plain.jsfiles with no.d.tsdeclarations at all -- unlikepackages/loopover-miner(which at least has a hand-maintained.d.tsper file, trackedseparately in #7290), this package has zero compiler-verified types on any of its source.
Correction to this issue's original scope: it previously said this was "small enough to be one
reviewable PR." That was wrong -- a real line-count check shows the six files are wildly uneven:
lib/cli-error.js-- 27 lineslib/format-table.js-- 58 lineslib/redact-local-path.js-- 58 lineslib/telemetry.js-- 68 lineslib/local-branch.js-- 592 linesbin/loopover-mcp.js-- 6,594 linesbin/loopover-mcp.jsalone is larger thanpackages/loopover-miner's entire remaining migrationcombined. This needs the same phased treatment #7290 already uses, not a single PR.
Proposal
Convert to real
.tssource compiled viatsc, mirroringpackages/loopover-engine/src/**'salready-100%-TypeScript precedent. Phased by file size, smallest first:
local-branch.js(592 lines -- substantial enough to be its own batch)bin/loopover-mcp.js(6,594 lines) -- flagged explicitly: whoever picksthis up should evaluate whether a straight 1:1 rename is even the right move for a file this
size, versus splitting it into multiple
.tsmodules as part of the conversion. That's a realdesign decision this issue doesn't make -- it's out of scope to assume either way here.
Deliverables
packages/loopover-mcp/tsconfig.jsonadded (Phase 1)build/typecheckscripts updated to a realtsccompile, notnode --checkloopover-mcp --help/--versionand its realcommands behave unchanged)
Test Coverage Requirements
No behavior change from this migration alone. Existing tests must continue to pass unmodified.
Expected Outcome
packages/loopover-mcp's source is real, compiler-verified TypeScript instead of untyped plain JS.Links & Resources
packages/loopover-minerequivalent of this same migration, same phasing patternpackages/loopover-engine/src/**-- the proven TypeScript precedent in this monorepo