* [root]chore: split CLI release into release-cli.yml and scope changeset to CLI only
- Rename .github/workflows/release.yml -> release-cli.yml, keeping only
version-or-release / build-cli / publish-cli jobs; drop publish-js,
release-extension, release-dify-plugin and their detection outputs
- Extend .changeset/config.json ignore list with JS packages, extension
and dify-plugin so `pnpm changeset` only proposes CLI-related packages
- Other package release pipelines will be re-introduced later as their
own independent workflows when needed
* [root]fix: silence shellcheck warnings in release-cli.yml
- SC2193: assign matrix.platform-suffix to a shell var before pattern
matching so shellcheck stops flagging the == win32-* comparison
- SC2086: switch TAG_FLAG string to a TAG_FLAGS bash array and expand
with "${TAG_FLAGS[@]}" in both platform and CLI publish steps
* [root]fix: add workflow permissions and restrict changeset scope
- Add contents:write and pull-requests:write permissions to release
workflow so changesets/action can create PRs and push commits
- Expand ignore list to exclude all non-releasable packages (services,
playground) to prevent accidental npm publishes
- Add build:release script that only builds changeset-managed packages
to avoid CI failures from unrelated build errors
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* [root]feat: unify CLI & extension releases under changeset workflow
Replace 3 separate release flows (changesets for JS, tag-triggered for
CLI, tag-triggered for extension) with a single unified workflow driven
by Version PRs.
- Add scripts/sync-versions.js to sync CLI version to platform packages
and extension version to manifest.json after changeset version
- Rewrite release.yml with 5 conditional jobs: version-or-release,
publish-js, build-cli, publish-cli, release-extension
- Remove platform binary packages from pnpm workspace (pure containers)
- Enable privatePackages versioning for extension in changeset config
- Delete release-cli.yml and release-extension.yml
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* [root]chore: ignore json-ui-site and knowledge-builder-any in changesets
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
cross mounts only the cwd into Docker. By running from the repo root
with --manifest-path, the sibling actionbook-extension directory
becomes accessible for include_str!() at compile time.
Remove GitHub Releases download fallback from postinstall script.
The binary is always bundled in the npm package, so download logic is unnecessary.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace the TypeScript CLI implementation with a thin JS wrapper that
executes the native Rust binary. The npm package now ships all platform
binaries directly, with a postinstall fallback to download from GitHub
Releases if needed.
- Add bin/actionbook.js: platform detection + binary execution
- Add scripts/postinstall.js: fallback download from GitHub Releases
- Remove all TypeScript source, build config, and dependencies
- Update CI workflow to build, package, and publish with binaries
- Update README with full Rust CLI command documentation
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Enable `npm install -g @actionbookdev/actionbook-rs` to install the Rust
binary using the optionalDependencies pattern (same as esbuild/biome).
- Switch reqwest and tokio-tungstenite to rustls-tls for cross-compilation
- Add platform-specific packages for 6 targets (darwin/linux/win32 x arm64/x64)
- Add main wrapper package with JS shim that detects platform and spawns native binary
- Add build-npm.sh and publish-npm.sh helper scripts
- Add GitHub Actions workflow triggered on actionbook-rs-v* tags
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>