Skip to content

feat(build)!: Phase 5 - full-cutover rename all gittensory-* directories to loopover-* - #5743

Merged
JSONbored merged 2 commits into
mainfrom
rebrand-phase5-directories
Jul 14, 2026
Merged

feat(build)!: Phase 5 - full-cutover rename all gittensory-* directories to loopover-*#5743
JSONbored merged 2 commits into
mainfrom
rebrand-phase5-directories

Conversation

@JSONbored

Copy link
Copy Markdown
Owner

Summary

Phase 5 of the gittensory -> loopover rebrand epic (#5705): renames every gittensory--prefixed apps//packages/ directory and coordinates every build/CI/release-please reference to them.

  • git mv: apps/gittensory-ui -> apps/loopover-ui, apps/gittensory-miner-ui -> apps/loopover-miner-ui, apps/gittensory-extension -> apps/loopover-extension, apps/gittensory-miner-extension -> apps/loopover-miner-extension, packages/gittensory-engine -> packages/loopover-engine, packages/gittensory-miner -> packages/loopover-miner, packages/gittensory-mcp -> packages/loopover-mcp, packages/gittensory-ui-kit -> packages/loopover-ui-kit.
  • The two browser-extension packages hadn't been renamed at the npm-package-name level either (still @jsonbored/gittensory-*): renamed to @loopover/extension and @loopover/miner-extension, matching the other 6 packages' already-completed @loopover/* scope.
  • ~480 files: every import path, tsconfig/vitest coverage-include glob, release-please-config.json/.release-please-manifest.json entry, .github/workflows/*.yml path filter + artifact/tarball name, Dockerfile COPY path, Tailwind @source directive, .gitignore/.dockerignore entry, docs cross-reference, and k8s/README.md reference updated to match.
  • Regenerated package-lock.json.
  • Fixed 3 real bugs the directory move surfaced:
    • scripts/check-engine-parity.ts's isThinEngineReExportShim() hardcoded a gittensory-engine regex, so it stopped recognizing every thin re-export shim once their export * path changed.
    • packages/loopover-miner/scripts/generate-env-reference.mjs hardcoded both a packages/gittensory-miner/ strip-prefix regex and a stale doc title.
    • packages/loopover-miner/Dockerfile's COPY --from=build source paths still pointed at the pre-rename directories, which would have broken every fleet-mode image build.
  • Reverted 2 test assertions in routes-focus-manifest.test.ts back to the old "apps/gittensory-ui/" string: that test fetches this repo's own .loopover.yml live from github.com for the JSONbored/gittensory self-repo bootstrap path, which still serves pre-merge content until this PR lands.

Advances #5705

BREAKING CHANGE: every gittensory-prefixed directory under apps/ and packages/ is now loopover-prefixed, and the two extension packages' npm names changed from @jsonbored/gittensory-* to @loopover/*. No dual-path/alias, per the epic's full-cutover mandate.

Test plan

  • npx vitest run — 835 passed | 2 skipped, 16229 tests passed | 12 skipped, 0 failed
  • npm run docs:drift-check
  • npm run manifest:drift-check
  • npx tsx scripts/write-ui-openapi.ts --check
  • npm run typecheck (after npm --workspace @loopover/engine run build)

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Jul 14, 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 Updated (UTC)
❌ Deployment failed
View logs
loopover-ui a8e360d Jul 14 2026, 11:01 AM

@JSONbored
JSONbored force-pushed the rebrand-phase5-directories branch from 8ce3625 to d9c957e Compare July 14, 2026 10:51
@codecov

codecov Bot commented Jul 14, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 95.07%. Comparing base (4bd2c06) to head (a8e360d).
✅ All tests successful. No failed tests found.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #5743   +/-   ##
=======================================
  Coverage   95.07%   95.07%           
=======================================
  Files         581      581           
  Lines       46181    46181           
  Branches    14811    14811           
=======================================
  Hits        43905    43905           
  Misses       1516     1516           
  Partials      760      760           
Flag Coverage Δ
shard-1 43.96% <ø> (ø)
shard-2 35.71% <ø> (ø)
shard-3 32.27% <ø> (ø)
shard-4 33.56% <ø> (ø)
shard-5 31.18% <ø> (ø)
shard-6 44.64% <ø> (+<0.01%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.
see 464 files with indirect coverage changes

🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

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

loopover-orb Bot commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

Caution

🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥

🛑 LoopOver review result - fixes required

Review updated: 2026-07-14 11:09:11 UTC

1000 files · 1 AI reviewer · 3 blockers · readiness 93/100 · CI failing · unstable

🛑 Suggested Action - Manual Review

Review summary
This is a large, mostly mechanical git-mv + string-substitution PR that renames all gittensory-* app/package directories to loopover-* and updates every downstream reference (CI workflows, release-please config/manifest, Dockerfile COPY paths, docs, scripts, k8s manifests). Every hunk I can inspect shows a clean 1:1 old-path -> new-path substitution with matching comments/strings, and the three called-out logic fixes (isThinEngineReExportShim regex, generate-env-reference.mjs prefix regex, Dockerfile COPY --from paths) are visible in the diff and correctly updated to match the new directory names. The description mentions reverting 2 test assertions in routes-focus-manifest.test.ts back to an old 'apps/git...' string, but that file/hunk isn't in the visible diff, so I can't verify whether that revert is intentional (e.g. testing a legacy compat shim) or leftover stale-path breakage.

Nits — 5 non-blocking
  • package.json/.gittensory-miner.env.example and systemd unit comments still reference the old 'gittensory-miner' name/filename even though this is described as the full-cutover phase — confirm that's deliberately out of scope (not under apps/ or packages/) rather than a missed spot.
  • The PR description trails off mid-sentence describing a revert of 2 assertions in routes-focus-manifest.test.ts back to an old 'apps/git...' path; since that file isn't in the visible diff, please clarify in the PR body why a full-cutover rename intentionally keeps an old path string in a test rather than updating it.
  • This PR is described as tied to epic Epic: complete the gittensory -> loopover rebrand (full cutover, no dual-support) #5705 (Phase 5) rather than a single closable issue — confirm Epic: complete the gittensory -> loopover rebrand (full cutover, no dual-support) #5705 (or a specific sub-issue) is the eligible open issue this PR is meant to close/link, per the repo's issue-linkage requirement.
  • Given the ~480-file / 1000-file scope, consider whether CI's `db:migrations:check`-style consistency scripts (e.g. `check-engine-parity.ts`, `check-docs-drift.mjs`) were actually run locally post-rename rather than relying solely on grep-based mechanical substitution, since a single missed reference (e.g. in a file outside this truncated diff) would only surface as a runtime path-resolution failure, not a type error.
  • Double check the `@​jsonbored/gittensory-extension` → `@​loopover/extension` npm-package-name rename in package.json didn't leave any workspace `name` field in the renamed package's own package.json out of sync (not shown in this diff excerpt).

Why this is blocked

  • No linked issue detected — If this PR is intended to solve an issue, link it explicitly in the PR body.
  • Maintainer requires a linked issue — Link the relevant issue (for example Closes #123) before opening the PR.
  • Patch-less file(s) could not be fully scanned for secrets (778) — Ensure patch-less files are within scan limits or split the change so secrets can be verified.
📋 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.

2. Maintainer requires a linked issue — Link the relevant issue (for example `Closes #123`) before opening the PR.

3. Patch-less file(s) could not be fully scanned for secrets (778) — Ensure patch-less files are within scan limits or split the change so secrets can be verified.

CI checks failing

  • Workers Builds: loopover-ui — Workers Builds: loopover-ui
Signal Result Evidence
Code review ❌ 3 blockers 1 reviewer
Linked issue ⚠️ Missing No linked issue or no-issue rationale found.
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: 45 registered-repo PR(s), 37 merged, 310 issue(s).
Contributor context ✅ Confirmed Gittensor contributor JSONbored; Gittensor profile; 45 PR(s), 310 issue(s).
Gate result ❌ Blocking Repo-configured hard blocker found.
Improvement ✅ Minor risk: clean · value: minor — Code changes are accompanied by test evidence.
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: not available
  • Official Gittensor activity: 45 PR(s), 310 issue(s).
  • PR-specific overlap: none found.
Contributor next steps
  • Treat this as maintainer-lane context rather than normal contributor-lane activity.
  • Explain no-issue PR.
  • Link the issue being solved, or explicitly explain why this is a no-issue PR.
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.
[BETA] Chat with Gittensory

Ask 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.

  • @gittensory ask &lt;question&gt; answers contribution-quality Q&A with source citations and freshness.
  • @gittensory chat &lt;question&gt; answers in natural prose from cached decision-pack facts via local inference (maintainer/collaborator; read-only).
  • A plain-language @gittensory mention with a real question is routed to the closest matching read-only command automatically -- no exact syntax required.

Full command reference: https://gittensory.aethereal.dev/docs/gittensory-commands

Visual preview
Route Viewport Before (production) After (this PR's preview) Diff
/ desktop before / after /
/ mobile before / (mobile) after / (mobile)
/ledgers desktop before /ledgers after /ledgers
/ledgers mobile before /ledgers (mobile) after /ledgers (mobile)

Click any thumbnail to open the full-size screenshot. Before = production · After = this PR's preview deploy.

🟩 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 14, 2026
…ies to loopover-*

Phase 5 of the gittensory -> loopover rebrand epic (#5705): renames every
gittensory-prefixed apps/ and packages/ directory and coordinates every
build/CI/release-please reference to them.

- git mv: apps/gittensory-ui -> apps/loopover-ui, apps/gittensory-miner-ui ->
  apps/loopover-miner-ui, apps/gittensory-extension -> apps/loopover-extension,
  apps/gittensory-miner-extension -> apps/loopover-miner-extension,
  packages/gittensory-engine -> packages/loopover-engine, packages/gittensory-miner
  -> packages/loopover-miner, packages/gittensory-mcp -> packages/loopover-mcp,
  packages/gittensory-ui-kit -> packages/loopover-ui-kit.
- The two browser-extension packages hadn't been renamed at the npm-package-name
  level either (still @jsonbored/gittensory-*): renamed to @loopover/extension
  and @loopover/miner-extension, matching the other 6 packages' already-completed
  @loopover/* scope.
- ~480 files: every import path, tsconfig/vitest coverage-include glob,
  release-please-config.json/.release-please-manifest.json entry, .github/workflows/*.yml
  path filter + artifact/tarball name, Dockerfile COPY path, Tailwind @source
  directive, .gitignore/.dockerignore entry, docs cross-reference, and k8s/README.md
  reference updated to match.
- Regenerated package-lock.json (npm install didn't fully rewrite workspace paths
  until package-lock.json was deleted and reinstalled from scratch).
- Fixed 3 real bugs the directory move surfaced, none of them cosmetic:
  - scripts/check-engine-parity.ts's isThinEngineReExportShim() hardcoded a
    `gittensory-engine` regex, so it stopped recognizing every thin re-export
    shim the moment their `export * from "../../packages/loopover-engine/..."`
    path changed underneath it.
  - packages/loopover-miner/scripts/generate-env-reference.mjs hardcoded both
    a `packages/gittensory-miner/` strip-prefix regex and a stale doc title.
  - packages/loopover-miner/Dockerfile's COPY --from=build source paths still
    pointed at the pre-rename packages/gittensory-{miner,engine} directories,
    which would have broken every fleet-mode image build.
- Reverted 2 test assertions in routes-focus-manifest.test.ts back to the old
  "apps/gittensory-ui/" string: that test fetches this repo's OWN .loopover.yml
  live from github.com for the "JSONbored/gittensory" self-repo bootstrap path,
  which still serves the pre-merge content until this PR lands -- renaming the
  assertion now would just trade a today-failure for a post-merge one.

Advances #5705

BREAKING CHANGE: every gittensory-prefixed directory under apps/ and packages/
is now loopover-prefixed, and the two extension packages' npm names changed
from @jsonbored/gittensory-* to @loopover/*. No dual-path/alias, per the
epic's full-cutover mandate.

- npx vitest run -- 835 passed | 2 skipped, 16229 tests passed | 12 skipped, 0 failed
- npm run docs:drift-check
- npm run manifest:drift-check
- npx tsx scripts/write-ui-openapi.ts --check
- npm run typecheck (after npm --workspace @loopover/engine run build)
…package-lock.json

The prior rm+reinstall regeneration ran on macOS and dropped Linux-platform
optional-dependency entries for @rolldown/binding-linux-x64-gnu (and likely
others) -- a known npm bug (npm/cli#4828) where regenerating a lockfile from
scratch on one platform can silently omit other platforms' optional entries.
CI's npm ci --ignore-scripts then had no native rolldown binding to fall back
to, breaking every job downstream of it (vitest.workers.config.ts's Startup
Error).

Fixed by taking origin/main's already-correct multi-platform lockfile as the
base and applying only the targeted workspace-path/package-name string
substitutions this phase needs, instead of a full npm-install regeneration.
@JSONbored
JSONbored force-pushed the rebrand-phase5-directories branch from d9c957e to a8e360d Compare July 14, 2026 11:01
@JSONbored
JSONbored merged commit 81e4ac3 into main Jul 14, 2026
19 of 20 checks passed
@JSONbored
JSONbored deleted the rebrand-phase5-directories branch July 14, 2026 11:09
JSONbored added a commit that referenced this pull request Jul 14, 2026
…3.0.0 cut

- packages/loopover-miner/expected-engine.version: same recurring drift as the
  v2.0.0/v2.0.1 cuts, bumped to 3.0.0.
- packages/loopover-miner/docs/env-reference.md: the Phase 5 directory-rename
  commit (#5743) missed regenerating this one doc's title.
- test/unit/routes-focus-manifest.test.ts: hardcoded the pre-rename
  apps/gittensory-ui/ path in two wantedPaths assertions; the real
  .loopover.yml already correctly says apps/loopover-ui/.
- packages/loopover-miner/package.json: tightened @loopover/engine from
  ^2.0.0 to ^3.0.0. On this branch specifically, engine's own package.json is
  already 3.0.0 but miner's declared range isn't (that update rides on
  miner's own release), so npm resolves a stale published 2.0.0 as a
  non-hoisted nested copy for miner -- which the doctor engine-version-skew
  check (and 3 real test files depending on it) correctly flags as broken.
  Same judgment call as #5729: miner's own source doesn't touch anything
  engine 3.0.0 removed (the Phase 4/5 breaking changes are CLI binary/tool
  names and directory paths, not engine's exported JS API), so tightening the
  range here is safe. Also updates the 2 tests that assert the literal
  fallback range string.
- apps/loopover-ui/src/routeTree.gen.ts: TanStack Router's own regeneration,
  unrelated to the above -- included as-is since it's a generated file now
  back in sync with the real (still-unrenamed) route source file.
JSONbored added a commit that referenced this pull request Jul 14, 2026
* chore(release): cut engine v3.0.0

* chore(release): sync package-lock.json

* fix: sync generated artifacts and cross-package refs for the engine v3.0.0 cut

- packages/loopover-miner/expected-engine.version: same recurring drift as the
  v2.0.0/v2.0.1 cuts, bumped to 3.0.0.
- packages/loopover-miner/docs/env-reference.md: the Phase 5 directory-rename
  commit (#5743) missed regenerating this one doc's title.
- test/unit/routes-focus-manifest.test.ts: hardcoded the pre-rename
  apps/gittensory-ui/ path in two wantedPaths assertions; the real
  .loopover.yml already correctly says apps/loopover-ui/.
- packages/loopover-miner/package.json: tightened @loopover/engine from
  ^2.0.0 to ^3.0.0. On this branch specifically, engine's own package.json is
  already 3.0.0 but miner's declared range isn't (that update rides on
  miner's own release), so npm resolves a stale published 2.0.0 as a
  non-hoisted nested copy for miner -- which the doctor engine-version-skew
  check (and 3 real test files depending on it) correctly flags as broken.
  Same judgment call as #5729: miner's own source doesn't touch anything
  engine 3.0.0 removed (the Phase 4/5 breaking changes are CLI binary/tool
  names and directory paths, not engine's exported JS API), so tightening the
  range here is safe. Also updates the 2 tests that assert the literal
  fallback range string.
- apps/loopover-ui/src/routeTree.gen.ts: TanStack Router's own regeneration,
  unrelated to the above -- included as-is since it's a generated file now
  back in sync with the real (still-unrenamed) route source file.

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: JSONbored <49853598+JSONbored@users.noreply.github.com>
JSONbored added a commit that referenced this pull request Jul 14, 2026
…st tests

Same fix as the engine/mcp/ui-kit release branches: the Phase 5 directory
rename (#5743) moved apps/gittensory-ui to apps/loopover-ui and updated the
real .loopover.yml, but this test's two wantedPaths assertions still
hardcoded the pre-rename path.
JSONbored added a commit that referenced this pull request Jul 14, 2026
…st tests

Same fix as the engine/miner/ui-kit release branches: the Phase 5 directory
rename (#5743) moved apps/gittensory-ui to apps/loopover-ui and updated the
real .loopover.yml, but this test's two wantedPaths assertions still
hardcoded the pre-rename path.
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