Skip to content

chore(ci): add a drift guardrail against new gittensory branding#6788

Merged
JSONbored merged 2 commits into
mainfrom
chore/branding-drift-guardrail
Jul 17, 2026
Merged

chore(ci): add a drift guardrail against new gittensory branding#6788
JSONbored merged 2 commits into
mainfrom
chore/branding-drift-guardrail

Conversation

@JSONbored

Copy link
Copy Markdown
Owner

Summary

  • User ask this session: eliminate gittensory/loopover naming ambiguity "once and for all" so it doesn't keep recurring — this has independently broken things 3-4 times recently (Docker Compose project drift, a Sentry monitor slug, Prometheus metric-name continuity, and, found in this same session, a hardcoded MCP resource URI in fix(mcp): rename enrichment-analyzers resource URI to loopover:// #6786).
  • Adds scripts/check-branding-drift.mjs: snapshots today's known gittensory mentions (line-count granularity via git grep -c) in executable code under src/** and each workspace package's bin/, lib/, src/, scripts/ dirs. test/**, docs, and CHANGELOGs are deliberately excluded — a Sentry ticket ID like GITTENSORY-K/8, a stable PR-comment marker, or a DB source column value joined against historical rows is a permanent, intentional reference in those files, not drift.
  • Baseline-diff, not a hard ban (36 legitimate existing references remain, cataloged in scripts/branding-drift-baseline.json): a file's count rising means new drift landed; falling means a cleanup landed without regenerating the baseline. Either way, npm run branding-drift:update regenerates it — same generated-artifact convention this repo already uses for openapi.json/cf-typegen/migrations, rather than a new pattern.
  • Wired into npm run test:ci via branding-drift:check.

Scope

  • Narrow, single-purpose change
  • No secrets/private terms touched
  • No changelog edit

Validation

  • npx vitest run test/unit/check-branding-drift-script.test.ts — 12/12 passing
  • npm run branding-drift:check — passes against the committed baseline
  • npm run typecheck — clean
  • Live smoke test: temporarily added a gittensory string to a scoped file, confirmed the check fails with a clear message, reverted, confirmed it passes again

Note

This branch's baseline was generated before #6786 (the enrichment-analyzers URI fix) merged, so it still counts packages/loopover-mcp/bin/loopover-mcp.js at its pre-fix value (5, not 3). Once #6786 merges, rebasing this branch and running npm run branding-drift:update before merge will pick up the corrected count — the check's own error message explains this exact situation if it's not done first.

This session found and fixed real behavioral drift left over from the
loopover rebrand -- a hardcoded MCP resource URI (#6786), a Qdrant
collection default, and metric names that only got caught by manual
investigation. scripts/check-branding-drift.mjs snapshots today's known
"gittensory" mentions in executable src/ and packages/*/{bin,lib,src}
code (test/**, docs, and CHANGELOGs are excluded -- those legitimately
reference the rename permanently) and fails CI if a file's count rises
without the baseline being regenerated, the same generated-artifact
convention this repo already uses for openapi.json and cf-typegen.

Wired into npm run test:ci via a new branding-drift:check script;
branding-drift:update regenerates the baseline for an intentional change.
@superagent-security

Copy link
Copy Markdown
Contributor

Superagent didn't find any vulnerabilities or security issues in this PR.

@JSONbored JSONbored self-assigned this Jul 17, 2026
@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Jul 17, 2026

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Preview URL Updated (UTC)
✅ Deployment successful!
View logs
loopover-ui f4c9a2c Commit Preview URL

Branch Preview URL
Jul 17 2026, 06:40 AM

@codecov

codecov Bot commented Jul 17, 2026

Copy link
Copy Markdown

Bundle Report

Bundle size has no change ✅

@codecov

codecov Bot commented Jul 17, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 93.63%. Comparing base (8cd0b24) to head (f4c9a2c).
⚠️ Report is 1 commits behind head on main.
✅ All tests successful. No failed tests found.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #6788   +/-   ##
=======================================
  Coverage   93.63%   93.63%           
=======================================
  Files         683      683           
  Lines       68148    68148           
  Branches    18703    18703           
=======================================
  Hits        63812    63812           
  Misses       3350     3350           
  Partials      986      986           
Flag Coverage Δ
shard-1 43.63% <ø> (-0.03%) ⬇️
shard-2 36.85% <ø> (+0.02%) ⬆️
shard-3 32.72% <ø> (-0.03%) ⬇️
shard-4 34.80% <ø> (+0.12%) ⬆️
shard-5 31.00% <ø> (-0.01%) ⬇️
shard-6 45.67% <ø> (ø)

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

@loopover-orb loopover-orb Bot added the gittensor:bug Gittensor-scored bug fix — scores a 0.05x multiplier. label Jul 17, 2026
@loopover-orb

loopover-orb Bot commented Jul 17, 2026

Copy link
Copy Markdown

Warning

⏸️ LoopOver review result - manual review recommended

Review updated: 2026-07-17 06:46:17 UTC

5 files · 1 blocker · CI green · unknown

⏸️ Suggested Action - Manual Review

  • AI review already in progress for this PR head: Another LoopOver pass is already running the AI review for this exact PR head. This pass is skipping to avoid a duplicate LLM call.

Review summary
AI review is already running for this PR head in another LoopOver pass. LoopOver is holding this PR for manual review until that pass completes.

Nits — 1 non-blocking
  • AI review already in progress for this PR head — The gate is held for a human reviewer rather than passed automatically; it re-evaluates once the in-flight review completes or on the next update.

Concerns raised — review before merging

  • No linked issue detected — If this PR is intended to solve an issue, link it explicitly in the PR body.
📋 Copy for AI agents — paste into your coding agent
Fix the following blocker(s) from this PR review:

1. No linked issue detected — If this PR is intended to solve an issue, link it explicitly in the PR body.

Decision drivers

  • ❌ Code review — 1 blocker (No AI review summary)
  • ❌ Gate result — Blocking (Repo-configured hard blocker found.)
Context & advisory signals — never blocks the verdict
Signal Result Evidence
Linked issue ✅ No-issue rationale PR body explains why no issue is linked.
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 (no linked issue context).
Validation posture ✅ 25/25 PR body includes validation/test evidence.
Contributor workload ✅ 10/10 Author activity: 33 registered-repo PR(s), 26 merged, 332 issue(s).
Contributor context ✅ Confirmed Gittensor contributor JSONbored; Gittensor profile; 33 PR(s), 332 issue(s).
Improvement ✅ Minor risk: clean · value: minor
Review context
  • Author: JSONbored
  • Role context: owner (maintainer lane)
  • Public audience mode: oss maintainer
  • Lane context: Repository is configured for direct PR review.
  • Public profile languages: Python, TypeScript, Ruby, Go, JavaScript, MDX, Shell, Solidity
  • Official Gittensor activity: 33 PR(s), 332 issue(s).
  • PR-specific overlap: none found.
Contributor next steps
  • Start here: Treat this as maintainer-lane context rather than normal contributor-lane activity.
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 &lt;question&gt; answers contribution-quality Q&A with source citations and freshness.
  • @loopover chat &lt;question&gt; 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 added the manual-review Gittensor contributor context label Jul 17, 2026
@JSONbored
JSONbored merged commit a4dcb48 into main Jul 17, 2026
19 checks passed
@JSONbored
JSONbored deleted the chore/branding-drift-guardrail branch July 17, 2026 06:46
thomasalvaedison7777-lgtm pushed a commit to thomasalvaedison7777-lgtm/loopover that referenced this pull request Jul 17, 2026
JSONbored#6786 removed the last 3 gittensory references in loopover-mcp.js,
routes.ts, and enrichment-analyzers-taxonomy.ts; JSONbored#6788's baseline (merged
around the same time) predated that fix, so main's own
branding-drift:check has been red since both landed.
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. manual-review Gittensor contributor context

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant