feat(mcp-cli): register gittensory_get_burden_forecast stdio proxy tool - #4322
Conversation
The hosted MCP server registers gittensory_get_burden_forecast (src/mcp/server.ts), but the stdio package never did, so a maintainer running the local stdio server cannot pull the cached burden forecast (projected review load, queue-growth risk, stale-PR signals). The maintainer-triage agent profile in the stdio bin already lists the tool under recommendedTools, so registering it also reconciles that dangling reference. There is no dedicated GET route for the forecast: the API serves it as the burdenForecast / burdenForecastFreshness slice of /v1/repos/:owner/:repo/intelligence (buildRepoIntelligenceResponse in src/api/routes.ts). The new stdio tool therefore proxies that endpoint via apiGet with the standard ownerRepo input handling, returns the forecast slice with its freshness marker, and mirrors the hosted tool's not_found contract when no forecast is cached. The tool is wired through STDIO_TOOL_DESCRIPTORS so registration and the tools inventory stay in sync, and covered by a subprocess stdio test (tool listing, proxied payload, and the not_found branch) against dedicated fixture repos so the shared owner/repo intelligence fixture stays free for sibling tools. Closes JSONbored#2230
|
Superagent didn't find any vulnerabilities or security issues in this PR. |
|
Caution 🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥 🛑 Gittensory review result - reject/close recommendedReview updated: 2026-07-08 20:57:19 UTC
🛑 Suggested Action - Reject/Close
Review summary Nits — 5 non-blocking
Why this is blocked
Review context
Contributor next steps
Signal definitions
🟩 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 Gittensory, a quiet PR intelligence layer for OSS maintainers.
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #4322 +/- ##
=======================================
Coverage 93.94% 93.94%
=======================================
Files 397 397
Lines 36736 36736
Branches 13428 13428
=======================================
Hits 34511 34511
Misses 1569 1569
Partials 656 656 🚀 New features to boost your workflow:
|
|
Gittensory is closing this pull request on the maintainer's behalf (Linked issue overlaps another open PR; duplicate of another open PR). This is an automated maintenance action — to pursue this change, please open a new pull request with the issues resolved. Closed PRs may be analyzed later to improve review accuracy, but they are not automatically reopened or re-reviewed. |
What
The hosted MCP server registers
gittensory_get_burden_forecast(src/mcp/server.ts), but the stdio package (packages/gittensory-mcp/bin/gittensory-mcp.js) never registered it, so a maintainer running the local stdio server could not pull the cached burden forecast (projected review load, queue-growth risk, stale-PR signals). Themaintainer-triageagent profile in the stdio bin already lists the tool underrecommendedTools, so registering it also reconciles that dangling reference.There is no dedicated GET route for the forecast: the API serves it as the
burdenForecast/burdenForecastFreshnessslice ofGET /v1/repos/:owner/:repo/intelligence(buildRepoIntelligenceResponseinsrc/api/routes.ts). The new stdio tool therefore proxies that endpoint viaapiGetwith the standardownerRepoinput handling, returns the forecast slice with its freshness marker, and mirrors the hosted tool'snot_foundcontract when no forecast is cached.The tool is wired through
STDIO_TOOL_DESCRIPTORS(#2233) so registration and thegittensory-mcp toolsinventory stay in sync.Note: this change previously ran as PR #4229, where the review gate approved it ("safe to merge") twice; that PR was closed when its final rebase landed during the
src/queue/processors.tsduplicate-implementation breakage on main (fixed by #4318). This is the fresh resubmission on top of the fixed main, per the closure guidance.Deliverables
gittensory_get_burden_forecastinpackages/gittensory-mcp/bin/gittensory-mcp.jsproxying the burden-forecast data viaapiGet(served on the repo intelligence endpoint - no dedicated burden-forecast GET route exists).ownerRepoinput handling matching existing repo-scoped tools (gittensory_get_repo_context).not_foundbranch, against dedicatedacme/*fixture repos so the sharedowner/repointelligence fixture stays free for sibling tools.Validation
npx tsc --noEmit(0 errors on top of d329591)npx vitest run test/unit/mcp-cli-*.test.ts(full family green; descriptor/registration parity test from feat(mcp-cli): add agittensory-mcp toolscommand that lists every stdio tool + description #2233 included)npm run build:mcp && npm run test:mcp-packgit diff --checkCloses #2230