Repository navigation
feat(agents): simplify imports and clarify community scope - #1660
Conversation
c0701b9 to
21972f5
Compare
b5188a4 to
7312938
Compare
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. Two changes requested inline: preserve Import access after incomplete discovery, and correct the team recovery instruction.
Reviewed head 7312938852959a3e4844a5321f8aa8612f5e8693 against base 848288b6725fa26627a8590f57285f0de341ee51. Source only; no tests or app workflows run. The CI snapshot shows three failed browser shards and CI required failing; causes were not assessed. Native imports, rendered layout and keyboard behavior remain unverified.
An action joined to a menu of choices for it: the label names the current choice, and choosing in the menu changes it without running the action. Base UI has no split button, so it composes Buzz Button and Menu. Import uses it to show and change the type an old Buzz agent comes in as. Co-authored-by: Morgarita <6e967af659416160ab4f2fd56d74c8c6f273791ee7bfc9468a1be37c387947be@buzz.block.builderlab.xyz> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>
In development builds, Developer settings can stand in for what Import finds: nothing, agents in other communities, Buzz (Legacy) agents and teams, or both, and can show the community as having no agents yet. Pretend imports change nothing. Co-authored-by: Morgarita <6e967af659416160ab4f2fd56d74c8c6f273791ee7bfc9468a1be37c387947be@buzz.block.builderlab.xyz> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>
Import an agent and Import a team now show one list with no guidance paragraphs. Every action reads Import. Agents from other communities come in as the same agent. Each Buzz (Legacy) agent or team has a split button naming the type it comes in as, with a menu to change it. What did not come over reads as a note; failures stay alerts. The menu entries appear only when something can be imported, and the dialog keeps its height as the list changes. Co-authored-by: Morgarita <6e967af659416160ab4f2fd56d74c8c6f273791ee7bfc9468a1be37c387947be@buzz.block.builderlab.xyz> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>
…rios Buttons whose visible text is "Import as Claude" now have names that start with that text, so voice control finds them. A Developer settings scenario change now reaches an Agents page that is already open. Co-authored-by: Morgarita <6e967af659416160ab4f2fd56d74c8c6f273791ee7bfc9468a1be37c387947be@buzz.block.builderlab.xyz> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>
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>
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>
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>
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>
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>
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>
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>
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>
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>
Co-authored-by: Carl <acda9e433d19dcd0e6b6840f7f4b98f3a56f1fab98049d444c087019e6d36560@feedback.communities.buzz.xyz> Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
|
🤖 @wesbillman Both recovery issues are fixed at
Validation: all 67 tests in Native legacy-store writes and live imports were not exercised; hosted CI is pending. |
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>
Keep each hosted workflow isolated under the existing per-test budget and retain sign-in failure, cancellation, setup retry, editing, and deletion assertions. Drive footer animation frames with the browser clock instead of depending on CI scheduling. Co-authored-by: Carl <acda9e433d19dcd0e6b6840f7f4b98f3a56f1fab98049d444c087019e6d36560@feedback.communities.buzz.xyz> Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
There was a problem hiding this comment.
🤖 Original findings in this review were established at 2cd286b. Reassessment at 1116f35 repaired the four CI blockers. Latest reassessment at 80f6740 also verifies repairs to wrong-agent targeting, first-run warning access, team sharing confirmation and fallback type labels; confirmations are posted in their existing threads. Exact-head CI run 40546571971 is green. One new P3 pending-discovery tile flash is reported separately: #1660 (review) . Previous-head evidence remains scoped to its original SHA. This is a COMMENT review, not approval.
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>
Co-authored-by: Carl <acda9e433d19dcd0e6b6840f7f4b98f3a56f1fab98049d444c087019e6d36560@feedback.communities.buzz.xyz> Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
Use the same account preference and confirmation gate for team members joining from other communities. Preserve legacy team import behavior and show every source community in the existing dialog. Co-authored-by: Carl <acda9e433d19dcd0e6b6840f7f4b98f3a56f1fab98049d444c087019e6d36560@feedback.communities.buzz.xyz> Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
|
🤖 @kalvinnchau Addressed the import concerns on
The fixture, mini-avatar, animation-clock and hosted-test concerns map to the already-pushed Validation of the final changed inputs: 71 component tests, 18 Chromium/WebKit agent-library cases, and both shared SplitButton browser cases passed. Reproduced the new regressions before fixing them. The pointer case persists 110% sizing and reloads; the team case checks nested-dialog focus, Escape, sources and confirmation at enlarged size. Built-app captures and exact timings are in the description. Mandatory push checks passed on this head; replacement CI and native acceptance remain pending. |
kalvinnchau
left a comment
There was a problem hiding this comment.
🤖 Reassessment at 80f6740: all four previously open import findings are repaired. Exact-head CI run 40546571971 is green. One new P3 remains: pending discovery temporarily shows and then removes the first-run import tile. This COMMENT review synthesizes independent static, security/contracts and actual-app integration lanes; no approval is submitted.
Distinguish pending discovery from failure before offering the first-run import tile. Preserve warning and failure recovery, existing import menus, and the Create/Marketplace controls through an empty result. Co-authored-by: Carl <acda9e433d19dcd0e6b6840f7f4b98f3a56f1fab98049d444c087019e6d36560@feedback.communities.buzz.xyz> Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
|
🤖 @kalvinnchau Fixed the first-run import flash in Pending discovery keeps Create and Marketplace prominent. The Import tile appears for actual candidates, warnings or a failed read; existing Import menus remain reachable during discovery. Validation: all 71 AgentsPage component tests pass. New controlled pending-to-empty and pending-to-failure regressions failed before the fix; warning-only coverage stays green. The empty-result test also preserves both controls and focus. Compiled-app Chromium checks for the unchanged UI source pass in wide/dark and narrow/light at 110% interface size: control bounds and focus stay unchanged, and each pending/empty image pair is byte-for-byte identical. Mandatory commit and push checks passed. Actual compiled app with disposable native/relay data and the existing development empty-inventory scenario. New-head CI and native acceptance remain pending.
|
loganj
left a comment
There was a problem hiding this comment.
🤖 Larry, Rbot and Auto: an independent adversarial review of be47e3d7b. Source review only, plus Auto's local test and mutation run. We split the review by concern. Rbot took runtime correctness. Auto took completeness, shared-component consumers and test evidence. Larry took design coherence and what crosses between communities on import.
Verdict: approve, with two must-fix items. Both are small and we trust you to fix them without another full review round:
- Attention saves can lose their error when you switch tabs mid-save (inline on
AgentTabs.tsx). - The Buzz (Legacy) import lost its warning about duplicate runtimes (inline on
AgentsPage.tsx).
What we checked:
- Shared components (Dialog, ScrollEdgeMaterial, SplitButton, AvatarStack
mini, and the newcomponents.css/overlays.cssselectors): safe for every consumer. TheActivityAccessorystacks that AvatarStackminiaffects were fixed earlier and stay covered. - Discard guard: it reaches the claude-code, codex, goose and pi tabs, builderlab Instructions and ModelSettings, and HostSettings. Attention is the gap (must-fix 1).
- Tests: at this head, 2786 tests pass and 12 are skipped. Auto mutated 17 guards, and the tests caught 13. Two of the 4 survivors are inline as advice. The other two are redundant safety nets, which are fine to keep.
Items that can't go inline because the files aren't in this diff:
- convention:
docs/agents.md:648still names the Add action and Import → "From your other communities". Both are gone now that imports are one list.docs/agents.md:170-186(the settings-host contract) doesn't describe the new behaviour: sections unmount when hidden, switching with unsaved changes asks first, and a confirmed discard drops a pending provider choice. Today:181says that choice "remains a host-owned draft until Save". - question:
ProfilePanel.tsx:401-414.ProfileDetailsrendersagentSections(), including Settings withsettingsHost, inside plainTabs, with noAgentSaveStateprovider and no discard prompt. This path is used for an unfinished owned agent, or for an agent hosted here under another owner. If it can show an editable form, a tab switch drops the draft silently. The behaviour predates this PR, but it is the one settings editor the new guard doesn't reach. - convention: the PR body says the agents README describes the developer scenarios, but the README diff doesn't mention them.
- Two earlier threads are fixed in code but have no reply yet: Wes
4385500892(team recovery wording) and kalvinnchau4391996272(first-run tile flash, addressed bybe47e3d7b).
Labels: error (must-fix), advice = optional improvement, convention = repo or docs consistency, question.
Keep Attention mounted through toggle and skipped-object saves by reporting all pending writes to the existing section guard. Exercise deferred failures through AgentTabs. Co-authored-by: Carl <acda9e433d19dcd0e6b6840f7f4b98f3a56f1fab98049d444c087019e6d36560@feedback.communities.buzz.xyz> Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
Restore the duplicate-runtime warning for agent and team imports, and describe which settings the chosen type can adopt. Co-authored-by: Carl <acda9e433d19dcd0e6b6840f7f4b98f3a56f1fab98049d444c087019e6d36560@feedback.communities.buzz.xyz> Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
Use one field list across import consent, shared-edit notices and bring-agent explanations. Keep pictures and attention explicitly community-specific. Co-authored-by: Carl <acda9e433d19dcd0e6b6840f7f4b98f3a56f1fab98049d444c087019e6d36560@feedback.communities.buzz.xyz> Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
Exercise a destination form without its own dirty report. Removing the host pendingSave guard now fails the discard regression. Co-authored-by: Carl <acda9e433d19dcd0e6b6840f7f4b98f3a56f1fab98049d444c087019e6d36560@feedback.communities.buzz.xyz> Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
Drive an invalid provider and model choice through AgentTabs, retaining it on Keep editing and dropping it only after confirmed discard. Removing dirty reporting now fails the test. Co-authored-by: Carl <acda9e433d19dcd0e6b6840f7f4b98f3a56f1fab98049d444c087019e6d36560@feedback.communities.buzz.xyz> Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
Retire remaining team joins when their import scope unmounts, allowing only the already-started join to settle. Cover the transition with a held first join. Co-authored-by: Carl <acda9e433d19dcd0e6b6840f7f4b98f3a56f1fab98049d444c087019e6d36560@feedback.communities.buzz.xyz> Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
Explain that Real data imports remain real under the empty-inventory developer view, document the development-only production-page scenarios, and update unified import and discard terminology. Co-authored-by: Carl <acda9e433d19dcd0e6b6840f7f4b98f3a56f1fab98049d444c087019e6d36560@feedback.communities.buzz.xyz> Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
Create both chooser-only provider fixtures before rendering and use the supported role-query options. Preserve the tested discard and destination-change assertions. Co-authored-by: Carl <acda9e433d19dcd0e6b6840f7f4b98f3a56f1fab98049d444c087019e6d36560@feedback.communities.buzz.xyz> Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
Keep contributor-only import scenarios after the README separator, preserving the shared short-guide contract. Co-authored-by: Carl <acda9e433d19dcd0e6b6840f7f4b98f3a56f1fab98049d444c087019e6d36560@feedback.communities.buzz.xyz> Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
|
🤖 @loganj Addressed at
I retained the localhost/development-only scenario wrapper: it supports reviewing the actual app and host wiring, which fixture pages supplement. The Real data subtitle now warns that imports remain real under the empty view. README scenarios, unified-import terminology and draft lifetime docs are corrected. Community-reader lookup extraction is deferred; it is not needed for the scope fix. The pre-existing editable fallback in ProfileDetails (unfinished/other-owner hosted paths) still lacks the completed-owned-pane discard guard. That broader host follow-up remains separate; I have not claimed it is covered. Earlier team-recovery and first-run fixes already have validation notes. Before main integration: 112 affected checks across eight files passed; the new failure, Legacy-warning and team-scope regressions reproduced their bugs before the fixes. Both guard-removal mutations are caught. All 18 agent-library cases passed in Chromium/WebKit. TypeScript and mandatory commit/push checks passed before integration. Merged main Actual compiled app, 110% interface size, disposable native/relay/provider data. Attention images show an injected storage rejection handled by the production service/UI. These six captures were regenerated and inspected on the integrated tree at
|
Preserve Attention command and discovery registration alongside community-aware imports and developer scenarios. Co-authored-by: Carl <acda9e433d19dcd0e6b6840f7f4b98f3a56f1fab98049d444c087019e6d36560@feedback.communities.buzz.xyz> Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
…ted-setup * origin/main: (24 commits) feat(agents): share agents to the community catalog and export snapshots (#1649) feat(navigation): dialogs never become Back/Forward destinations (#1696) fix(builderlab): sign in when finishing a hosted agent's setup (#1768) fix(messages): link #name prose to open channels the directory has named (#1706) feat(agents): keep the Mac awake while agents work (#1718) perf(panels): skip layout for covered workspace tabs (#1542) feat(composer): offer model and effort in a DM with an agent without a mention (#1621) test(workflows): wait for dialog initial focus before pasting YAML in WorkflowEditor test (#1705) fix(builderlab): show all captured activity without a conversation toggle (#1764) feat(agents): add a UI for Attention watches (#1663) Keep thread reply branches one level deep (#1751) fix(messages): keep table scrollbars inside webkit message rows (#1677) feat(agents): sync agent config through config channels (#1226) fix(agents): offer a new hosted agent in Solo chats right away (#1759) test(usage): make UsagePage read-window test DST-safe (#1668) fix(panels): scope split motion selectors to layout owners (#1681) feat(agents): simplify imports and clarify community scope (#1660) fix(pi): stop posting replies the agent did not send (#1758) feat(identity): support a local debug restore helper (#1517) test(perf): cover rich thread open close and reopen (#1683) ... Signed-off-by: Riley Crane <rileycrane@squareup.com>
…into rileycrane/bestie-hourly-wake * origin/rileycrane/bestie-hosted-setup: (25 commits) Give Bestie's test fixture the native keepAwake that main now requires feat(agents): share agents to the community catalog and export snapshots (#1649) feat(navigation): dialogs never become Back/Forward destinations (#1696) fix(builderlab): sign in when finishing a hosted agent's setup (#1768) fix(messages): link #name prose to open channels the directory has named (#1706) feat(agents): keep the Mac awake while agents work (#1718) perf(panels): skip layout for covered workspace tabs (#1542) feat(composer): offer model and effort in a DM with an agent without a mention (#1621) test(workflows): wait for dialog initial focus before pasting YAML in WorkflowEditor test (#1705) fix(builderlab): show all captured activity without a conversation toggle (#1764) feat(agents): add a UI for Attention watches (#1663) Keep thread reply branches one level deep (#1751) fix(messages): keep table scrollbars inside webkit message rows (#1677) feat(agents): sync agent config through config channels (#1226) fix(agents): offer a new hosted agent in Solo chats right away (#1759) test(usage): make UsagePage read-window test DST-safe (#1668) fix(panels): scope split motion selectors to layout owners (#1681) feat(agents): simplify imports and clarify community scope (#1660) fix(pi): stop posting replies the agent did not send (#1758) feat(identity): support a local debug restore helper (#1517) ... Signed-off-by: Riley Crane <rileycrane@squareup.com>






























Category: improvement
User Impact: Owners can import agents with clearer choices, see which communities share their settings, and inspect community-specific memories without labels overflowing the pane.
Problem: Import choices were split across sources without making shared settings clear. Editing a shared agent did not identify every affected community, and section switches could leave hidden drafts or Save controls behind. Long memory names could widen the pane instead of truncating.
Solution: Show a single import list with plain Import actions for other communities and a joined type selector for Buzz (Legacy). Before importing an agent or team members from another community, explain which settings are shared and which memories stay local, with an optional remembered preference. During editing, place Save above a community-scope notice, confirm draft discards, and block section changes during saves. Put community scope popovers beside the Memory headings and constrain long names within the pane.
Import behavior
Keep an imported cross-community agent’s identity, type, and settings. The explanation shows its source and destination; it does not copy memories or conversations.
Keep legacy import controls inside their own cards as interface size grows. Generic types show the selected name on both agent and team actions; registered logos stay compact.
Use provider images in Legacy type choices. Picking a type changes the action without starting an import; loading disables the menu.
Hide Import entries once discovery completes without warnings and there is nothing to import. Refresh discovery when the menu opens, keep a steady dialog height, and retain partial-failure notes and retryable errors.
Preserve keyboard focus when import completes. The shared SplitButton keeps its action and menu edges joined while open.
Keep both Import entries available when legacy discovery reports warnings. Show the diagnostic and scope empty-result copy to the sources that could be read.
With no agents yet, keep a first-run import tile available when discovery is incomplete so warning-only results remain reachable.
Importing team members from other communities uses the same explanation and account preference as individual imports. Cancellation performs no joins; changing the destination dismisses the confirmation.
When a legacy team references agents still in another community, direct recovery through Import an agent before retrying the team.
Settings and memories
File changes
src/app/DeveloperSettings.tsx
Expose dev-only import scenarios for inspecting empty communities and source combinations.
src/app/settings-sections.ts
Register the existing developer settings entry for the import scenario control.
src/bundled/agents/AgentCard.module.css
Allow import-card tracks to reflow with interface text size while retaining the existing inventory layout.
src/bundled/agents/AgentDetails.test.tsx
Cover community ordering, presentation changes, footer visibility, and popup content.
src/bundled/agents/AgentDetails.tsx
Own shared-community presentation and the Save footer integration; keep focused edits visible as the footer opens.
src/bundled/agents/AgentSettingsHost.tsx
Expose the footer's editing and visibility state to its host.
src/bundled/agents/AgentTabs.test.tsx
Cover cancellation, confirmed discard, pending saves, failures, and staged harness changes.
src/bundled/agents/AgentTabs.tsx
Guard section changes with the shared discard dialog, reset confirmed drafts, and retain the current section during a save.
src/bundled/agents/AgentsPage.module.css
Place the footer within the existing pane scrollport and reserve space while it is visible.
src/bundled/agents/AgentsPage.test.tsx
Cover import availability including warning-only first run, visible fallback type choices, individual/team explanation confirmation, shared reminder preference, cancellation, destination changes, errors, and focus recovery.
src/bundled/agents/AgentsPage.tsx
Combine import sources in one list, explain shared settings before cross-community import, remember the owner’s preference, and integrate the settings footer.
src/bundled/agents/README.md
Describe the import list, cross-community explanation, and developer scenarios.
src/bundled/agents/index.tsx
Connect the developer import scenario to the existing Agents page.
src/bundled/builderlab/adapter-type/Instructions.test.tsx
Cover cancellation, confirmed discard, and pending/failed hosted saves for instructions and models.
src/bundled/builderlab/adapter-type/Instructions.tsx
Report hosted instruction drafts and pending saves to the shared section guard without changing the provider-owned Save control.
src/bundled/builderlab/adapter-type/ModelSettings.tsx
Guard model and effort edits, including incomplete selections, while only the visible editor reports state.
src/bundled/builderlab/index.test.tsx
Complete the Settings editor load before testing that deletion waits for a fresh sign-in. Split shared login, creation sign-in recovery, setup recovery, and editing/deletion into independent cases under the existing timeout.
src/bundled/claude-code/tabs.test.tsx
Assert the intentional discard behavior through the provider form.
src/bundled/codex/tabs.test.tsx
Assert cancellation and confirmed discard through the provider form.
src/bundled/pi/tabs.tsx
Report unsaved edits independently from Save availability, including an invalid model draft.
src/bundled/profiles/ProfilePanel.tsx
Use the same community presentation and footer behavior in profile panes.
src/bundled/profiles/index.tsx
Provide the existing community reader to the profile host.
src/features/agents/AgentSaveButton.module.css
Define footer placement and spacing around the shared scroll-edge material.
src/features/agents/AgentSaveButton.tsx
Animate the footer and community notice, support accessible popup interactions, and reveal the current editing position when needed.
src/features/agents/MemoryPanel.test.tsx
Cover copy, current-community presentation, keyboard access, and consumer cleanup.
src/features/agents/MemoryPanel.tsx
Place community scope controls beside both headings, shorten descriptions, and allow memory rows to shrink within the pane.
src/features/agents/tabs.tsx
Thread the existing community reader through the Memory section contract.
src/features/developer/agent-import-scenario.ts
Model bounded development-only import scenarios without changing real agents.
src/features/developer/mode.ts
Expose the development scenario under the existing developer-mode owner.
src/shared/design-system/DESIGN.md
Document SplitButton composition and the shared scroll-edge material.
src/shared/design-system/styles/components.css
Style the shared split action, bound and wrap long labels, and keep both joined halves the same height.
src/shared/design-system/styles/overlays.css
Remove the dialog-specific copy of the scroll-edge styling.
src/shared/design-system/ui/AvatarStack.module.css
Separate overlapping mini images with the panel background while retaining readable artwork and actual artwork overlap.
src/shared/design-system/ui/Dialog.tsx
Reuse the extracted scroll-edge material in the existing dialog footer.
src/shared/design-system/ui/ScrollEdgeMaterial.module.css
Own the existing progressive blur and gradient treatment.
src/shared/design-system/ui/ScrollEdgeMaterial.tsx
Expose that treatment for both dialog and agent footers.
src/shared/design-system/ui/SplitButton.test.tsx
Cover type selection without executing the action, disabled/loading states, and accessible naming.
src/shared/design-system/ui/SplitButton.tsx
Compose the shared Button and Menu into a joined action with a separate choice trigger.
src/shared/design-system/ui/registry.ts
Register SplitButton and scroll-edge ownership; describe avatar separation while preserving reduced-motion behavior.
tests/browser/agent-library.spec.mjs
Exercise popup and discard interactions, footer geometry, editing visibility, and long-label truncation in Chromium and WebKit. Drive animation frames with a controlled clock while retaining the geometry and focus assertions.
tests/fixtures/agent-library.tsx
Supply bounded synthetic legacy choices, joinable team members, memberships, settings, and opt-in long memory data to the existing component fixture. Import layout cases read persisted appearance through the real appearance service.
tests/fixtures/design-system/playwright.config.ts
Include the split-button browser specimen in the existing design-system runner.
tests/fixtures/design-system/split-button.spec.ts
Check the joined action and type menu through real browser interaction, including a constrained action that wraps while keeping both halves aligned.
tests/fixtures/design-system/ui/ButtonSpecimens.tsx
Present split-button variants and states alongside the shared button specimens.
tests/fixtures/design-system/ui/DialogSpecimens.tsx
Exercise the import explanation artwork in the shared dialog composition.
tests/fixtures/design-system/ui/componentSpecimens.tsx
Show overlapping mini avatars and import artwork through the shared component specimens.
tests/fixtures/profiles.tsx
Provide the community reader required by the production profile plugin so standalone profile journeys mount the real plugin.
Reproduction
Development-only source combinations are available under Settings → Developer → Agent import: nothing, other communities only, Buzz (Legacy) only, or both, plus an empty-community view. Pretend imports change no real agents; production builds exclude this control.
Screenshots
Built-app Memory captures from
8dc001f60with disposable test data and modeled host/relay boundaries; no live account or community data. Memory content is unchanged by the subsequent rebases.Validation
2cd286bd7: all 67 Agents page component tests pass. Warning-only discovery failed in both menu regressions before the fix; the team recovery assertion also failed before its correction. Mandatory pre-push TypeScript/related-unit checks and design guards passed on this head. No native legacy-store writes or live imports were exercised.13b74c89f, preserving the hosted-profile and shared hover behavior. Range-diff retains all 39 feature commits; the latest rebase only combines AvatarStack documentation with main’s reduced-motion description.6f50f4688, all 14 Chromium/WebKit cases passed (17.2s). Mandatory pre-push TypeScript/related-unit checks (70.00s), design type/guard checks (4.65s), and repository push policies passed. Native appearance and final human acceptance of the truncation/hosted guard fixes remain pending. No review-completion attestation is claimed.CI recovery —
1116f3590Run 40538549005 at
2cd286bd7exposed four PR-related causes across all 12 failed jobs:Local Apple Silicon macOS/Hermit validation of the changed inputs:
1116f3590; these single-run local measurements do not establish Linux CI performance.The first pre-push hook also exposed an intermittent WorkflowEditor YAML recovery assertion outside this PR’s changes. Its complete 22-test file passed on the same head; WorkflowEditor, Field, and Textarea match main. That failure is recorded and left unpatched.
Recovery pushed to
morganm/agent-import-polishat1116f3590. Mandatory pre-push TypeScript/related-unit checks (70.28s), design checks (4.72s), and push policies passed on the unchanged retry. Hosted CI on this replacement head still needs confirmation. Native appearance and human acceptance remain pending.Import follow-up —
80f6740c6f506f6928: show the selected type name in place of generic robot artwork on legacy agent/team actions.6d0c5cf0d: expose incomplete-discovery diagnostics when the owner has no agents.5c530e50c: reflow import cards and bound shared SplitButton labels, retaining full joined height and separate action/menu hit targets.80f6740c6: use the shared explanation/preference gate for team members joining from other communities, showing every source. Legacy team-port semantics stay unchanged.The final changed inputs passed all 71 tests in the complete Agents page and SplitButton component files (18.06s), all 18 agent-library cases in Chromium/WebKit (22.6s), and the shared split-button browser file in both engines (5.4s). First-run diagnostics, fallback labels, team confirmation, and pointer interception were reproduced before their fixes. Two browser journeys were added, none removed: persisted 110% interface sizing with raw pointer hit testing, and nested team-confirmation focus/source artwork at enlarged size. State and preference matrices remain in component tests. The new cases took 4.0–4.7s and 2.2–2.4s per engine locally.
Built-app captures below use the existing development import scenario, disposable relay data and a fixture provider. They exercise the actual compiled app with development React at 110% interface size; no native app, real account or community data was used.
Mandatory TypeScript/related-unit checks (64.47s), design checks (4.43s), and push policies passed on
80f6740c6. Native acceptance and hosted CI on this replacement head remain pending.