fix(test): rename the stale gittensory GITHUB_APP_SLUG default to loopover-orb - #6900
Conversation
|
Superagent didn't find any vulnerabilities or security issues in this PR. |
60468eb to
da1b3c3
Compare
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #6900 +/- ##
=======================================
Coverage 93.70% 93.70%
=======================================
Files 685 685
Lines 68284 68284
Branches 18715 18715
=======================================
Hits 63985 63985
Misses 3302 3302
Partials 997 997
Flags with carried forward coverage won't be shown. Click here to find out more. |
|
Caution 🛑 LoopOver review result - fixes requiredReview updated: 2026-07-17 11:30:25 UTC
Review summary Nits — 3 non-blocking
Why this is blocked
📋 Copy for AI agents — paste into your coding agentCI checks failing
Decision drivers
Context & advisory signals — never blocks the verdict
Review context
Contributor next steps
Signal definitions
🧪 Chat with LoopOverAsk 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.
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.
|
…pover-orb
test/helpers/d1.ts's createTestEnv() defaulted GITHUB_APP_SLUG to "gittensory" --
the pre-rename product name -- even though the real, live canonical GitHub App is
"loopover-orb" (src/services/subnet-interface.ts's PUBLIC_GITHUB_APP_SLUG, "the same
stable, real app across every deployment") and production's own unset-fallback is
"loopover" (src/api/routes.ts). Surfaced while investigating an unrelated flaky-test
report: two tests (test/unit/github-labels.test.ts, test/unit/github-pr-actions.test.ts)
constructed a fresh RSA key and D1 database per loop iteration; fixing that (a separate,
already-merged PR) revealed the shared default itself was stale.
Renames the default to "loopover-orb" and updates every fixture across ~20 files that
depends on it -- bot-login strings ("gittensory[bot]" -> "loopover-orb[bot]"), check-run
app.slug fixtures, explicit GITHUB_APP_SLUG overrides, and one test that asserts on the
project-slug value directly. Left untouched (confirmed deliberately preserved, not
stale): sticky-comment HTML markers, the "gittensory-native" DB-source literal, Sentry
ticket IDs, the GITTENSORY_LEGACY_*_CHECK_NAME upgrade-compatibility constants, and the
"JSONbored/gittensory" generic-placeholder-repo-name pattern used across ~144 files
(NOT swapped for "JSONbored/loopover", which is a live self-repo sentinel value that
would silently change unrelated tests' behavior).
Two subtleties worth noting for future reference:
- A function's matching semantics matter: isOwnReviewThreadAuthor does PREFIX matching,
so its own dedicated test (backfill-2.test.ts) needed an explicit bare "loopover"
override to keep testing multiple suffix forms, rather than inheriting the new
"loopover-orb" default -- a bare "loopover[bot]" fixture would not prefix-match a
"loopover-orb" configured slug.
- Regenerated scripts/branding-drift-baseline.json (npm run branding-drift:update)
after a one-line comment fix in packages/loopover-mcp/bin/loopover-mcp.js (a stale
claim that enrichment-analyzers "keeps its legacy gittensory:// URI on purpose" --
it was already loopover:// per #6786) dropped that file's tracked "gittensory"
mention count from 3 to 2.
Verified: all ~20 affected files pass individually and together (1621 tests), a clean
typecheck, and a full local npm run test:ci pass with zero failures attributable to
this change (two unrelated, pre-existing failures surfaced -- a terraform/ directory
deliberately removed in a separate prior commit leaving a stale test behind, and a
self-host Sentry release script already renamed to loopover-selfhost while its test
still pinned the old value -- both confirmed unrelated via git blame/content diff and
left for a separate follow-up).
da1b3c3 to
9034739
Compare
test/unit/root-terraform-grafana-firewall.test.ts read terraform/main.tf, terraform/variables.tf, and terraform/README.md -- all deleted by commit 9001197 ("chore: remove unused terraform/ directory"), whose message confirms this was deliberate and discussed with the repo owner ("Never applied... no intention of using terraform/Hetzner going forward"). The test guarded real safety-critical invariants (Grafana's firewall port never opened to the public) for a module that no longer exists, so it's pure dead code now -- removed rather than updated, since there's nothing left to test. The miner's separate Terraform module (packages/loopover-miner/terraform/) is untouched and still has its own test. test/unit/selfhost-sentry-release.test.ts asserted scripts/deploy-selfhost-prebuilt.sh still defaults SENTRY_RELEASE to the pre-rename "gittensory-selfhost@..." prefix; the script itself has already moved to "loopover-selfhost@...". Every other assertion in this test (40+, covering the release workflow's Docker image naming, Sentry API calls, and version-tag handling) was already correct and unaffected -- only this one stale expected value needed updating to match reality. Also regenerates scripts/branding-drift-baseline.json: unrelated to this change, but picked up while re-verifying against a moving main -- a separate, concurrent rebrand PR removed a "gittensory" comment mention in packages/loopover-mcp/bin/loopover-mcp.js without regenerating the baseline, so the regression-guard test in check-branding-drift-script.test.ts was failing on main itself. Confirmed via git blame/content inspection that both original failures were unrelated to any of this session's other PRs (verified real CI logs on JSONbored#6900, which surfaced these same 2 pre-existing failures despite never touching either file).
Sweeps the rest of test/ for lingering pre-rename "gittensory" text that PR JSONbored#6900 didn't already cover -- arbitrary example values, prose comments, and non-functional identifiers with no behavioral dependency on the real GITHUB_APP_SLUG or LOOPOVER_REVIEW_REPOS defaults. Purely 1:1 string swaps, no logic changes. Verified via three full unsharded npm run test:coverage passes. The first (before rebasing onto JSONbored#6900/JSONbored#6902) was green on a stale base. After reconciling onto the new origin/main, the second surfaced 3 files (rag-index.test.ts, reputation-wiring.test.ts, ci-completion-fork-resume.test.ts) where the renamed repo identity happened to be the SAME value load-bearing against LOOPOVER_REVIEW_REPOS's still-current "JSONbored/gittensory,acme/widgets" allowlist default -- reverted those three back to "gittensory" to keep the allowlist match, matching the same reasoning JSONbored#6900 already applied to GITHUB_APP_SLUG-dependent fixtures. The third run confirmed clean: 949 files, 18084 tests, 0 failures.
Summary
test/helpers/d1.ts'screateTestEnv()defaultedGITHUB_APP_SLUGto"gittensory"-- the pre-rename product name -- even though the real, live canonical GitHub App is"loopover-orb"(src/services/subnet-interface.ts'sPUBLIC_GITHUB_APP_SLUG, described in its own comment as "the same stable, real app across every deployment") and production's own unset-fallback is"loopover"(src/api/routes.ts:936).test/unit/github-labels.test.ts,test/unit/github-pr-actions.test.ts, fixed in fix(test): stop rebuilding env/keys per iteration in repo-name validation tests #6880) constructed a fresh RSA key and D1 database per loop iteration; fixing that revealed the sharedGITHUB_APP_SLUGdefault itself was stale."loopover-orb"and updates every fixture across ~20 files that depends on it: bot-login strings ("gittensory[bot]"->"loopover-orb[bot]"), check-runapp.slugfixtures, explicitGITHUB_APP_SLUGoverrides, and one test that asserts on the resulting project-slug value directly.<!-- gittensory-pr-panel:v1 -->, never renamed in production), the"gittensory-native"DB-source literal (written intoreview_audit/contributor_gate_historyrows, renaming would orphan existing data), Sentry ticket IDs (GITTENSORY-*), theGITTENSORY_LEGACY_*_CHECK_NAMEconstants (kept for self-hoster upgrade compatibility), and the"JSONbored/gittensory"generic-placeholder-repo-name pattern used across ~144 files (not swapped for"JSONbored/loopover", which is a live self-repo sentinel value that would silently change unrelated tests' behavior viaisLoopOverSelfRepo()).Two subtleties worth calling out for reviewers:
isOwnReviewThreadAuthordoes prefix matching, not exact matching, so its own dedicated test (backfill-2.test.ts) needed an explicit bare"loopover"override to keep testing multiple suffix forms, rather than inheriting the new"loopover-orb"default -- a bare"loopover[bot]"fixture would not prefix-match a"loopover-orb"configured slug (traced throughisAuthorizedReviewThreadAuthor's early-return logic to confirm this before assuming).packages/loopover-mcp/bin/loopover-mcp.js(a stale claim thatenrichment-analyzers"keeps its legacy gittensory:// URI on purpose" -- it was alreadyloopover://, confirmed againstsrc/review/enrichment-analyzers-taxonomy.ts) dropped that file's tracked "gittensory" mention count from 3 to 2, sonpm run branding-drift:updatewas run and the regeneratedscripts/branding-drift-baseline.jsonis included.Scope
type(scope): short summaryConventional Commit format.CONTRIBUTING.mdand does not reintroduce GitHub Pages, VitePress,site/, orCNAME.Validation
git diff --checknpm run actionlintnpm run typechecknpm run test:coveragelocally -- test-only change (plus a regenerated baseline JSON and one comment fix), which Codecov does not measure undertest/**, so there is no patch-coverage obligation.npm run test:workersnpm run build:mcpnpm run test:mcp-packnpm run ui:openapi:checknpm run ui:lintnpm run ui:typechecknpm run ui:buildnpm audit --audit-level=moderateAdditional validation: all ~20 affected files verified individually and together (1621 tests, zero failures). A full local
npm run test:cirun is green for everything this PR touches. That run also surfaced two unrelated, pre-existing failures, both confirmed viagit blame/content inspection to be nothing to do with this change:test/unit/root-terraform-grafana-firewall.test.tsfails becauseterraform/was deliberately deleted in an earlier, separate commit (9001197c, "chore: remove unused terraform/ directory") that didn't clean up this test;test/unit/selfhost-sentry-release.test.tsfails becausescripts/deploy-selfhost-prebuilt.shhas already been renamed toloopover-selfhostwhile the test still pins the oldgittensory-selfhostvalue. Both are being fixed in a small separate follow-up PR.Safety
UI Evidencesection below. (Not applicable -- no visible/UI changes.)UI Evidence
Not applicable -- test-only change (plus one generated baseline file and one comment fix), no UI/frontend/docs surface touched.
Notes
ai-summaries.test.ts), fix(test): reduce and widen the agent-sdk-driver real-git test timeout #6871 (agent-sdk-driver.test.ts), fix(test): widen timeouts on real-git miner clone/worktree tests #6869 (miner clone/worktree suite), fix(test): stop rebuilding env/keys per iteration in repo-name validation tests #6880 (github-labels/github-pr-actionsredundant-setup fix), fix(test): match release-selfhost-prerelease.test.ts to the loopover-orb rename #6883 (release-selfhost-prerelease.test.ts-- a related but independently-discoveredgittensory-orb->loopover-orbstaleness in a different subsystem).terraform/test, Sentry release-script test).