feat: pin plugin to CLI v3.0 (Rust)#180
Merged
Merged
Conversation
Bumps plugin version 2.4.13 -> 3.0.0-alpha.1 and declares a hard requirement on the Rust CLI rewrite via the new requires.cli field in plugin.json. Major bump rationale: the v3 CLI replaces the Bun/TypeScript binary with a native Rust executable. All 13 subcommands referenced by plugin skills retain parity with v2.3.3 (smoke-tested), so existing skill prose continues to work unchanged. The version jump signals to consumers that downgrading the CLI back to 2.x is unsupported under this plugin release. Audit of plugin shell-outs surfaced one follow-up: several skills and startup/scripts/open-in-obsidian.sh shell out to `node -e ...` with the comment "Node is reliably on PATH because the OneBrain CLI requires it." The Rust CLI no longer carries Node as a transitive dependency, so this assumption is broken. Per the minimal-changes rule, this is documented in PLUGIN-CHANGELOG and deferred to a dedicated follow-up PR rather than rewritten here.
3 tasks
kengio
added a commit
that referenced
this pull request
May 20, 2026
) Reverts commit 7d368f9. PR #180 declared a hard `requires.cli: '>=3.0.0-alpha.1'` and bumped the plugin version 2.4.13 -> 3.0.0-alpha.1 ahead of the CLI's actual GA. Reasoning at the time: signal that downgrading the CLI to the v2.x Bun binary is unsupported under the new plugin. In practice this lands too early: - The v3 CLI is still pre-GA (v3.0.0-alpha.5 at time of this commit). Anyone on a clean install picks up the plugin via vault-sync and then trips the version check until they manually update the CLI. - The plugin itself still works against both Bun v2.3.3 and the Rust alpha series — there's no skill that actually requires v3-only behaviour today. - Coupling plugin version 3.0.0-alpha.1 to the CLI alpha confuses the versioning story: plugin alpha + CLI alpha both at .alpha.1, drifting separately as each repo bumps. This commit restores the pre-PR-#180 plugin.json shape (no `requires.cli` field, no `version: 3.0.0-alpha.1`) and bumps the plugin to v2.4.14 to record the revert. The CLI-v3 pin will be re-applied — likely as `requires.cli: '>=3.0.0'` — once the CLI's v3.0.0 GA tag ships.
kengio
added a commit
that referenced
this pull request
May 20, 2026
PR #181 reverted PR #180 and added a PLUGIN-CHANGELOG v2.4.14 entry, but the plugin.json bump from 2.4.13 → 2.4.14 was missed during the amend pass (Edit tool blocked on a Read-required precondition that got dismissed in the noise). Result: PLUGIN-CHANGELOG advertises v2.4.14 while plugin.json still reports v2.4.13. This was caught when running /update against a vault on plugin v2.4.13 — the version-check step (read upstream plugin.json + compare) returned 'Already up to date' instead of triggering the v2.4.14 sync. One-line bump to restore consistency. No code or config change beyond the version field.
3 tasks
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
2.4.13→3.0.0-alpha.1in.claude/plugins/onebrain/.claude-plugin/plugin.jsonrequires.cli: ">=3.0.0-alpha.1"field — refuses to load against the Bun-era v2.x CLIPLUGIN-CHANGELOG.mdgains av3.0.0-alpha.1entry naming the CLI rewrite, the parity audit, and the deferred Node-on-PATH follow-upWhy a major bump (and why
-alpha.1)The v3 CLI is a complete Rust rewrite of the previous Bun/TypeScript binary. All 13 subcommands referenced by plugin skills (
session-init,checkpoint stop,checkpoint reset,orphan-scan,vault-sync,register-hooks,register-schedule,qmd-reindex,run-skill,update, plus--version) retain parity per the v3.0.0-alpha.1 smoke test, so existing skill prose continues to work unchanged. The major bump signals to consumers that downgrading the CLI to 2.x is unsupported under this plugin release. The-alpha.1suffix mirrors the upstream CLI tag and marks this as a prerelease while v3.0 stabilises — matches the existing convention where the plugin's last v1→v2 jump also rode a CLI transition.Audit findings (deferred to follow-up)
grep -rn "bun \|node " .claude/plugins/onebrainsurfaced:bun run,bun build, orbun testinvocations in any plugin file. Two references tobun install -g …inskills/qmd/SKILL.mdandskills/update/SKILL.mdare documentation of user-side install commands, not plugin shell-outs — safe.node -e "…"shell-outs in 6 files, all sharing the same justification comment: "Node is reliably on PATH because the OneBrain CLI requires it." The Rust CLI no longer carries Node as a transitive dependency, so this assumption no longer holds:skills/qmd/SKILL.md(basename + crypto.randomBytes for collection-name generation)skills/update/SKILL.md(mkdir for07-logs/subfolders)skills/reorganize/SKILL.md(mkdir for target subfolders)skills/import/SKILL.md+skills/import/references/{image,pdf,video}-handler.md(mkdir + file stat for attachment dirs)startup/scripts/open-in-obsidian.sh(URL-encoding the vault path)Per the minimal-changes rule these are flagged, not fixed, in this PR. Each call site has a portable fallback path documented inline (mkdir -p / PowerShell New-Item / cmd mkdir), so most still work on machines where Node happens to be installed — but the "guaranteed" claim needs to be retired and the Node calls replaced with a CLI subcommand (e.g.
onebrain util mkdir,onebrain util urlencode) in a follow-up.Test plan
plugin.jsonparses and the plugin loadsrequires.cligate: install CLI v2.3.3 alongside this plugin and confirm Claude Code refuses to load it (or warns)/daily,/wrapup,/doctor,/qmd setupagainst a v3.0 CLI to confirm parity holds end-to-endnode-dependent skill silently fails on a Node-free machine (manual / follow-up PR)