Skip to content

Add Thread Organizer example plugin - #2263

Open
brsbl wants to merge 7 commits into
bb/plugin-runtime-skill-slots-thr_eibej5m9xwfrom
bb/example-thread-organizer-thr_eibej5m9xw
Open

Add Thread Organizer example plugin#2263
brsbl wants to merge 7 commits into
bb/plugin-runtime-skill-slots-thr_eibej5m9xwfrom
bb/example-thread-organizer-thr_eibej5m9xw

Conversation

@brsbl

@brsbl brsbl commented Aug 21, 2026

Copy link
Copy Markdown
Collaborator

What was wrong

The repository had no complete reference consumer for plugin-owned thread workflows, leaving native section icons/actions, runtime skill slots, protected unread routing, and durable sidebar ordering demonstrated only as disconnected primitives. The organizer skill also treated the remembered stage too much like a semantic classification even though new threads mechanically inherit the first configured non-Inbox stage until the user or bb organizer phase moves them. Finally, the settings description aligned its text box to the list panel's bounding edge, which left the visible capital R inside the rounded corner instead of on the corner's tangent.

What changed

  • Add the Thread Organizer example with configurable workflow stages, protected Inbox behavior, remembered stage routing, native section icons/actions, CLI phase changes, and agent instructions.
  • Persist and restore organizer-owned section identity, order, collapse state, and transitions while preserving unrelated sidebar positions.
  • Fill the organizer skill's runtime workflow slot without mutating its bundled template.
  • Teach the skill to re-evaluate at substantive task starts, resolved indirect kickoffs, scope changes, pre-implementation, implementation/validation transitions, failed validation, and handoff; update_plan does not move the bb workflow stage.
  • Inset the settings description by the shared rounded-lg radius token (with the host's 0.5rem fallback), then hang Inter's measured capital-R sidebearing (180/2048em) so its visible ink edge lands on the panel corner's tangent without an arbitrary pixel nudge.
  • Add the missing Turbo dependency from the example typecheck to @get-bb/plugin-sdk#build:types, so a clean checkout generates the bundled SDK declarations before checking the example.
  • Keep PluginAgentConfiguration.skills as string[], keep experimental_skillSlots optional and experimental, and leave shared/default SDK artifacts plus PLUGIN_SDK_VERSION at 0.4.10. Only this example declares the planned engines.bbPluginSdk >=0.4.11 capability floor; no SDK 0.4.10 artifacts are vendored or relabeled.

Before — parent PR head be87f190

Before — parent head with Release checklist in Unorganized

After — workflow feature evidence at 0d6967a96

After — configured workflow sections, icons, and Release checklist remembered in Planning

Final optical-alignment detail — exact final head fe815c9dc

Exact final settings UI — the capital R ink edge follows the rounded panel corner tangent

How you verified

  • Node 22 with Turbo: 42/42 focused example tests pass across core guidance, server behavior, sidebar actions/controller, and app registration.
  • Turbo typecheck passes for bb-plugin-thread-organizer-example and all upstream tasks (6/6 combined test/typecheck tasks).
  • Built the exact final example head with the local source CLI: pnpm bb:dev plugin build examples/plugins/thread-organizer.
  • Removed generated untracked examples/plugins/thread-organizer/types/ files after the build and confirmed a clean worktree.
  • git diff --check be87f190be2ac7c69b9112048875f91600f83fc6..fe815c9dc36d5886faca106106dd5e2b0792e129.
  • Desktop visual QA used the same isolated dev profile, fixture data, routes, interaction states, and 1224×768 native window bounds. Captures came only from desktop dev apps launched from the compared revisions.
  • Exact final-head optical measurement: the list panel's left edge is 421px, its rounded-lg radius is 8px, and its corner tangent is 429px; the capital R's predicted visible ink edge is 429.001953125px, a 0.001953125px delta.
  • Exact-head full CI run 32543758381: 9/13 jobs passed. The four failures reproduce the inherited baseline outside this stack's diffs: stale generated plugin-registry r/icon.json, the Machines settings 2 projects expectation, and Machine settings response-body reuse (reported in two app shards/check groups).

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
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