Repository navigation
Conversation
Header thread actions rendered their label as a text button while the workspace Open button beside them is icon-only. Render the evaluated action's icon instead, with the label as accessible name and tooltip; split-button menu rows show icon and label. Update the contract comment, authoring reference, Plugin Guide bullet and audit entry. Fixes get-bb#6520 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
# Conflicts: # packages/domain/src/plugin-sdk-version.ts # packages/plugin-sdk/package.json
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Human comments
What was wrong
ThreadDetailHeaderrendered aplacement: "header"thread action as an outline button containing onlyaction.label(and a split button of label-only halves for several), even though every registration and evaluatedPluginThreadActionalready carries a requiredicon. Beside the icon-only workspace Open button this produced a row of wide text buttons that grows with every plugin adding one. See #6520 and audit question 5 indocs/api_to_audit.md.What changed
apps/app/src/views/thread-detail/ThreadDetailHeader.tsx: one header action is now an icon-only, square outline button (same subtle icon color and padding as Open) witharia-label=labeland a bottom tooltip showinglabel. The trigger wraps the button in a span so the tooltip still shows while the action is disabled. With several actions, the split button's main half is the first action's icon with its label asprimaryTooltip, and menu rows show icon + label.apps/app/src/components/ui/split-button.tsx: the primary tooltip wraps its trigger whenprimaryAction.disabledis true, so a disabled main action still shows its tooltip. Open passesdisabledat the top level, so it is unaffected.PluginThreadActionPlacementcontract comment,frontend-registration.md, the Plugin Guide "Thread header buttons" bullet, and theexperimental_threadActionaudit entry (description + question 5, which no longer asks about an icon-only form).PLUGIN_SDK_VERSIONandpackages/plugin-sdk/package.jsonbumped to 0.6.98, becausecheck-plugin-sdk-versioncounts the contract comment change as an SDK surface change. No SDK type, wire, or CLI change;HOST_DAEMON_PROTOCOL_VERSIONis untouched.How you verified
ThreadDetailHeader.test.tsx: new test "shows a header action as its icon, with its label as the name and tooltip" (button has no text, renders the action's icon, keyboard focus shows a tooltip with the label, click runs the action). The split-button test now also asserts the main half and each menu row render the action icon. Both fail onmainwithout the change and pass with it. Existing assertions that located Commit by text now use its button role/name. Fixtures use a registered icon (GitMerge), because the previousRocketis not a bb icon and fell back toZap.pnpm exec turbo run typecheck --filter=@bb/app --filter=@get-bb/plugin-sdk --filter=bb-plugin-plugin-api-docs: pass.pnpm exec turbo run test --filter=bb-plugin-plugin-api-docs --filter=bb-plugin-bb--git: 75 + 249 passed.vitest run src/views/thread-detail src/components/ui/split-button.test.tsx src/components/thread/ThreadActionsMenu.test.tsxinapps/app: 308 passed, 1 skipped.apps/serverplugin-authoring-docs.test.ts: 19 passed.Fixes #6520
🤖 Generated with Claude Code