Skip to content

Add nav panel menu example plugin - #2406

Open
brsbl wants to merge 2 commits into
bb/sidebar-plugin-list-layer1-thr_jgmy8ay2qdfrom
bb/sidebar-plugin-menu-example-layer2-thr_jgmy8ay2qd
Open

Add nav panel menu example plugin#2406
brsbl wants to merge 2 commits into
bb/sidebar-plugin-list-layer1-thr_jgmy8ay2qdfrom
bb/sidebar-plugin-menu-example-layer2-thr_jgmy8ay2qd

Conversation

@brsbl

@brsbl brsbl commented Aug 25, 2026

Copy link
Copy Markdown
Collaborator

What was wrong

The new optional plugin-page menu contract had no in-repository consumer, so its group ordering, context helpers, and lazy-submenu shape could regress without exercising the same API a real plugin would import.

What changed

  • Adds examples/plugins/nav-panel-menu, a self-contained plugin that registers two labeled groups and a lazy API surfaces submenu through experimental_menu.
  • Exercises MenuContext.navigate and openInSplit from real menu actions while keeping lazy submenu items unresolved until the submenu opens.
  • Gives only this new consumer the capability-based engines.bbPluginSdk >=0.4.18 floor; unrelated examples and the shared released baseline are unchanged.
  • Adds focused rendering and lazy-resolution tests, a frozen lockfile importer, and the example-specific Turbo typecheck edge to the layer-1 SDK declarations. No other bb behavior changes in this layer.

Before — parent layer dd32116ce

Before: the nine-page fixture has no menu API example

After — this PR head 0c8d9af82

After: the installed example contributes groups and a lazy submenu

How you verified

  • Frozen offline lockfile validation passed with pnpm install --lockfile-only --frozen-lockfile --ignore-scripts --offline against an isolated modules directory.
  • pnpm exec oxfmt --threads=1 --check examples/plugins/nav-panel-menu passed.
  • pnpm exec oxlint examples/plugins/nav-panel-menu passed.
  • Focused Vitest passed: 1 file, 2 tests.
  • Focused source-contract TypeScript validation passed against the layer-1 @get-bb/plugin-sdk/app source in 9.7 seconds.
  • The real plugin installed as running against the exact SDK 0.4.18 branch app; its two groups rendered, the lazy submenu produced Agents / App slots / Storage only on open, and selecting Agents navigated to surfaces/agents without a console exception.
  • The full Turbo typecheck correctly reached the SDK declaration build but remained CPU-bound on this 8 GB host at one worker and was stopped after more than two minutes; CI must run the complete check.
  • Chrome for Testing 152.0.7977.54 passed the cumulative responsive, theme, persistence, active-promotion, right-click, and repeated-disclosure flow. Safari 18.2 remains unverified because Allow remote automation is disabled on this host.

Fixes

No linked issue; supplies the required living consumer layer for Phase 3 of the Updated Sidebar Spec.

BB-Thread-ID: thr_jgmy8ay2qd

AGENT GENERATED

@brsbl
brsbl force-pushed the bb/sidebar-plugin-menu-example-layer2-thr_jgmy8ay2qd branch from ab235f6 to 0c8d9af Compare August 25, 2026 16:02
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