Refine Extensions defaults and plugin ordering - #941
Conversation
|
Integrated the thread/right-sidebar UI patch in d7c1313, scoped to apps/app only. This preserves the existing collapse icon, makes tab close actions hover/focus-only, keeps maximized panes free of the collapsed rail while preserving Restore pane, and applies themed sidebar surfaces/fades across right-panel content. Review-loop fixes also keep the header surface aligned during live resize and prevent a maximized, conversation-collapsed pane from hiding Restore. Validation: 7 focused files / 51 tests passed; @bb/app Turbo typecheck passed; Prettier and git diff checks passed; app lint passed with 0 errors (147 existing warnings); focused Ladle stories registered from this worktree. The PR dev app is being relaunched after validation. |
|
Added the automation UX follow-up in 6359592. Pending one-time automations now trail other active entries; completed one-time automations are treated as inactive and trail other inactive entries, while the selected name/project order remains intact inside each category. Automation detail removes the duplicate Read only badge, uses the permission control as the access source of truth, adds disabled-cursor tooltips pointing to Edit with chat, and always renders the full model label (covered with 5.5 Sol). Validation: Automations plugin 55/55 tests; focused app 38/38 tests; @bb/app and bb-plugin-automations Turbo typechecks; Prettier/diff checks; app lint 0 errors (147 existing warnings). Stories: Overview page, Detail states, and Provider identities updated/verified as registered. No merge performed. |
5bce4f2 to
6c85391
Compare
5400113 to
7e1363b
Compare
|
🚨 SLOP COP 🚨 · I am the SlopCop. I am reviewing this pull request now. I will check security, code quality, performance, architecture, and the main user flow. |
|
🚨 SLOP COP 🚨 · Security review complete. I found no security problem in the changed client code. The pull request does not change server routes, daemon messages, data access, or authorization. |
|
🚨 SLOP COP 🚨 · Performance review complete. I found one important performance regression. The new live panel-width state updates the full thread view on each resize event. I also found small, bounded costs in the skill-card loading changes and new sort logic. |
|
🚨 SLOP COP 🚨 · Code-quality and architecture review complete. I confirmed two concrete UI regressions. A narrow automation detail view can hide its model label. The new disabled selector can also hide the selected value from keyboard users. I also confirmed the live resize performance problem. Several small helpers and predicates repeat existing code, but they do not block this change. |
|
🚨 SLOP COP 🚨 · End-to-end review complete. The local app opened The browser reported no page error. The app typecheck passed. All 2,302 app tests passed. |
| label: ( | ||
| <DisabledAutomationSelector | ||
| label="Provider and model" | ||
| disabledReason="Use Edit with chat to change the provider and model." |
There was a problem hiding this comment.
🚨 slopcop/review — The model label disappears in narrow automation details.
The 34rem container query hides [data-promptbox-full-label]. This selector no longer provides compactValue, so only the icon and chevron remain. Please restore the model label as compactValue.
| <span | ||
| className="inline-flex shrink-0 cursor-not-allowed rounded-md focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background" | ||
| tabIndex={0} | ||
| aria-label={`${label}. ${disabledReason}`} |
There was a problem hiding this comment.
🚨 slopcop/review — The focus label omits the selected value.
This span becomes the keyboard focus target because the child button is disabled. Its label gives the reason but omits the provider, model, or permission. Include accessibleValue ?? value in this label.
| <ThreadSecondaryPanel | ||
| {...threadSecondaryPanelProps} | ||
| browserDeck={browserDeck} | ||
| onPanelResize={setLiveSecondaryWidthPercent} |
There was a problem hiding this comment.
🚨 slopcop/review — Live resize now rerenders the full thread view for each pointer update.
Each resize sends a new float into top-level React state. This rerenders the thread body and timeline during each drag frame. The split host pays the same cost but never reads the value. Use a CSS property or attach this callback only outside the hosted view.
SawyerHood
left a comment
There was a problem hiding this comment.
🚨 SLOP COP 🚨 · review
Review complete.
Three findings need fixes:
- Restore the compact model label in narrow automation detail views.
- Include the selected value in each disabled selector focus label.
- Avoid a full thread view rerender on each panel resize update.
The security review found no issue.
The architecture scan found small duplication in disabled-control tooltips and official-plugin checks. These items do not block this pull request.
The @bb/app typecheck passed. All 2,302 app tests passed. The browser verified Extensions routes, tabs, and plugin order without a page error.
This is a comment-only review. I did not approve or request changes.
What changed
text-2xstoken to the sanctionedtext-xstoken.Why
The Extensions landing page and collection defaults should surface the most relevant BB-owned resources first without overwriting later user choices. Installed plugin ordering should make active plugins easiest to scan while remaining stable when names collide. Browse skill cards should appear progressively as coherent units, without either blocking the entire grid or visibly reshaping individual cards as secondary skills.sh requests complete.
The reported page-2 freeze came from the shared resource-pagination race already fixed on current main in
0a84c3708: a stale page-size synchronization effect could overwrite a newer page selection. This PR verifies that shared fix through the Plugins integration rather than adding a plugin-specific workaround.Validation