Repository navigation
fix(agents): align Builderlab controls and explain hosting limits - #1890
Conversation
Co-authored-by: Carl <acda9e433d19dcd0e6b6840f7f4b98f3a56f1fab98049d444c087019e6d36560@feedback.communities.buzz.xyz> Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
Co-authored-by: Carl <acda9e433d19dcd0e6b6840f7f4b98f3a56f1fab98049d444c087019e6d36560@feedback.communities.buzz.xyz> Signed-off-by: Taylor Ho <taylorkmho@gmail.com> (cherry picked from commit 713fd7b)
Co-authored-by: Carl <acda9e433d19dcd0e6b6840f7f4b98f3a56f1fab98049d444c087019e6d36560@feedback.communities.buzz.xyz> Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
Use the same family menu as Goose, with Builderlab-owned alias metadata and right-aligned Model and Thinking menus. Preserve explicit supported selections and independent saves. Co-authored-by: Carl <acda9e433d19dcd0e6b6840f7f4b98f3a56f1fab98049d444c087019e6d36560@feedback.communities.buzz.xyz> Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
Add DeepSeek, Grok, Z.ai/GLM and Kimi artwork through the existing icon gateway, with source notices. Use the marks in shared model pickers and recognize GLM model families across plugins. Co-authored-by: Carl <acda9e433d19dcd0e6b6840f7f4b98f3a56f1fab98049d444c087019e6d36560@feedback.communities.buzz.xyz> Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
Use one agent-pane Save action for model, thinking and instructions. Submit combined edits in one existing update request, retain instructions-only saves without a model catalog, and preserve failed drafts and section guards. Co-authored-by: Carl <acda9e433d19dcd0e6b6840f7f4b98f3a56f1fab98049d444c087019e6d36560@feedback.communities.buzz.xyz> Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
Co-authored-by: Carl <acda9e433d19dcd0e6b6840f7f4b98f3a56f1fab98049d444c087019e6d36560@feedback.communities.buzz.xyz> Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
Revert cherry-pick aa2419b while the standalone fix is pending. Use the explicit BUZZ_BUILDERLAB_URL build input for local testing. Co-authored-by: Carl <acda9e433d19dcd0e6b6840f7f4b98f3a56f1fab98049d444c087019e6d36560@feedback.communities.buzz.xyz> Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
Match the shared compact harness trigger and show the migration limitation on hover or keyboard focus. Co-authored-by: Carl <acda9e433d19dcd0e6b6840f7f4b98f3a56f1fab98049d444c087019e6d36560@feedback.communities.buzz.xyz> Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
Use the existing disabled color for Base UI data-disabled buttons as well as native disabled buttons. Co-authored-by: Carl <acda9e433d19dcd0e6b6840f7f4b98f3a56f1fab98049d444c087019e6d36560@feedback.communities.buzz.xyz> Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
Use the shared hover-card popover to explain signing-key custody and the missing local identity handoff. Put the runtime link alongside Workspace and Sessions in Settings. Co-authored-by: Carl <acda9e433d19dcd0e6b6840f7f4b98f3a56f1fab98049d444c087019e6d36560@feedback.communities.buzz.xyz> Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
…ty-config * origin/main: fix(desktop): bump tao to 0.37.2 to stop AppKit exceptions aborting Buzz (#1885) fix(builderlab): recognize app URLs across tenants (#1710) test(browser): open the message-link context menu by keyboard (#1884) fix(desktop): let the page see Cmd shortcuts so undo reverts pastes (#1788) feat(navigation): distinguish passive traversal from explicit close (#1767) NEXUS-3788: Render composable Solo regions with recovery (#1689) build: stage pinned upstream goose-acp releases (#1864) feat(solo): sync the main agent choice to the account (#1665) fix(channels): count own thread replies before the relay summary lands (#1709) Signed-off-by: Taylor Ho <taylorkmho@gmail.com> Co-authored-by: Carl <acda9e433d19dcd0e6b6840f7f4b98f3a56f1fab98049d444c087019e6d36560@feedback.communities.buzz.xyz>
Keep registered hosted harnesses visible but disabled for local agents, with signing-key context in the shared hover card. Preserve keyboard navigation, nested dismissal, and the local migration path. Co-authored-by: Carl <acda9e433d19dcd0e6b6840f7f4b98f3a56f1fab98049d444c087019e6d36560@feedback.communities.buzz.xyz> Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
Place a short runtime sentence beneath its label and remove the redundant reasoning-effort menu heading from editing and creation. Co-authored-by: Carl <acda9e433d19dcd0e6b6840f7f4b98f3a56f1fab98049d444c087019e6d36560@feedback.communities.buzz.xyz> Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
Let unmapped Builderlab aliases use shared ID/name inference, and derive the selected icon from the same resolved family as its submenu. Cover opaque IDs and unfamiliar catalog names. Co-authored-by: Carl <acda9e433d19dcd0e6b6840f7f4b98f3a56f1fab98049d444c087019e6d36560@feedback.communities.buzz.xyz> Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
Exercise the actual PanelCard and AgentTabs composition: the first Escape closes only Harness help and keeps focus; the next Escape reaches the pane close handler. Co-authored-by: Carl <acda9e433d19dcd0e6b6840f7f4b98f3a56f1fab98049d444c087019e6d36560@feedback.communities.buzz.xyz> Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
Use settings in Identity loading and Active-only messages now that the editor includes model preferences as well as instructions. Co-authored-by: Carl <acda9e433d19dcd0e6b6840f7f4b98f3a56f1fab98049d444c087019e6d36560@feedback.communities.buzz.xyz> Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
|
🤖 Carl, AI coding agent, recording Princess Donut’s requested adversarial review and follow-up repairs. Donut reviewed Disposition:
At Carl self-reviewed the repairs; Donut has not re-reviewed them. Tho subsequently confirmed testing Main-sync update: Optional-review follow-up at
All 476 Builderlab tests, 189 design-system tests, design-system build and mandatory push checks pass. Headless diagnostics use real components with fixture data, cover both-theme spinner/disabled colors and keyboard/pointer help, and confirm no provider mutation while selecting |
Carry forward the focus-readiness assertion from main commit 9a39103 before sending End/Enter to the custom-date picker. Preserve every existing assertion and timeout. Co-authored-by: Carl <acda9e433d19dcd0e6b6840f7f4b98f3a56f1fab98049d444c087019e6d36560@feedback.communities.buzz.xyz> Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
wesbillman
left a comment
There was a problem hiding this comment.
🤖 Star Lord’s automated source review via Wes’s account, integrating independent Rocket, Mantis and Groot reviews.
No required changes found in the unified Identity save flow, model-family controls or hosted-harness explanations. Reviewed head 952c5de0f43f2d2d1e6cd48ac04d63c1b05360a7 against base 11dd17bb7775a2932ca2466235354105edf2041b; source and attached screenshots only, with no tests or app execution. The CI snapshot shows successful executed checks, with Windows native and browser flake checks skipped; live provider save/reopen/next-task behavior and native acceptance remain unverified.
Preserve mainline Builderlab account, communities and sign-in documentation alongside the Identity controls and shared Save behavior. Resolve only the README conflict; retain both parents of the integration test and icon exports. Co-authored-by: Carl <acda9e433d19dcd0e6b6840f7f4b98f3a56f1fab98049d444c087019e6d36560@feedback.communities.buzz.xyz> Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
wesbillman
left a comment
There was a problem hiding this comment.
🤖 Carl, an automated reviewer, commenting via Wes’s GitHub account.
No blocking findings at head 712eb4370e1673008e0c44a1c108da14969b9e7d against base ec443a255b28efe0f13d91924a4082f929d3152a. This covers the merge from main, including #1863. Reviewed in independent lanes: the save state machine, UI/a11y/assets, the harness host and model-family callers, and the merge with cross-module contracts. The three inline notes are optional.
Checked: combined configure vs narrow updateModel/updateInstructions payloads; readback preserving the instructions draft; and the dirty/saving tab guard (AgentTabs already remounts per section). Hosted harness choices exit before migration preview or staging. Existing Claude/Codex/Goose family-menu callers still work. Brand-mark geometry and license notes match their sources. Focused jsdom probes confirmed two behaviors: an account switch or unmount during a combined write keeps the draft and skips readback. They also reproduced the Harness click-close issue below. CI is green at this head.
Not verified: live Builderlab save, reopen and next-turn behavior; backend handling of omitted fields; VoiceOver; and whether arrowing onto the hosted menu item opens its help in a real browser (:focus-visible differs from jsdom).
Keep the unavailable text treatment on disabled compact choices while excluding loading buttons, matching the shared Button state contract. Co-authored-by: Carl <acda9e433d19dcd0e6b6840f7f4b98f3a56f1fab98049d444c087019e6d36560@feedback.communities.buzz.xyz> Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
Ignore trigger presses that would close the disabled Harness explanation after keyboard opening. Preserve Escape and outside dismissal and cover both Enter and Space. Co-authored-by: Carl <acda9e433d19dcd0e6b6840f7f4b98f3a56f1fab98049d444c087019e6d36560@feedback.communities.buzz.xyz> Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
Share effort display labels between creation and Identity, align status and validation wording, and keep provider values unchanged. Co-authored-by: Carl <acda9e433d19dcd0e6b6840f7f4b98f3a56f1fab98049d444c087019e6d36560@feedback.communities.buzz.xyz> Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
Category: improvement
User Impact: Builderlab agents now use the same Identity controls and bottom Save action as other agents.
Problem: Builderlab split model settings and instructions across tabs and used separate inline saves. Its model aliases also fell back to generic icons, and unsupported moves between local and hosted harnesses were unexplained.
Solution: Bring Harness, Model, Thinking and Instructions into Identity with one shared footer Save. Reuse the shared family menu and brand marks, explain both directions of the identity handoff limitation in shared hover cards, and put runtime information in Settings with consistent descriptions.
File changes
src/bundled/agents/AgentSettingsHost.tsx
Show registered hosted harnesses as disabled choices for local agents, including when only one local harness exists. Explain signing-key custody without staging a migration; preserve local migration and nested keyboard/pointer dismissal.
src/bundled/agents/AgentSettingsHost.test.tsx
Cover disabled hosted choices, hover and keyboard help, no provisioning or migration, local migration staging and agents that run elsewhere.
src/bundled/builderlab/adapter-type/Create.tsx
Use Thinking and friendly option labels consistently with Identity, while preserving model-specific options, provider IDs and validation. Remove the redundant group heading.
src/bundled/builderlab/adapter-type/Create.test.tsx
Cover Thinking choices and confirm that Extra high retains the provider value
xhigh.src/bundled/builderlab/adapter-type/index.ts
Use the same thinking-level wording in creation validation.
src/bundled/builderlab/adapter-type/Instructions.tsx
Keep provider loading and account ownership with the plugin, render the Identity editor in its first pane, and group Runtime, Workspace and Sessions in Settings. Runtime uses a short linked description beneath its label. Loading and Active-only messages describe settings rather than instructions alone.
src/bundled/builderlab/adapter-type/Instructions.test.tsx
Cover tab composition, unsaved-change cancellation/discard, runtime link placement, and nested-Escape behavior through PanelCard and AgentTabs.
src/bundled/builderlab/adapter-type/ModelSettings.tsx
Own one Identity draft and footer Save. Use a combined provider update when model settings and instructions both change; preserve narrow updates, validation, account checks, failure recovery and model readback. Render the shared model-family menu, shared thinking-option labels, and a disabled Harness trigger with an accessible hover card. Trigger clicks retain help opened from the keyboard; Escape and outside dismissal remain available.
src/bundled/builderlab/adapter-type/ModelSettings.test.tsx
Cover combined and individual saves, catalog outages, invalid selections, readback/failure recovery, and the disabled Harness explanation on hover and keyboard focus.
src/bundled/builderlab/adapter-type/models.ts
Share thinking-option display labels between creation and Identity. Keep Builderlab's alias-to-family mapping with its catalog owner; unmapped aliases use shared ID/name inference before falling back to Other.
src/bundled/builderlab/adapter-type/models.test.ts
Cover catalog aliases, inference for newly named models with opaque IDs, and the unknown-model fallback.
src/bundled/builderlab/index.test.tsx
Update integration expectations for the Identity configuration controls.
src/bundled/builderlab/README.md
Document the unified Identity draft, shared Save action and catalog mapping ownership while retaining main’s unified Builderlab account, community setup and sign-in guidance.
src/features/agents/ModelFamilyMenu.tsx
Accept catalog-owned family metadata and optional menu alignment while retaining defaults for existing callers. Resolve selected icons from the same family as the submenu.
src/features/agents/ModelPicker.tsx
Accept optional family metadata and recognize DeepSeek, Grok, GLM/Z.ai and Kimi in the shared icon matcher.
src/features/agents/ModelPicker.test.tsx
Cover family metadata, model-ID/name inference, icons and nested-menu selection, including opaque catalog IDs.
src/shared/design-system/icons/HarnessLogos.tsx
Add shared vector artwork for DeepSeek, Grok and Z.ai/GLM, plus the Kimi image wrapper.
src/shared/design-system/icons/index.ts
Export the added brand marks through the shared icon owner.
src/shared/design-system/icons/kimi.png
Store Kimi's official favicon converted losslessly to PNG.
src/shared/design-system/styles/forms.css
Apply the existing unavailable text color to focusable Base UI disabled compact buttons as well as native-disabled buttons, while preserving the available color for loading spinners.
NOTICE.md
Record artwork sources and license/trademark notes.
Product-approved design exception: disabled Harness controls and hosted menu choices explain migration limits using the shared Popover with preview hover timing, rather than the design guide’s helpful Tooltip. The explanations also open from keyboard focus and Enter; this does not change shared hover timing or tooltip policy.
Try it
Validation
11e58c1ec, 117 focused tests cover the shared harness host, agent tabs/page and Builderlab editing/creation. At repair head952c5de0f, all 53 tests in the four affected files pass: model picker, Builderlab catalog mapping, Identity integration and RemindDialog. Six new family/icon cases fail before the repair and pass after it.712eb4370with the supported four-worker cap. Prior failed attempts are retained in the review record.ec443a255is merged without rewriting feature history. The only manual conflict resolution is the README: retain main’s unified account/community/sign-in documentation and add Identity editing. The auto-merged integration test preserves both parents’ assertions, and the icon index preserves both export sets. All 43 tests in the three affected integration/picker test files pass. No production code was manually changed by the resolution.df6470afc: preserve compact loading-spinner colors, retain keyboard-opened Harness help on trigger click, and align creation/status Thinking labels. All 476 tests in the complete Builderlab test set, 189 design-system tests, the design-system build, and mandatory push hooks pass. Regression checks reproduce the old label/dismissal failures before the repair. Headless component diagnostics cover loading versus disabled colors in both themes, Enter/Space → pointer click → Escape, and Extra high retainingxhighwithout provider writes. These diagnostics are not native or live-provider acceptance; no new human walkthrough is claimed.952c5de0fand confirmed it on 2026-10-29. No browser journeys were added or removed.buzz-review-completed
Requested adversarial review
Princess Donut reviewed
11e58c1ec342c5da91431aa899c4a03df2a4161dagainst11dd17bb7775a2932ca2466235354105edf2041b: no blockers, 8.5/10, source-only. She ran no tests and did not inspect CI, captures or live behavior.Follow-ups fix family inference/selected icons, add nested-Escape coverage, and correct settings copy. The previously blocked RemindDialog test now retains main’s existing focus-readiness assertion from
9a3910341; it matches clean main exactly. Clean main3515e9f26passed all six tests. The fresh unchanged feature run also passed all six, so the previous failure was intermittent; a date-validation defect was not established. No assertions/timeouts were weakened and no hooks were bypassed.The review record contains dispositions and earlier failed-hook evidence. Repair head
952c5de0fis self-reviewed; no independent re-review is claimed. Human acceptance is recorded above. The subsequent main sync resolves documentation only. The optional-review follow-ups and their separate automated evidence are recorded above; the human-test record remains tied to952c5de0f.Screenshots
Actual desktop rendering, cropped to the changed controls.