Skip to content

Commit 3de6e1b

Browse files
authored
refactor(packages): rename all npm workspace packages to the @Loopover 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).
1 parent bbcb787 commit 3de6e1b

279 files changed

Lines changed: 548 additions & 569 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.claude/skills/contributing-to-loopover/SKILL.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ approved, then confirm it's green.
9696
**Install the loopover MCP** — your pre-submit oracle that predicts the gate before you push:
9797

9898
```sh
99-
npm install -g @jsonbored/gittensory-mcp@latest
99+
npm install -g @loopover/mcp@latest
100100
gittensory-mcp login # GitHub device flow (for the auth'd preflight tools)
101101
gittensory-mcp init-client --print codex # prints TOML for ~/.codex/config.toml ([mcp_servers.gittensory])
102102
gittensory-mcp init-client --print claude # or --print cursor — prints the correct config per tool
@@ -206,7 +206,7 @@ Run the matching command(s) and **commit the regenerated file(s)** — CI fails
206206
| Added a raw-SQL migration | (none — just author it) | next **contiguous** `migrations/NNNN_snake.sql` |
207207
| `src/selfhost/**` (or a few other scanned files — see `scripts/gen-selfhost-env-reference.mjs`'s `DEFAULT_SOURCE_ROOTS`) adding/removing an `env.SOMETHING` read | `npm run selfhost:env-reference` | `apps/gittensory-ui/src/lib/selfhost-env-reference.ts` — the doc cites the file only (not `file:line`, deliberately, so an unrelated line shift elsewhere in the file never makes this go stale) |
208208
| CLI command surface | `npm run command-reference` | the generated command-reference doc |
209-
| UI files (`apps/gittensory-ui/**`) | `npm --workspace @jsonbored/gittensory-ui run format` | formatted files |
209+
| UI files (`apps/gittensory-ui/**`) | `npm --workspace @loopover/ui run format` | formatted files |
210210

211211
Migrations must use the **next free number** (contiguous, no gaps, no reuse) and match
212212
`NNNN_snake_case.sql`; `db:migrations:check` enforces it.
@@ -224,14 +224,14 @@ npm audit --audit-level=moderate # the dependency-review job's local eq
224224
`npm run test:ci` runs, and must pass, **all of**: `actionlint`, `db:migrations:check`,
225225
`db:schema-drift:check`, `selfhost:env-reference:check`, `selfhost:validate-observability`,
226226
`cf-typegen:check`, `typecheck`, `test:coverage`, `test:engine-parity`, `test:live-gate-parity`, `test:driver-parity`, the
227-
`@jsonbored/gittensory-engine` workspace's own test run, `test:workers`, `build:mcp`, `test:mcp-pack`,
227+
`@loopover/engine` workspace's own test run, `test:workers`, `build:mcp`, `test:mcp-pack`,
228228
`build:miner`, `test:miner-pack`, `rees:test`, `ui:openapi:check`, `ui:openapi:settings-parity`,
229229
`ui:version-audit`, `docs:drift-check`, `manifest:drift-check`, `engine-parity:drift-check`,
230230
`command-reference:check`, `ui:lint`, `ui:typecheck`, `ui:test`, `ui:build`. If any step fails, fix it
231231
and re-run — do not push a red tree. (Full per-check table in `reference.md`; check `package.json`'s
232232
own `test:ci` script if this list and that script ever disagree — the script is the source of truth.)
233233

234-
If `ui:lint` fails on formatting, run `npm --workspace @jsonbored/gittensory-ui run format`. If
234+
If `ui:lint` fails on formatting, run `npm --workspace @loopover/ui run format`. If
235235
`ui:openapi:check` fails, you forgot Phase 4's `ui:openapi`.
236236

237237
**Sync with `main` before you push if it moved** — a base conflict auto-closes a contributor PR:

.claude/skills/contributing-to-loopover/reference.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -59,12 +59,12 @@ these for a normal PR:**
5959
| Local command | Why it's not in the table above |
6060
|---|---|
6161
| `npm run test:engine-parity`, `npm run test:live-gate-parity`, `npm run test:driver-parity` | Plain `test/contract/*.test.ts` files — no dedicated CI job, but they DO run in CI as part of whichever `test (1/2)` shard happens to contain them (sharded `vitest run`). |
62-
| `npm run test --workspace @jsonbored/gittensory-engine` | The engine package's own `node --test` suite. **Not run by `ci.yml` on a PR at all** — only by `.github/workflows/publish-engine.yml` at release time. A regression here is invisible to Codecov and to every PR-gating CI check; `test:ci` locally is the only pre-merge signal. |
62+
| `npm run test --workspace @loopover/engine` | The engine package's own `node --test` suite. **Not run by `ci.yml` on a PR at all** — only by `.github/workflows/publish-engine.yml` at release time. A regression here is invisible to Codecov and to every PR-gating CI check; `test:ci` locally is the only pre-merge signal. |
6363
| `npm run manifest:drift-check`, `npm run engine-parity:drift-check` | Appear in `test:ci` only — not in `ci.yml` under any job. |
6464

6565
This is a real, previously-hit gap, not a hypothetical: a past PR shipped a genuine, undetected
6666
`codecov/patch`-adjacent regression in the engine package specifically because `test --workspace
67-
@jsonbored/gittensory-engine` isn't part of `ci.yml`. If your change touches
67+
@loopover/engine` isn't part of `ci.yml`. If your change touches
6868
`packages/gittensory-engine/**`, running `npm run test:ci` locally (not just watching the PR's CI
6969
checks go green) is the only way to know you didn't break it.
7070

@@ -138,12 +138,12 @@ PR-side signals that raise slop risk (band: clean 0 / low 1–24 / elevated 25
138138

139139
---
140140

141-
## 5. MCP pre-submit tools (`@jsonbored/gittensory-mcp`)
141+
## 5. MCP pre-submit tools (`@loopover/mcp`)
142142

143143
Install + configure (let the CLI print the right config for your tool — **Codex is TOML, not JSON**):
144144

145145
```sh
146-
npm install -g @jsonbored/gittensory-mcp@latest
146+
npm install -g @loopover/mcp@latest
147147
gittensory-mcp login # GitHub device flow
148148
gittensory-mcp init-client --print codex # → ~/.codex/config.toml ([mcp_servers.gittensory])
149149
gittensory-mcp init-client --print claude # or --print cursor (→ mcpServers JSON)
@@ -243,7 +243,7 @@ absence of forbidden terms.
243243
## 7. Style, lint, naming
244244

245245
- **Prettier (UI):** printWidth 100, double quotes, semicolons, `trailingComma: all`. Fix:
246-
`npm --workspace @jsonbored/gittensory-ui run format`. (`routeTree.gen.ts` and lockfiles are ignored.)
246+
`npm --workspace @loopover/ui run format`. (`routeTree.gen.ts` and lockfiles are ignored.)
247247
- **ESLint (UI):** `react-hooks/recommended`; `react-refresh/only-export-components` (non-component
248248
exports must move to a `*-model.ts`); **design-token** `no-restricted-syntax` in
249249
`src/components/site/**` + `src/routes/**` (use `text-token-*`, `leading-token-*`, `rounded-token`,

.github/workflows/ci.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ jobs:
107107
# subprocess via StdioClientTransport -- none of the 6 ever load root src/ in-process. This mirrors
108108
# the `mcp` filter's own established trust boundary above (a self-contained package build). They are
109109
# NOT self-contained w.r.t. packages/gittensory-engine/**, though: gittensory-mcp now has a real
110-
# dependency on @jsonbored/gittensory-engine (isTestFile/isCodeFile), which the bin subprocess and
110+
# dependency on @loopover/engine (isTestFile/isCodeFile), which the bin subprocess and
111111
# local-branch.js load at runtime -- hence that path below, alongside the mcp package's own.
112112
# test/unit/mcp-output-schemas.test.ts is DELIBERATELY NOT in this filter: unlike the other 6, it
113113
# imports src/mcp/server.ts in-process, and server.ts alone directly imports ~40 other src/ modules
@@ -276,7 +276,7 @@ jobs:
276276
run: node scripts/validate-observability-configs.mjs
277277
# Runs ahead of Typecheck AND "Test with coverage" (#ci-engine-build-order): src/mcp/find-opportunities.ts
278278
# (root backend, since #2281/#3985) imports packages/gittensory-miner/lib/opportunity-fanout.js --
279-
# committed, pre-built JS -- which itself imports @jsonbored/gittensory-engine. That package's dist/ is
279+
# committed, pre-built JS -- which itself imports @loopover/engine. That package's dist/ is
280280
# gitignored and only exists after this build step, so ANY backend typecheck or test run needs it built
281281
# first, not just a PR that touches packages/gittensory-engine/** directly (this step's original, too-
282282
# narrow trigger). Originally ran after coverage (broke test:coverage on PRs that didn't touch the
@@ -285,7 +285,7 @@ jobs:
285285
# of both.
286286
- name: Build engine package
287287
if: ${{ github.event_name == 'push' || needs.changes.outputs.backend == 'true' || needs.changes.outputs.engine == 'true' || needs.changes.outputs.ui == 'true' }}
288-
run: npm run build --workspace @jsonbored/gittensory-engine
288+
run: npm run build --workspace @loopover/engine
289289
# .tsbuildinfo mutates every run (tsc's own incremental state), unlike node_modules above which is
290290
# immutable per lockfile -- so this needs the run_id-suffixed-key + restore-keys-prefix pattern (always
291291
# creates a new cache entry to save into, restore falls back to the most recent matching prefix) rather
@@ -312,7 +312,7 @@ jobs:
312312
- name: Worker runtime tests
313313
if: ${{ github.event_name == 'push' || needs.changes.outputs.backend == 'true' }}
314314
run: npm run test:workers
315-
# gittensory-mcp now depends on @jsonbored/gittensory-engine for real (isTestFile/isCodeFile), so a
315+
# gittensory-mcp now depends on @loopover/engine for real (isTestFile/isCodeFile), so a
316316
# PR that only touches packages/gittensory-engine/** must also rebuild + pack-check the mcp package,
317317
# not just the mcp filter's own (deliberately narrower) path list.
318318
- name: Build MCP
@@ -397,7 +397,7 @@ jobs:
397397
# steps directly instead of the aggregate script, skipping that redundant regen.
398398
- name: UI build
399399
if: ${{ github.event_name == 'push' || needs.changes.outputs.ui == 'true' }}
400-
run: npm run extension:build && npm run miner-extension:build && npm --workspace @jsonbored/gittensory-ui run build
400+
run: npm run extension:build && npm run miner-extension:build && npm --workspace @loopover/ui run build
401401

402402
# The full-suite coverage run, sharded (#ci-shard-coverage). This alone was ~9-10 of the ~11 minutes a
403403
# typical backend PR spent in validate-code, because vitest schedules whole test FILES atomically to
@@ -471,7 +471,7 @@ jobs:
471471
# Any backend test run needs the engine package's dist/ built first -- see the identical step's
472472
# comment in validate-code (#ci-engine-build-order) for why.
473473
- name: Build engine package
474-
run: npm run build --workspace @jsonbored/gittensory-engine
474+
run: npm run build --workspace @loopover/engine
475475
- name: Prepare test reports dir
476476
run: mkdir -p reports/junit
477477
- name: Test with coverage (shard ${{ matrix.shard }}/6)

.github/workflows/npm-publish.yml

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -78,12 +78,12 @@ jobs:
7878
run: npm ci
7979

8080
# packages/gittensory-mcp's own test suite pulls in src/mcp/find-opportunities.ts transitively
81-
# (via packages/gittensory-miner/lib/opportunity-fanout.js), which imports @jsonbored/gittensory-engine.
82-
# That package's dist/ is gitignored (see ci.yml's own build --workspace @jsonbored/gittensory-engine
81+
# (via packages/gittensory-miner/lib/opportunity-fanout.js), which imports @loopover/engine.
82+
# That package's dist/ is gitignored (see ci.yml's own build --workspace @loopover/engine
8383
# step for the same reason) -- without building it first, the MCP release validation gate below
84-
# fails with "Failed to resolve entry for package @jsonbored/gittensory-engine" on every run.
84+
# fails with "Failed to resolve entry for package @loopover/engine" on every run.
8585
- name: Build gittensory-engine
86-
run: npm run build --workspace @jsonbored/gittensory-engine
86+
run: npm run build --workspace @loopover/engine
8787

8888
- name: MCP release validation gate
8989
run: npm run test:release:mcp
@@ -93,7 +93,7 @@ jobs:
9393
- name: Pack and smoke-test the tarball
9494
run: |
9595
set -euo pipefail
96-
PACK_JSON="$(npm pack --workspace @jsonbored/gittensory-mcp --pack-destination "$RUNNER_TEMP" --json)"
96+
PACK_JSON="$(npm pack --workspace @loopover/mcp --pack-destination "$RUNNER_TEMP" --json)"
9797
TARBALL="$(node -e 'const fs=require("fs"); const input=fs.readFileSync(0,"utf8"); process.stdout.write(JSON.parse(input)[0].filename)' <<< "$PACK_JSON")"
9898
TARBALL_PATH="$RUNNER_TEMP/$TARBALL"
9999
UNEXPECTED_FILES="$(tar -tzf "$TARBALL_PATH" | grep -Ev '^(package/(bin|lib|scripts)/.+|package/(package.json|README.md|CHANGELOG.md|LICENSE))$' || true)"
@@ -158,7 +158,7 @@ jobs:
158158
echo "Creating tag $TAG at HEAD ($HEAD_SHA)."
159159
git config user.name "github-actions[bot]"
160160
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
161-
git tag -a "$TAG" -m "@jsonbored/gittensory-mcp v${VERSION}"
161+
git tag -a "$TAG" -m "@loopover/mcp v${VERSION}"
162162
git remote set-url origin "https://github.com/${GITHUB_REPOSITORY}.git"
163163
gh auth setup-git
164164
git push origin "$TAG"
@@ -204,16 +204,16 @@ jobs:
204204
set -euo pipefail
205205
NOTES_FILE="$(mktemp)"
206206
cat > "$NOTES_FILE" <<EOF
207-
Published [@jsonbored/gittensory-mcp v${RELEASE_VERSION}](https://www.npmjs.com/package/@jsonbored/gittensory-mcp/v/${RELEASE_VERSION}) to npm with provenance.
207+
Published [@loopover/mcp v${RELEASE_VERSION}](https://www.npmjs.com/package/@loopover/mcp/v/${RELEASE_VERSION}) to npm with provenance.
208208
209209
Install:
210210
211211
\`\`\`sh
212-
npm install -g @jsonbored/gittensory-mcp@${RELEASE_VERSION}
212+
npm install -g @loopover/mcp@${RELEASE_VERSION}
213213
\`\`\`
214214
EOF
215215
if gh release view "$RELEASE_TAG" --repo "$GITHUB_REPOSITORY" >/dev/null 2>&1; then
216-
gh release edit "$RELEASE_TAG" --repo "$GITHUB_REPOSITORY" --title "@jsonbored/gittensory-mcp v${RELEASE_VERSION}" --notes-file "$NOTES_FILE"
216+
gh release edit "$RELEASE_TAG" --repo "$GITHUB_REPOSITORY" --title "@loopover/mcp v${RELEASE_VERSION}" --notes-file "$NOTES_FILE"
217217
else
218-
gh release create "$RELEASE_TAG" --repo "$GITHUB_REPOSITORY" --title "@jsonbored/gittensory-mcp v${RELEASE_VERSION}" --notes-file "$NOTES_FILE" --verify-tag
218+
gh release create "$RELEASE_TAG" --repo "$GITHUB_REPOSITORY" --title "@loopover/mcp v${RELEASE_VERSION}" --notes-file "$NOTES_FILE" --verify-tag
219219
fi

.github/workflows/publish-engine.yml

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ name: Publish Engine Package
66
# released_by_release_please left false) is the human override path and self-tags HEAD from
77
# packages/gittensory-engine/package.json's version.
88
#
9-
# NOTE: this workflow cannot run successfully until @jsonbored/gittensory-engine has been bootstrap
9+
# NOTE: this workflow cannot run successfully until @loopover/engine has been bootstrap
1010
# -published to npm once from a maintainer's own authenticated `npm login` session (npm's trusted
1111
# publishing/OIDC cannot create a brand-new package -- the package must already exist before a
1212
# Trusted Publisher can be configured in npmjs.com's package settings). Until that one-time manual
@@ -90,14 +90,14 @@ jobs:
9090
run: npm ci
9191

9292
- name: Engine test suite
93-
run: npm run test --workspace @jsonbored/gittensory-engine
93+
run: npm run test --workspace @loopover/engine
9494

9595
# Build + pack happen in THIS unprivileged job (no id-token). The privileged publish job below
9696
# never runs npm install/build, so a compromised build dependency can't reach the OIDC token.
9797
- name: Pack and smoke-test the tarball
9898
run: |
9999
set -euo pipefail
100-
PACK_JSON="$(npm pack --workspace @jsonbored/gittensory-engine --pack-destination "$RUNNER_TEMP" --json)"
100+
PACK_JSON="$(npm pack --workspace @loopover/engine --pack-destination "$RUNNER_TEMP" --json)"
101101
TARBALL="$(node -e 'const fs=require("fs"); const input=fs.readFileSync(0,"utf8"); process.stdout.write(JSON.parse(input)[0].filename)' <<< "$PACK_JSON")"
102102
TARBALL_PATH="$RUNNER_TEMP/$TARBALL"
103103
UNEXPECTED_FILES="$(tar -tzf "$TARBALL_PATH" | grep -Ev '^(package/dist/.+|package/(package.json|README.md|CHANGELOG.md|LICENSE))$' || true)"
@@ -114,8 +114,8 @@ jobs:
114114
npm --prefix "$TMP" init -y >/dev/null
115115
npm --prefix "$TMP" install "$TARBALL_PATH" >/dev/null
116116
node --input-type=module -e "
117-
import { ENGINE_VERSION } from '$TMP/node_modules/@jsonbored/gittensory-engine/dist/index.js';
118-
import { isTestPath, isCodeFile } from '$TMP/node_modules/@jsonbored/gittensory-engine/dist/signals/test-evidence.js';
117+
import { ENGINE_VERSION } from '$TMP/node_modules/@loopover/engine/dist/index.js';
118+
import { isTestPath, isCodeFile } from '$TMP/node_modules/@loopover/engine/dist/signals/test-evidence.js';
119119
if (typeof ENGINE_VERSION !== 'string' || !ENGINE_VERSION) throw new Error('ENGINE_VERSION smoke test failed');
120120
if (isTestPath('test/foo.test.ts') !== true) throw new Error('isTestPath smoke test failed');
121121
if (isCodeFile('src/foo.ts') !== true) throw new Error('isCodeFile smoke test failed');
@@ -178,7 +178,7 @@ jobs:
178178
echo "Creating tag $TAG at HEAD ($HEAD_SHA)."
179179
git config user.name "github-actions[bot]"
180180
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
181-
git tag -a "$TAG" -m "@jsonbored/gittensory-engine v${VERSION}"
181+
git tag -a "$TAG" -m "@loopover/engine v${VERSION}"
182182
git remote set-url origin "https://github.com/${GITHUB_REPOSITORY}.git"
183183
gh auth setup-git
184184
git push origin "$TAG"
@@ -224,16 +224,16 @@ jobs:
224224
set -euo pipefail
225225
NOTES_FILE="$(mktemp)"
226226
cat > "$NOTES_FILE" <<EOF
227-
Published [@jsonbored/gittensory-engine v${RELEASE_VERSION}](https://www.npmjs.com/package/@jsonbored/gittensory-engine/v/${RELEASE_VERSION}) to npm with provenance.
227+
Published [@loopover/engine v${RELEASE_VERSION}](https://www.npmjs.com/package/@loopover/engine/v/${RELEASE_VERSION}) to npm with provenance.
228228
229229
Install:
230230
231231
\`\`\`sh
232-
npm install @jsonbored/gittensory-engine@${RELEASE_VERSION}
232+
npm install @loopover/engine@${RELEASE_VERSION}
233233
\`\`\`
234234
EOF
235235
if gh release view "$RELEASE_TAG" --repo "$GITHUB_REPOSITORY" >/dev/null 2>&1; then
236-
gh release edit "$RELEASE_TAG" --repo "$GITHUB_REPOSITORY" --title "@jsonbored/gittensory-engine v${RELEASE_VERSION}" --notes-file "$NOTES_FILE"
236+
gh release edit "$RELEASE_TAG" --repo "$GITHUB_REPOSITORY" --title "@loopover/engine v${RELEASE_VERSION}" --notes-file "$NOTES_FILE"
237237
else
238-
gh release create "$RELEASE_TAG" --repo "$GITHUB_REPOSITORY" --title "@jsonbored/gittensory-engine v${RELEASE_VERSION}" --notes-file "$NOTES_FILE" --verify-tag
238+
gh release create "$RELEASE_TAG" --repo "$GITHUB_REPOSITORY" --title "@loopover/engine v${RELEASE_VERSION}" --notes-file "$NOTES_FILE" --verify-tag
239239
fi

.github/workflows/release-selfhost.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -128,12 +128,12 @@ jobs:
128128
run: npm ci --ignore-scripts
129129

130130
# #ci-engine-build-order (release pipeline): --all bundles EVERYTHING self-contained, including
131-
# packages/gittensory-miner/lib/*.js (committed, pre-built) which imports @jsonbored/gittensory-engine.
131+
# packages/gittensory-miner/lib/*.js (committed, pre-built) which imports @loopover/engine.
132132
# That package's dist/ is gitignored and only exists after this build step -- the regular CI smoke
133133
# test's narrower (non --all) build never hits this import chain, so it never caught the gap that
134134
# ci.yml's own validate-code job hit for ordinary backend PRs (fixed there separately).
135135
- name: Build engine package
136-
run: npm run build --workspace @jsonbored/gittensory-engine
136+
run: npm run build --workspace @loopover/engine
137137

138138
- name: Build self-host bundle for release
139139
run: node scripts/build-selfhost.mjs --all

0 commit comments

Comments
 (0)