feat(packages): rename npm workspace packages to @jsonbored/loopover-*#5391
feat(packages): rename npm workspace packages to @jsonbored/loopover-*#5391JSONbored wants to merge 1 commit into
Conversation
Renames the "name" field (and brand-prose in "description"/"keywords") for all 6 npm workspace packages plus the standalone review-enrichment service: @jsonbored/gittensory-engine -> @jsonbored/loopover-engine @jsonbored/gittensory-mcp -> @jsonbored/loopover-mcp @jsonbored/gittensory-miner -> @jsonbored/loopover-miner @jsonbored/gittensory-ui-kit -> @jsonbored/loopover-ui-kit @jsonbored/gittensory-ui -> @jsonbored/loopover-ui @jsonbored/gittensory-miner-ui -> @jsonbored/loopover-miner-ui gittensory-review-enrichment -> loopover-review-enrichment Rewrites every internal import/require, cross-package workspace dependency, root package.json script (--workspace invocations), CSS @import, and Dockerfile RUN command referencing these package names by their scoped identifier, so `npm ci`, every workspace build/test/lint script, and both self-host Docker images keep working. Fixes two test-harness mock registry servers (mcp-cli-harness.ts, miner-cli-harness.ts) whose route matchers checked the OLD package-name substring in the request URL -- caught by running the full suite, not by the rename itself. Deliberately unchanged (each tracked by its own separate rebrand issue, not this one): - On-disk directory paths (packages/gittensory-*, apps/gittensory-*) and every CI workflow path filter that targets them. - The CLI "bin" command names (gittensory-mcp, gittensory-miner) -- the actual installed binary a user types is a separate concern from the npm package identity. - The public-facing "how to install this today" instructions (root README.md, the systemd miner-service example, and the 3 docs pages that already mention the npm install command) -- these still name the currently-real, currently-installable package. Updating them now would tell users to install a package that isn't published under the new name yet. - Actual `npm publish` / `npm deprecate` against the live registry -- those are separate, external actions for whoever runs the project's publish workflow, not part of this code change.
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
gittensory-ui | 7f1fc1e | Commit Preview URL Branch Preview URL |
Jul 12 2026, 04:18 PM |
|
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 #5391 +/- ##
=======================================
Coverage 94.43% 94.43%
=======================================
Files 551 551
Lines 44223 44223
Branches 14654 14654
=======================================
Hits 41764 41764
Misses 1784 1784
Partials 675 675
Flags with carried forward coverage won't be shown. Click here to find out more.
🚀 New features to boost your workflow:
|
|
Warning 🟨🟨🟨🟨🟨🟨🟨🟨🟨🟨🟨🟨 ⏸️ Gittensory review result - manual review recommendedReview updated: 2026-07-12 16:28:21 UTC
⏸️ Suggested Action - Manual Review
Review summary Blockers
Nits — 7 non-blocking
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 Visual preview
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 Gittensory, a quiet PR intelligence layer for OSS maintainers.
|
|
Closing rather than reworking in place — the target scope here was wrong. A new, dedicated npm org (`loopover`) exists for this rebrand, so the actual target names are `@loopover/engine`, `@loopover/mcp`, `@loopover/miner`, `@loopover/ui-kit`, `@loopover/ui`, `@loopover/ui-miner`, and `@loopover/rees` — not `@jsonbored/loopover-*` as done here. This needs real planning (confirming publish access on the new org, doing all seven packages together in one coordinated pass) rather than a quick find-replace on this branch. Deferred in favor of lower-risk milestone items that don't depend on new external infrastructure being set up first. Tracking continues on #4769 and #5328. |
…org (#5601) Advances #4769. Closes #5328. Renames all 7 workspace/standalone packages from @jsonbored/gittensory-* to their new @Loopover identities, established in the closing comment on the prior (wrong- scope) attempt at #5391: - @jsonbored/gittensory-engine -> @loopover/engine - @jsonbored/gittensory-mcp -> @loopover/mcp - @jsonbored/gittensory-miner -> @loopover/miner - @jsonbored/gittensory-ui-kit -> @loopover/ui-kit - @jsonbored/gittensory-ui -> @loopover/ui (private, no npm implications) - @jsonbored/gittensory-miner-ui -> @loopover/ui-miner (private, no npm implications) - gittensory-review-enrichment -> @loopover/rees (private, no npm implications) Only engine and mcp are actually live on npm today; miner, ui-kit, and rees have never been published. Updates every internal cross-reference: package.json name/dependency fields, real source imports (including packages/gittensory-miner/lib/*.js's ~30 hand-written, checked-in JS files with no build step), the release-please config, and the two existing publish workflows (npm-publish.yml, publish-engine.yml). Deliberately unchanged, matching the established precedent from the prior attempt's own accepted scope split: directory paths (stay packages/gittensory-*), CLI bin command names (stay gittensory-mcp, gittensory-miner, gittensory-miner-mcp), config filenames (.gittensory-miner.yml), and the review-enrichment/ directory itself. Those are tracked by separate issues (#4771 repo rename, #4776-class artifact renames) or not renamed at all by design. Several real runtime/CI-facing references used the old scope in forms a literal-string search doesn't catch, found by exhaustively re-auditing every original reference after the first pass: - packages/gittensory-mcp/bin/gittensory-mcp.js's own npm-registry update-check used a PERCENT-ENCODED literal (`@jsonbored%2fgittensory-mcp`, not `@jsonbored/gittensory-mcp`) -- this is the live, published CLI's actual version-check logic. - apps/gittensory-ui/src/lib/mcp-package.ts's MCP_PACKAGE_ENCODED_NAME constant had the same percent-encoded staleness -- this is the exact gap PR #5391's own review comment flagged as a blocker last time, now fixed for real. - scripts/check-ui-mcp-version-copy.mjs had a THIRD percent-encoded registry URL plus three more `@jsonbored\/gittensory-mcp` regex literals (escaped slashes, invisible to a plain-string grep) that silently would have stopped this CI-gating doc-staleness check from ever firing again. - test/unit/support/{mcp,miner}-cli-harness.ts's fixture HTTP servers matched incoming registry requests via a bare `"gittensory-mcp/latest"` / `"gittensory-miner/latest"` substring (no `@jsonbored/` prefix, so never touched by the scope rename) -- fixed to match the new `loopover%2Fmcp` / `loopover%2Fminer` encoded path instead. - test/unit/check-engine-parity-script.test.ts built its fixture node_modules path via `join(root, "node_modules", "@JSONbored", "gittensory-engine")` -- three separate join() arguments, not a contiguous string, so also invisible to a literal-string search. - Setting up NEW CI publish automation for miner/ui-kit/rees (they've never been published; this is new capability, not a rename -- kept as a separate follow-up to keep this already-large PR to just the rename itself). - The actual npm-side work: bootstrap-publishing each package once under its new name and configuring npmjs.com's Trusted Publisher per package. Neither is possible from a PR -- both require an authenticated npm session and the npmjs.com web UI. - Deprecating the old @jsonbored/gittensory-mcp and @jsonbored/gittensory-engine npm listings (npm-side action, not a code change). - [x] Full local gate (`npm run test:ci` + `npm audit --audit-level=moderate`) green. - [x] Exhaustive re-sweep for percent-encoded, regex-escaped, and split-string old-scope references beyond the initial literal-string pass -- found and fixed 6 additional real occurrences. - [x] Confirmed zero unintended collateral changes to the unrelated @jsonbored/gittensory-extension / @jsonbored/gittensory-miner-extension browser-extension packages (a real prefix-collision bug caught and reverted during development).
Summary
Renames the
namefield (and brand-prose indescription/keywords) for all 6 npm workspace packages plus the standalonereview-enrichmentservice:@jsonbored/gittensory-engine@jsonbored/loopover-engine@jsonbored/gittensory-mcp@jsonbored/loopover-mcp@jsonbored/gittensory-miner@jsonbored/loopover-miner@jsonbored/gittensory-ui-kit@jsonbored/loopover-ui-kit@jsonbored/gittensory-ui@jsonbored/loopover-ui@jsonbored/gittensory-miner-ui@jsonbored/loopover-miner-uigittensory-review-enrichmentloopover-review-enrichmentRewrites every internal import/require, cross-package workspace dependency, root
package.jsonscript (--workspaceinvocations), CSS@import, and DockerfileRUNcommand referencing these package names by their scoped identifier, sonpm ci, every workspace build/test/lint script, and both self-host Docker images keep working.npm installregenerated the lockfile; workspace symlinks resolve correctly under the new names.Deliberately unchanged (each tracked by its own separate rebrand issue)
packages/gittensory-*,apps/gittensory-*) and every CI workflow path filter targeting them -- renaming directories cascades into ~100+ CI path-filter references and is a separate decision.bincommand names (gittensory-mcp,gittensory-miner) -- the installed binary a user types is a separate concern from the npm package identity (arguably belongs with MCP tool rename #4775's MCP-tool-rename pattern, not silently changed here).npm publish/npm deprecateagainst the live registry -- separate, external actions for whoever runs the project's publish workflow, not part of this code change.Test plan
npm install-- lockfile regenerated, workspace symlinks (node_modules/@jsonbored/loopover-*) resolve to the correct (unchanged) directoriesnpm run typecheck,npm run ui:linttest:cigate green end-to-end (includingui:build)mcp-cli-harness.ts,miner-cli-harness.ts) whose route matchers checked the OLD package-name substring in the request URL, silently swallowing the update-check nudgeCloses #4769.
Closes #5328.