Skip to content

fix(cli): bump the nirium dependency past the deprecated ^0.15.0 pin - #109

Merged
Eras256 merged 1 commit into
mainfrom
fix/102-cli-version-pin
Oct 11, 2026
Merged

Eras256 merged 1 commit into
mainfrom
fix/102-cli-version-pin

Conversation

@Eras256

@Eras256 Eras256 commented Oct 9, 2026

Copy link
Copy Markdown
Collaborator

Closes #102.

The bug

packages/cli/package.json pinned "nirium": "^0.15.0". Under semver on
a 0.x package that range is >=0.15.0 <0.16.0 — it excludes 0.16.0.
Confirmed: semver.satisfies('0.16.0', '^0.15.0') is false. A fresh
npm install nirium-cli has been resolving nirium@0.15.0 since 0.16.0
shipped, silently missing everything in that release (the pre-sign
policy hook, the spend-cap error message, the initMpp() fix).

The fix

Bumped to ^0.16.0. package-lock.json regenerated for real — rm -rf node_modules && npm install from the changed package.json, not a
hand-edit — and confirmed it resolves nirium@0.16.0.

Noted, not touched here

npm install warns that @stellar/mpp@0.7.1 (nirium's own transitive
dependency) peer-wants @stellar/stellar-sdk@^15.1.0, while this
package pins ^14.5.0 directly. I checked whether this bump introduces
that warning — it doesn't: reverted the version locally and reinstalled,
same warning fires identically against 0.15.0. The CLI only uses its
own @stellar/stellar-sdk to call Keypair.fromSecret() for printing a
public key; the secret crosses into nirium's initX402() as a plain
string, never a Keypair instance, so the two installed copies don't
share an object across the boundary as far as I traced it. Real warning,
worth its own look, just not one this PR causes or fixes.

Verified

  • semver.satisfies('0.16.0', '^0.15.0') → false (the bug, confirmed
    programmatically before touching anything).
  • Clean npm install resolves nirium@0.16.0 in the lockfile, both
    immediately after editing package.json and again after a full
    rm -rf node_modules && npm install.
  • nirium pay --help and node --check bin/nirium.js both still run
    clean against the new install.

🤖 Generated with Claude Code

Under semver on a 0.x package, `^0.15.0` means `>=0.15.0 <0.16.0` — it
excludes 0.16.0, confirmed with `semver.satisfies('0.16.0', '^0.15.0')
=== false`. A fresh `npm install` of nirium-cli has been resolving
nirium@0.15.0 since 0.16.0 shipped, missing everything that landed with
it (the pre-sign policy hook, the spend-cap error, the initMpp() fix).

Bumped to ^0.16.0 and regenerated package-lock.json for real (`npm
install` from a clean node_modules), not hand-edited — confirmed it
resolves nirium@0.16.0 both before and after a fresh install.

Pre-existing, not introduced by this change: npm warns that
@stellar/mpp@0.7.1 (nirium's own transitive dependency) peer-wants
@stellar/stellar-sdk@^15.1.0 while this package pins ^14.5.0 directly.
Verified the same warning fires identically with nirium@0.15.0 still
pinned — reverted the version bump locally and reran the install to
check. The CLI's own use of @stellar/stellar-sdk (Keypair.fromSecret,
just to print the public key) and nirium's internal use never share an
object across the package boundary — initX402() takes the secret as a
plain string, not a Keypair instance — so this warning doesn't appear to
be live-breaking today, but it's real and worth its own look separately.

Closes #102

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@Eras256

Eras256 commented Oct 11, 2026

Copy link
Copy Markdown
Collaborator Author

No check ran here: both workflows filter by path (sdk-test.yml on packages/sdk/**, test-verify-audit-cid.yml on actions/verify-audit-cid/**), so nothing under packages/cli/ triggers CI. Adding that coverage is #103.

Tested by hand instead, on current main (c7c8283, which already has #108 and #110) with this branch merged on top:

  • merge: clean
  • npm ci then npm ls nirium: nirium@0.16.0
  • npm test in packages/cli: 11 pass, 0 fail
  • node bin/nirium.js --version: 1.1.4

Merging on that basis.

Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

CLI pins nirium ^0.15.0, which is deprecated and never resolves 0.16

1 participant