feat(release): publish ck as @beaconbay/ck-search on npm#117
Merged
Conversation
Adds a Node.js wrapper distribution so users can:
npm install -g @beaconbay/ck-search
ck --version
How it works:
- Postinstall (scripts/install.js) detects the platform, downloads the
matching prebuilt binary from the GitHub release for the npm
package's version (e.g. ck-0.7.7-aarch64-apple-darwin.tar.gz),
extracts to dist/bin/ck
- cli/ck.js is a thin spawn wrapper that runs dist/bin/ck with
inherited stdio
- scripts/test.js is a postinstall smoke test (npm test)
- Fallback to \`cargo build\` is kept for source checkouts, but the
published tarball deliberately excludes Rust source (.npmignore),
so the fallback is realistically only useful when running this
out of a git clone
release.yml additions:
- New publish-npm job after build-release
- Version is single-source-of-truth: workspace Cargo.toml + git tag.
The job runs \`npm version --no-git-tag-version\` to stamp package.json
at publish time, so maintainers never need to bump it manually.
- Idempotent: skips publish if @beaconbay/ck-search@X.Y.Z already on npm
- Requires NPM_TOKEN repo secret; finalize-release now waits on this
Validated locally against the live 0.7.7 release:
- \`npm pack --dry-run\` produces a clean 15 kB tarball (7 files)
- \`node scripts/install.js\` downloads and extracts the binary
- \`node cli/ck.js --version\` prints "ck 0.7.7"
- \`node scripts/test.js\` smoke test passes
CLAUDE.md updated to clarify maintainers don't need to bump
package.json — Cargo.toml + the tag are the gate.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
runonthespot
added a commit
that referenced
this pull request
May 24, 2026
Ships everything merged today on top of 0.7.7: - #117 npm distribution as @beaconbay/ck-search - #118 dependabot config + safe cargo bumps (incl. openssl CVE fix) - #119 tar 6 → 7 + engines.node >= 18 - #120 GitHub Actions: checkout v6, codeql v4 - #121 @types/vscode patch - #122 vue patch (docs-site) - #125 cargo-safe 20-pack (anyhow, tokio, clap, fastembed 5.13, uuid, etc.) - #127 shlex 1.3 → 2.0 First release that also publishes to npm. See CHANGELOG.md. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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.
Summary
Adds the second distribution channel asked for in the original release plan: `npm install -g @beaconbay/ck-search` for users who don't have Rust installed.
How it works
`release.yml` changes
New repo secret required
Validated locally against the live 0.7.7 release
Origin
These files are a re-pickup of the abandoned `feature/npm-distribution` branch from October 2025 (four commits by @runonthespot — 9b20ae0, cff3623, 5a53b72, 40e3d01). The branch was too far behind `main` to rebase cleanly, so I ported the files verbatim onto current `main` with these adjustments:
Test plan
Out of scope (follow-ups)
🤖 Generated with Claude Code