Require backgammon-types ^1.0.5, which is what the code already needs - #148
Merged
Merged
Conversation
The resignation-offer merge (50793d1) started using BackgammonResignationOffer but left the dependency range at ^1.0.5's predecessor. ^1.0.3 is satisfied by 1.0.3, so npm had no reason to move, and the committed lock stayed on a types version that does not export the member. The result is a build that only works where node_modules happens to have been refreshed by hand. CI runs npm ci, obeys the lock, installs 1.0.3, and fails to compile src/Game/cube.ts -- development has been red since 2026-07-27. The lock's core self-version also catches up 1.0.2 -> 1.0.3 to match package.json, a stale sync left by the 1.0.3 release commit.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
developmenthas been red since 2026-07-27. This is the whole of the fix.What broke
The resignation-offer merge (
50793d1) started usingBackgammonResignationOfferinsrc/Game/cube.tsbut left the dependency range at^1.0.3. That range is satisfied by 1.0.3, so npm had no reason to move off it, and the committed lock stayed on a types version that does not export the member.npm ciobeys the lock, installs 1.0.3, and the build dies with eight errors insrc/Game/cube.ts—TS2305: Module '@nodots/backgammon-types' has no exported member 'BackgammonResignationOffer', plus the knock-onTS2339s and twoTS2352s.It passes on a developer machine because
node_modulesthere has 1.0.5 from a manualnpm install. That divergence between the lock and the installed tree is what hid this for three days.Note that
npm install --package-lock-onlydoes not fix it — npm keeps a lock entry that still satisfies the declared range. The range itself had to change, and it should: the code genuinely requires 1.0.5.Also in the diff
The lock's own
@nodots/backgammon-coreversion catches up 1.0.2 → 1.0.3 to matchpackage.json— a stale sync left behind by the 1.0.3 release commit02e63ef. Nothing else in the lock moves.Testing
npm run buildclean.npx jest src/Game/__tests__— 126 pass, 4 skipped, 20 suites.Not verified locally: a from-scratch
npm ci. This PR's CI run is the real check, since reproducing the failure locally means discarding the workingnode_modules.Unresolved, and not addressed here
Three suites —
gnuPositionId,gnuPositionIdBar, and a sibling — crash with SIGABRT on this machine: the native gnubg addon aborts atEvalInitialisebecausegnubg.wdandgnubg.weightsare absent fromnode_modules. That reproduces ondevelopmenttoo and is unrelated to this change, but it means core's position-id tests are not running locally.The same stale-range pattern may exist in
backgammon-ai,backgammon-apiandbackgammon-client, which the resignation chain also touched. Unchecked.Blocks #147.