Skip to content

Add runtime slots for plugin skills - #2262

Open
brsbl wants to merge 3 commits into
bb/plugin-section-icons-actions-thr_eibej5m9xwfrom
bb/plugin-runtime-skill-slots-thr_eibej5m9xw
Open

Add runtime slots for plugin skills#2262
brsbl wants to merge 3 commits into
bb/plugin-section-icons-actions-thr_eibej5m9xwfrom
bb/plugin-runtime-skill-slots-thr_eibej5m9xw

Conversation

@brsbl

@brsbl brsbl commented Aug 21, 2026

Copy link
Copy Markdown
Collaborator

What was wrong

Conditional plugin configuration could select a static skill only by string name, so live plugin settings could not populate predefined content inside that skill without rewriting installed plugin files or falling back to unrelated session instructions.

What changed

  • Preserve PluginAgentConfiguration.skills as string[] and add optional experimental experimental_skillSlots, keyed by selected skill and declared slot name.
  • Validate selected skills, slot names, marker pairs, content limits, and aggregate limits at the plugin boundary.
  • Materialize content-addressed generated skill trees per resolution while preserving installed templates and unrelated files.
  • Document the experimental contract and authoring markers in the plugin-authoring skill and API audit list.
  • Leave the inherited PLUGIN_SDK_VERSION unchanged at 0.4.14; no shipped field is renamed, narrowed, restamped, or relabeled.

How you verified

  • Node v22.22.1 arm64 with Turbo typechecks for @bb/server and @get-bb/plugin-sdk (6/6 tasks).
  • Exact-head focused server tests for conditional plugin tools and injected skill slots: 30/30.
  • Exact-head plugin SDK fake-host tests: 44/44.
  • git diff --check 058027f527333ad9b9cd3e0077443bd2a1c26257..7f85d7d45a392dde5cc4dbd282fe9976bbf7c303.

Fixes # — no linked issue.

BB-Thread-ID: thr_eibej5m9xw

AGENT GENERATED: by GPT-5.6-Sol

ymichael added a commit that referenced this pull request Aug 21, 2026
## What was wrong

`MachinesSettingsSection` loads host rows and sidebar project metadata
through independent asynchronous queries. The test waited only for
`MacBook Pro` from `sdk.hosts.list`, then synchronously queried for `2
projects` from the still-independent sidebar bootstrap. When the host
query won that race, the rendered row still showed `0 projects`,
producing the same `TestingLibraryElementError` in [PR #2262's app-1
job](https://github.com/get-bb/bb/actions/runs/32530493567) and [PR
#2263's app-1
job](https://github.com/get-bb/bb/actions/runs/32530498050).

## What changed

The project-count assertion now uses awaited `findByText`, synchronizing
the test with the sidebar query that owns the value. The following `1
project` assertion remains synchronous because both counts are derived
from the same resolved sidebar payload. No product behavior, assertion
coverage, wire contract, CLI, or documentation surface changed.

## How you verified

- Reproduced the exact failure before the fix by temporarily delaying
only the sidebar response by 50 ms: the host row rendered with `0
projects`, and the test failed at the `2 projects` assertion. With the
assertion fix under the same forced ordering, the test passed. The
temporary delay is not committed.
- `pnpm exec turbo run test --filter=@bb/app --force -- --run
src/components/settings/MachinesSettingsSection.test.tsx` — 12/12
passed.
- `pnpm exec turbo run test --filter=@bb/app --force` — 418 files
passed; 3,244 tests passed and 3 skipped.
- `pnpm exec turbo run typecheck --filter=@bb/app --force` — clean.
- `pnpm exec turbo run build --filter=@bb/app --force` — clean.
- `git diff --check` — clean.

Fixes # — no linked issue.

BB-Thread-ID: thr_qarynse2fs

> AGENT GENERATED: by GPT-5.6-Sol
@brsbl
brsbl force-pushed the bb/plugin-runtime-skill-slots-thr_eibej5m9xw branch from 7177f8b to 7f85d7d Compare August 22, 2026 07:09
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