fix(engine): auto-maintain sibling-package engine dependency ranges - #4974
Conversation
|
Superagent didn't find any vulnerabilities or security issues in this PR. |
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
gittensory-ui | e589308 | Commit Preview URL Branch Preview URL |
Jul 11 2026, 06:20 AM |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #4974 +/- ##
=======================================
Coverage 94.27% 94.27%
=======================================
Files 451 451
Lines 38900 38900
Branches 14172 14172
=======================================
Hits 36674 36674
Misses 1574 1574
Partials 652 652
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-11 06:33:44 UTC
⏸️ Suggested Action - Manual Review
Review summary Nits — 5 non-blocking
Concerns raised — review before merging
Review context
Contributor next steps
Signal definitions
🟩 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.
|
gittensory-mcp and gittensory-miner both pinned "@jsonbored/gittensory-engine" to ">=0.1.0 <1.0.0" -- a range that excludes engine's own upcoming 1.0.0 release and breaks `npm ci` with a cryptic "Missing ... from lock file" error (PR #4686). This is a recurrence of the exact bug fixed by hand at the 0.1.0 -> 0.2.0 bump (#4179): any manually-chosen upper bound will eventually be exceeded by a future engine release. - gittensory-mcp: widen to "^0.2.0" (matches the current published engine version; release-please's node-workspace plugin now rewrites this automatically to track engine's version on every future bump, major or not, since it's a live externally-published package). - gittensory-miner: widen to "*" -- unlike gittensory-mcp, it has never been published (npm registry 404s on it today), so it has no real external consumer and no version-range supply-chain exposure; a same-monorepo workspace dependency is the idiomatic use for "*". Not onboarded into release-please management in this change since that's a separate release-process decision. - release-please-config.json: enable the node-workspace plugin (merge: false, matching the existing separate-pull-requests: true) so gittensory-mcp's dependency range is kept in sync automatically from here on, without ever needing a manual fix like this one again. Verified: npm ci resolves cleanly, full test suite passes, engine/mcp/ miner builds pass, mcp-pack/miner-pack smoke tests pass, all drift checks pass.
e589308 to
e05610e
Compare
Two independent bugs blocked this PR's own `npm ci`: 1. package-lock.json's own "packages/gittensory-ui-kit" entry was never updated past 0.1.0 (this branch only carries ui-kit's own version 0.1.0->0.2.0 bump in package.json/CHANGELOG, no lockfile sync commit landed) -- `npm ci` fails EUSAGE on the mismatch. 2. apps/gittensory-ui and apps/gittensory-miner-ui both declare "@loopover/ui-kit": "^0.1.0". Per semver, a caret range on a 0.x package means >=0.1.0 <0.2.0 -- it does NOT admit 0.2.0. Neither app is a release-please-managed package (release-please-config.json only lists the 4 packages/* components), so the node-workspace plugin never widens their ranges when ui-kit cuts a release. This is the same caret-ceiling bug class #4974 already fixed for engine's consumers, recurring here for ui-kit's. ui-kit 0.2.0 is a pure feature addition (no breaking changes per its own changelog), so widening both apps' range to >=0.1.0 <1.0.0 (safe for any future 0.x bump, not just this one) and regenerating the lockfile is a correct, low-risk fix -- unlike the engine-major-bump case, there's no breaking-change exposure to defer here.
* chore(release): cut ui-kit v0.2.0 * chore(release): sync package-lock.json * fix: widen ui-kit caret range past 0.1.x ceiling, regenerate lockfile Two independent bugs blocked this PR's own `npm ci`: 1. package-lock.json's own "packages/gittensory-ui-kit" entry was never updated past 0.1.0 (this branch only carries ui-kit's own version 0.1.0->0.2.0 bump in package.json/CHANGELOG, no lockfile sync commit landed) -- `npm ci` fails EUSAGE on the mismatch. 2. apps/gittensory-ui and apps/gittensory-miner-ui both declare "@loopover/ui-kit": "^0.1.0". Per semver, a caret range on a 0.x package means >=0.1.0 <0.2.0 -- it does NOT admit 0.2.0. Neither app is a release-please-managed package (release-please-config.json only lists the 4 packages/* components), so the node-workspace plugin never widens their ranges when ui-kit cuts a release. This is the same caret-ceiling bug class #4974 already fixed for engine's consumers, recurring here for ui-kit's. ui-kit 0.2.0 is a pure feature addition (no breaking changes per its own changelog), so widening both apps' range to >=0.1.0 <1.0.0 (safe for any future 0.x bump, not just this one) and regenerating the lockfile is a correct, low-risk fix -- unlike the engine-major-bump case, there's no breaking-change exposure to defer here. --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: JSONbored <49853598+JSONbored@users.noreply.github.com>
Summary
Engine's upcoming 1.0.0 release (chore(release): cut engine v1.0.0 #4686) falls outside that upper bound, breaking `npm ci` with
`Missing: @jsonbored/gittensory-engine@0.2.0 from lock file` -- the exact recurrence the `<1.0.0` cap
guaranteed, since it was itself a manual fix (fix(release): sync package-lock.json via script, not release-please extra-files #4179) for the same bug at the 0.1.0 -> 0.2.0 bump.
`node-workspace` plugin (`merge: false`, matching this repo's existing `separate-pull-requests: true`),
which automatically rewrites a workspace-local caret dependency's target version every time the package it
points at gets bumped -- so this exact fix should never need to be repeated by hand again for mcp, on any
future engine bump, major or otherwise.
published (`npm view` 404s), so it has no real external consumer today and no version-range supply-chain
exposure -- `""` is the standard idiom for a same-monorepo-only workspace dependency. Deliberately not
onboarding miner into release-please management here since that's a separate release-process decision;
flagging it as a follow-up worth a deliberate call, not bundling it into this fix.
Test plan