con un clic
release
// Cut a new Breadcrumbs release — bumps version, updates CHANGELOG, optionally rebuilds WASM, commits, tags, and pushes.
// Cut a new Breadcrumbs release — bumps version, updates CHANGELOG, optionally rebuilds WASM, commits, tags, and pushes.
| name | release |
| description | Cut a new Breadcrumbs release — bumps version, updates CHANGELOG, optionally rebuilds WASM, commits, tags, and pushes. |
| allowed-tools | Bash(bun *) Bash(git *) Bash(cargo *) Bash(wasm-pack *) Read Write Edit |
Cut a new Breadcrumbs plugin release. Follow every step in order — stop and report any failure.
!git status --short
!cat package.json | grep '"version"'
!git log --oneline -10
The user may pass: /release [version] [--beta]
version — explicit version string like 4.12.1 or 4.13.0. If omitted, infer from the user's message or propose next patch bump.--beta — if present (or if the version contains "beta"), create a prerelease tag (e.g. 4.12.1-beta.1).Ask the user if not clear from arguments:
4.12.1). Goes into Obsidian community plugin list.4.12.1-beta.1). GitHub marks as pre-release; not auto-distributed.MAJOR.MINOR.PATCH or MAJOR.MINOR.PATCH-beta.N.git tag -l <version>.Run git status --short. If there are uncommitted changes, ask the user whether to proceed (they may want to commit first, or include them in the release commit).
Check if Rust sources changed since last tag:
git diff $(git describe --tags --abbrev=0) -- wasm/src/ wasm/Cargo.toml wasm/Cargo.lock
If changes exist, or if user explicitly requested a WASM rebuild:
bun run wasm:buildwasm/pkg/ changesbun run wasm:test
bun run test
Stop on any failure.
bun run build
Stop on failure.
Update version in both files to the new version string:
package.jsonmanifest.jsonInsert a new section at the top of the ## 4.X block (or a new top-level ## X.Y block for major bumps):
### [<version>](...compare/<prev>...<version>) (<YYYY-MM-DD>)
Collect changes from git log since last tag:
git log $(git describe --tags --abbrev=0)..HEAD --oneline
Group commits into CHANGELOG sections using conventional-commit prefixes:
feat: / feat(…): → Featuresfix: / fix(…): → Bug Fixesperf: → Performancechore: / ci: / build: → Chores / Build / CIdocs: → Documentationrefactor: → RefactorsUse the existing CHANGELOG entries as style reference. Write descriptive bullets, not raw commit subjects.
git add package.json manifest.json CHANGELOG.md wasm/pkg/
git commit -m "release: <version>"
git tag <version>
git push origin master --tags
Report:
<version>main.js, manifest.json, styles.css — no extra steps needed.Note on WASM: wasm/pkg/ is committed to the repo. The GitHub release workflow does not install Rust — it uses the pre-built binaries from the repo. Always rebuild WASM locally (bun run wasm:build) and commit before releasing if Rust sources changed.