Skip to content

Plugins pin SDK ^0.5.0 and are uninstallable once bb ships SDK 0.4.3 #29

Description

@SawyerHood

Hi — heads up on a change that just landed in bb, which will make the plugins here uninstallable on the next bb release. Filing this rather than a PR, because the fix depends on a bb release that does not exist yet.

What changed in bb

get-bb/bb#1569 did two things:

  1. engines.bbPluginSdk is now a floor, not a ceiling. bb reads the lowest version the range allows and runs the plugin on any SDK at or above it within the same major. A caret range no longer strands a plugin when the SDK moves forward.
  2. The plugin SDK went back to 0.4.3. The 0.4.20.5.0 bump in Graduate Extensions from experiments get-bb/bb#1360 was a marker for the Extensions graduation, not an API break (the only change was removing the toolsHub experiment key). Read literally, that bump unloaded every installed plugin carrying a caret range.

The effect here

All five plugins declare "bbPluginSdk": "^0.5.0". Under the floor rule that means "needs 0.5.0 or newer", which is above the host, so bb marks them incompatible.

thread-hover-cards and improve-prompt are in bb's official catalog (builtin-registry.ts), so their store install buttons are disabled. That is tracked on our side in get-bb/bb#1572.

Why this is not a PR

The repository's toolchain is pinned to bb release 0.37.0 (24a3211a), which shipped SDK 0.5.0:

  • tooling/vendor/bb-plugin-sdk-0.5.0.tgz with its sha256 in sdk-provenance.json
  • tooling/vendor/bb-plugin-build-0.37.0.mjs, which has PLUGIN_SDK_VERSION = "0.5.0" compiled in and stamps every dist/*.meta.json
  • check-repository.mjs:207 and validate-plugin-artifacts.mjs:222, which assert engines.bbPluginSdk === "^" + vendoredSdkVersion exactly

Editing the manifests alone fails npm run check on the drift assertion. A correct change needs all four of these, and SDK 0.4.3 currently exists only on bb main. Vendoring an unreleased bb build here seemed like your call, not mine.

Suggested fix, once bb ships 0.4.3

  1. Re-vendor @bb/plugin-sdk@0.4.3 and the matching bb plugin build bundle; update both provenance files.
  2. Relax the two validators from exact ^${pluginSdkVersion} equality to a floor range that the vendored SDK satisfies, so a future compatible SDK bump does not require touching every manifest.
  3. Set all five plugins/*/package.json to ">=0.4.3".
  4. Rebuild so dist/*.meta.json stamps 0.4.3, and let CI republish the plugin/<slug> branches.
  5. Update tooling/create-plugin.mjs, which writes ^${pluginSdkVersion}, to emit a floor range.

Happy to open the PR once a release with 0.4.3 is out, if that is useful.

AGENT GENERATED: by Claude Opus 5

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions