refactor(mcp): retire the loopover_/gittensory_ legacy tool-name aliases - #5648
Conversation
Issue #4775 renamed the local stdio MCP CLI's 37 tools from gittensory_-prefixed to loopover_-prefixed names, keeping the old names registered as deprecated aliases (registerToolWithLegacyAlias) during a transition window. Remove that mechanism: each tool now registers once, under its canonical loopover_ name only. Deletes legacyAliasName() and ALL_STDIO_TOOL_DESCRIPTORS (the 37-primary + 37-alias merged descriptor list), collapsing stdioToolDescription() and the `tools` CLI subcommand back to the original 37-entry STDIO_TOOL_DESCRIPTORS. Deliberately unchanged: AGENT_PROFILES.recommendedTools/recommendedPrompts still reference several gittensory_-prefixed names. Most of those belong to the separate, never-renamed remote/hosted MCP server (src/mcp/server.ts), not these local CLI tools. A handful do collide with locally-renamed tools (gittensory_agent_plan_next_work and 7 others) -- left exactly as-is pending a maintainer call on whether those specific references were meant to track the local rename, since test/unit/mcp-cli-basics.test.ts pins this exact spelling today. Part of #4777
|
Superagent didn't find any vulnerabilities or security issues in this PR. |
1 similar comment
|
Superagent didn't find any vulnerabilities or security issues in this PR. |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #5648 +/- ##
=======================================
Coverage 95.03% 95.03%
=======================================
Files 577 577
Lines 45920 45920
Branches 14695 14695
=======================================
Hits 43640 43640
Misses 1528 1528
Partials 752 752
Flags with carried forward coverage won't be shown. Click here to find out more. 🚀 New features to boost your workflow:
|
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
loopover-ui | 92ddd5a | Commit Preview URL Branch Preview URL |
Jul 13 2026, 07:51 PM |
|
Warning 🟨🟨🟨🟨🟨🟨🟨🟨🟨🟨🟨🟨 ⏸️ LoopOver review result - manual review recommendedReview updated: 2026-07-13 19:54:13 UTC
⏸️ Suggested Action - Manual Review
Review summary Nits — 6 non-blocking
Concerns raised — review before merging
📋 Copy for AI agents — paste into your coding agent
Review context
Contributor next steps
Signal definitions
[BETA] Chat with GittensoryAsk Gittensory 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://gittensory.aethereal.dev/docs/gittensory-commands 🟩 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.
|
#5650) * ci(selfhost): stop publishing the legacy gittensory-selfhost image tag The self-host container image release workflow published every orb-v tag under both the renamed "loopover-selfhost" name and the pre-rename "gittensory-selfhost" name as a dual-publish alias. Stop publishing under the old name going forward -- only "loopover-selfhost" ships from here on. Already-published tags and digests under the old name are untouched; GHCR has no server-side alias, so an existing exact-version or digest pin keeps resolving forever regardless. Only a ":latest"-style pin stops advancing, which is the accepted tradeoff of retiring the dual-publish, not something this change works around. Updates the release workflow's image metadata step and release-notes template, trims the now-stale dual-publish/alias commentary from the deploy script, release-automation scripts, and .env.example, and brings the self-hosting docs and unit tests in line with the new single-name publish. Part of #4777 * ci: retrigger Workers Builds (Cloudflare build-concurrency contention from #5648 merge)
…him (#5651) * chore(config): retire the .gittensory.yml config-filename dual-read shim The config-filename grace period from the LoopOver rebrand has elapsed: drop legacy .gittensory.yml/.yaml/.json support from every reader now that the new .loopover.yml name is the only one read. - src/selfhost/private-config.ts: collapse CONFIG_BASENAMES/CONFIG_EXTENSIONS to the 3 .loopover.* entries, drop the 3 legacy .gittensory.* entries, rewrite the module-header comment. - src/signals/focus-manifest-loader.ts: drop the 4 legacy entries from MANIFEST_FILE_CANDIDATES, strip dual-brand language from the doc comments. - src/review/guardrail-config.ts and its hand-duplicated engine twin (packages/gittensory-engine/src/review/guardrail-config.ts): drop the 6 legacy globs from CONFIG_AS_CODE_GUARDRAIL_GLOBS. - packages/gittensory-engine/src/objective-anchor.ts: drop the legacy entry from the CONFIG_FILENAMES classification set. - packages/gittensory-engine/src/predicted-gate.ts: drop the legacy filename from the predictor's public-facing note text; regenerate the engine-parity golden fixtures to match. - src/queue/processors.ts: drop the legacy filename from the E2E-test-gen-not-enabled comment posted to contributors. - Renames this repo's own root config file (.gittensory.yml -> .loopover.yml, .gittensory.yml.example -> .loopover.yml.example) to dogfood the new-only behavior. - Updates every affected test: removes/collapses the dual-brand describe blocks, and fixes stub fetch-URL matchers and expected-string assertions that were still keyed on the old filename (several of these were silent regressions -- a stale ".gittensory.y" URL matcher meant a test's manifest stub was never hit, and it was instead falling through to a real bundled fallback manifest). - Updates docs: config/examples/, CONTRIBUTING.md, README.md, the self-hosting doc pages, and the contributing-to-loopover skill. Part of #4777. * ci: retrigger Workers Builds (Cloudflare build-concurrency contention from #5648 merge)
… tool refs to loopover_ The local CLI's stdio tools were already renamed in #5648; these AGENT_PROFILES recommendedTools/prompt-guidance strings and their matching test assertions were the remaining stale references. Also fixes a leftover .gittensory.yml mention in a visual-wire.ts comment. Part of #4777
…e worker (#5652) * refactor(env): retire GITTENSORY_<X>/LOOPOVER_<X> dual-read across the worker Deletes src/utils/env.ts (dualPrefixEnvString/Flag/StrictFlag) now that every call site reads its LOOPOVER_<X> var directly. This is the largest and highest-risk piece of the #4774 dual-read cleanup: auth/security.ts and selfhost/preflight.ts (API/MCP token auth + preflight secret checks) move in lockstep so a self-hoster's preflight and auth gate agree on the same var names; selfhost/ai.ts and selfhost/health.ts keep ENABLE_UNSAFE_CODEX_REVIEWER as a strict `=== "1"` check; the ~20 review/** feature flags (safety, grounding, RAG, unified comment, reputation, ops, selftune, content-lane, parity-audit, draft, planner, impact-map, culture-profile, memory, inline-comments, fix-handoff, e2e-tests, improvement-signal, enrichment, continuous) and the REVIEW_REPOS cutover allowlist all move together with their existing precedence logic untouched; notify-discord.ts's per-repo webhook map now points 'jsonbored/gittensory' straight at LOOPOVER_DISCORD_WEBHOOK instead of deriving it from a GITTENSORY_ name at runtime. wrangler.jsonc's `vars` block is renamed alongside src/env.d.ts -- the deployed Worker's own var bindings were still declaring the pre-rebrand GITTENSORY_REVIEW_* keys, which would have left every LOOPOVER_REVIEW_* read unbound on deploy once the dual-read helper was gone. worker-configuration.d.ts and apps/gittensory-ui/src/lib/selfhost-env-reference.ts are regenerated to match. scripts/gen-selfhost-env-reference.mjs drops the dual-prefix AST recognition branch now that no call site needs it. .env.example and .env.selfhost.example flip to LOOPOVER_<X> as the live, uncommented default with the retired GITTENSORY_<X> name left as a commented "no longer read" note. Self-hosting docs pages and their stray GITTENSORY_REVIEW_* wildcard-family prose mentions are updated to match, including a couple of comment-only references in packages/gittensory-engine that had drifted from the actual env var names. Tests are the mechanical counterpart: utils-env.test.ts is deleted, auth.test.ts loses its "legacy alone" case, and every *-wire/selfhost/notify test fixtures on the new LOOPOVER_ names. Fields with no LOOPOVER_ sibling (SKIP_AUTOMATION_BOT_PRS, the DRIFT_ISSUE_* and MAINTAINER_RECAP families, PUBLIC_STATS, SWEEP_WATCHDOG, PR_RECONCILIATION, EXPERIMENTAL_GITTENSOR, DUPLICATE_WINNER, OPEN_PR_FILE_COLLISION, UPLOAD_SOURCE, CONTRIBUTOR_ISSUE_TOKEN, and the bespoke REVIEW_STATS_TOKEN secret name) are left on their existing GITTENSORY_ prefix -- they were never part of the dual-read family. Part of #4777 * ci: retrigger Workers Builds (Cloudflare build-concurrency contention from #5648 merge) * refactor(mcp): rename the last 17 gittensory_-prefixed AGENT_PROFILES tool refs to loopover_ The local CLI's stdio tools were already renamed in #5648; these AGENT_PROFILES recommendedTools/prompt-guidance strings and their matching test assertions were the remaining stale references. Also fixes a leftover .gittensory.yml mention in a visual-wire.ts comment. Part of #4777 * fix(mcp): rename the last stale gittensory_check_issue_slop refs to loopover_ test/unit/mcp-cli-issue-slop.test.ts and a routes.ts comment still expected the pre-#5648 local CLI tool name. Missed in the previous pass because the verification grep was truncated by an unintended `head -40`. Part of #4777 * fix(review): rename the last live gittensory_-named secret to LOOPOVER_REVIEW_STATS_TOKEN src/review/stats.ts's STATS_TOKEN_SECRET constant, its self-host docs entry (docs.tuning.tsx), and .env.example still named the old GITTENSORY_REVIEW_ prefix. Missed by npm run cf-typegen:check since it's a secret (set via wrangler secret put / a self-host .env), not a wrangler.jsonc var, so codegen never sees it. Verified before renaming: `wrangler secret list` shows no secret by this name on the hosted Worker, and the self-hosted server's real .env has no match either (only its .env.example, commented out) -- this token has never actually been configured anywhere, so the rename carries zero live- cutover risk. Part of #4777 * style(ui): reflow docs.tuning.tsx after the LOOPOVER_REVIEW_STATS_TOKEN rename
#5666) cross-repo-discovery-phase1.md and an opportunity-ranker.ts comment still described the hosted and stdio MCP surfaces as sharing one gittensory_- prefixed tool name. The stdio CLI's tool was renamed to loopover_find_opportunities by #5648; only the hosted server kept the gittensory_ prefix. Prose-only, no behavior change.
Issue #4775 renamed the local stdio MCP CLI's 37 tools from
gittensory_-prefixed to loopover_-prefixed names, keeping the old
names registered as deprecated aliases (registerToolWithLegacyAlias)
during a transition window. Remove that mechanism: each tool now
registers once, under its canonical loopover_ name only.
Deletes legacyAliasName() and ALL_STDIO_TOOL_DESCRIPTORS (the
37-primary + 37-alias merged descriptor list), collapsing
stdioToolDescription() and the
toolsCLI subcommand back to theoriginal 37-entry STDIO_TOOL_DESCRIPTORS.
Deliberately unchanged: AGENT_PROFILES.recommendedTools/recommendedPrompts
still reference several gittensory_-prefixed names. Most of those
belong to the separate, never-renamed remote/hosted MCP server
(src/mcp/server.ts), not these local CLI tools. A handful do collide
with locally-renamed tools (gittensory_agent_plan_next_work and 7
others) -- left exactly as-is pending a maintainer call on whether
those specific references were meant to track the local rename,
since test/unit/mcp-cli-basics.test.ts pins this exact spelling today.
Part of #4777