Skip to content

v0.6.3 — --ignore-scripts on every install path; own every retired bin name

Choose a tag to compare

@echennells echennells released this 26 Aug 00:26
· 10 commits to main since this release

Security

  • --ignore-scripts on every documented install path, npm ci included. npm ci runs the full install lifecycle exactly as npm install does — verified here with a sentinel dependency — so a lockfile-exact install is not by itself protection from a dependency that executes code at install time. In this tree that is protobufjs, which runs before a single line of your own code is imported. README, AGENTS.md and the quick-start blocks now carry the flag throughout. Verified on the development tree as well as the consumer install: a clean npm ci --ignore-scripts clone runs the full 386-test suite green, so the flag costs nothing in either place.

  • Every bin name this project has ever published is now project-owned on npm. Alongside sparkbtcbot, the five names retired in 0.6.0 — sparkbtcbot-setup, sparkbtcbot-reveal-mnemonic, sparkbtcbot-leaf-vault, sparkbtcbot-set-policy, sparkbtcbot-reset-ledger — now resolve to reservation stubs that print the sparkbtcbot <subcommand> migration and exit 1. npx resolves whatever string you type as a package name, so folding a bin into a subcommand removes it from the package but not from the registry's namespace. That gap matters more here than in most projects: this skill's readers are LLM agents, the retired names were the documented form throughout 0.4.x–0.5.x and therefore sit in model weights and agent memory, and an agent working from recall never reads the SKILL.md rule that would stop it — while npx with no TTY installs and executes silently, so there is no prompt to intervene either. Owning the name is the only control that acts at resolution time rather than upstream of a model's choice of what to type. Deliberately bounded to the names actually shipped and documented, not to arbitrary misspellings; a future release that retires a bin name should claim it the same way.

Changed

  • SKILL.md speaks one invocation form. Four npx sparkbtcbot <cmd> instructions remained in user-facing lines and contradicted the npm exec --no -- forms beside them, so a reader copy-pasting from the nearest example got the weaker one. The description of --no also picked up the precise wording README settled on in 072f07e: it refuses to install, though a registry metadata request may still print a 404.

  • SPARK_ACCOUNT_NUMBER is out of README's environment-variable table and out of setup's help text, which had advertised it without ever reading it. It is not a general setting: SparkAgent and every example script omit accountNumber and take the SDK's network default, and the leaf-vault CLI is its only reader — an escape hatch so a deliberately non-default wallet can still be backed up. Listed beside SPARK_PASSPHRASE it invited being set globally, which would point the recovery bundle at a different, empty wallet than the funded one. .env.example documents it correctly and is unchanged.