Skip to content

fix: migrate advisor_review to SDK 0.4.16 presentation labels - #3

Open
jonolee-kr wants to merge 2 commits into
salemsayed:mainfrom
jonolee-kr:fix/sdk-0.4.16-presentation-labels
Open

fix: migrate advisor_review to SDK 0.4.16 presentation labels#3
jonolee-kr wants to merge 2 commits into
salemsayed:mainfrom
jonolee-kr:fix/sdk-0.4.16-presentation-labels

Conversation

@jonolee-kr

Copy link
Copy Markdown

Problem

Advisor fails to load on a bb host running plugin SDK 0.4.16 or later:

plugin "advisor" reload failed: registerTool: "experimental_statusLabels" was folded into "presentation" (labels) in SDK 0.4.16 (tool "advisor_review")

SDK 0.4.16 folded experimental_statusLabels into presentation (labels). The host rejects the old field, so the whole plugin stays in error state. Reproduced on bb 0.40.0.

Change

  • server.ts — move the two advisor_review labels to presentation.label. The label text is unchanged.
  • types/bb-plugin-sdk.d.ts — add PluginAgentToolLabels and PluginAgentToolPresentation, and replace the registration field. PluginAgentToolExperimentalStatusLabels stays as a deprecated alias, because the SDK's bundled testing declarations still import it.
  • package.json — raise engines.bbPluginSdk to >=0.4.16. presentation does not exist before that release.
  • server.test.ts — add a regression test. It reads the raw registration, asserts presentation.label, and asserts that experimental_statusLabels is absent. The test fails on the current main.
  • dist/ — regenerated. The app-bundle diff is a minification artifact of the newer builder, not a code change.

Verification

  • npx tsc -p tsconfig.json — clean.
  • npx vitest run — 84 passed, 0 failed.
  • bb plugin build — succeeds.
  • The plugin loads and runs on bb 0.40.0.

Known limitation, out of scope here

bb plugin types --check reports the vendored declarations as stale against bb 0.40. A full refresh produces 21 further type errors that are unrelated to this field, mostly the supportedPermissionModes to permissionModes rename and test fixtures that now need provider.capabilities. That breakage exists on main today. This PR does not touch it, so the diff stays scoped to the registration failure.

🤖 Generated with Claude Code

jonolee-kr and others added 2 commits August 26, 2026 03:07
SDK 0.4.16 folded `experimental_statusLabels` into `presentation`
(labels). A host on that SDK or later rejects the old field, so the
plugin fails to load with:

  registerTool: "experimental_statusLabels" was folded into
  "presentation" (labels) in SDK 0.4.16 (tool "advisor_review")

Move the two labels to `presentation.label` and keep their text
unchanged. Teach the vendored declarations the new contract, and keep
`PluginAgentToolExperimentalStatusLabels` as a deprecated alias so the
SDK's bundled testing declarations still resolve.

Raise `engines.bbPluginSdk` to `>=0.4.16`, because `presentation` does
not exist before that release.

Add a regression test that reads the raw registration and asserts the
new shape.

Regenerate dist/. The app bundle diff is a minification artifact of the
newer builder, not a code change.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
bb 0.40 renamed provider.capabilities.supportedPermissionModes to
permissionModes and removed the readonly value. server.ts still read the
old name, so narrowestReviewMode called .find on undefined. Every
connected machine reported 'Could not load models: TypeError: Cannot read
properties of undefined (reading find)', and a saved advisor model looked
unavailable because the option list came back empty.

- Migrate off the vendored 0.4.2 declarations to @get-bb/plugin-sdk 0.4.21,
  which is what let the rename go unnoticed.
- Read capabilities.permissionModes at the three call sites.
- Drop the removed readonly value from the mode preference and type the
  preference as the host's own permission-mode union.
- Rebuild the fake catalogs in server.test.ts against the bb 0.40 shape.
- Add a regression test for the settings panel catalog, plus a reuse
  control and a respawn test for sessions stored under readonly.
- Correct the README: current bb has no read-only mode, so the reviewer
  runs in accept-edits and can write to the workspace.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant