Commit 87ae7a7
graduate avatar collection canvas (#153)
**Category:** improvement
**User Impact:** Everyone now chooses agent avatars from the
full-screen, pannable collection canvas.
**Problem:** The collection canvas remained behind an experiment,
leaving production users on a separate inline picker and requiring two
avatar-selection paths to stay maintained.
**Solution:** Make the collection canvas the single avatar-picker
experience across the agent builder and profile, then remove the
experiment registration and legacy picker implementation. The canvas
shows a neutral Berd loading state while its catalog loads. On agent
profiles, it waits for persistence before closing and preserves failed
selections for retry; in the builder, selections join the existing
working buffer without prematurely saving unrelated edits.
<details>
<summary>File changes</summary>
**scripts/design-system-audit.mjs**
Removes a stale baseline exception after the retired inline profile
editor styling was deleted.
**src/features/agents/capabilities/__tests__/AgentBuilderCapability.test.tsx**
Stops configuring the graduated experiment in capability setup.
**src/features/agents/lib/getCachedAvatarMedia.ts**
Moves cached avatar media lookup into a neutral shared utility used by
the permanent canvas.
**src/features/agents/ui/AgentAvatarSection.tsx**
Removes the retired inline avatar customization surface.
**src/features/agents/ui/AgentBuilderRail.tsx**
Makes the collection canvas the sole avatar library path in compact and
full-page builders.
**src/features/agents/ui/AgentDetailPage.tsx**
Opens the collection canvas directly from profile avatar customization
and removes the legacy inline branch.
**src/features/agents/ui/AvatarCollectionOverlay.tsx**
Reads cached media through the neutral avatar utility, shows a neutral
loading state, and supports async owners that preserve failed selections
for retry.
**src/features/agents/ui/AvatarLibraryPicker.tsx**
Removes the retired inline avatar library implementation.
**src/features/agents/ui/__tests__/AgentBuilderRail.test.tsx**
Updates builder expectations for the always-on canvas, removes
experiment-specific cases, and pins that avatar selection joins the
existing working buffer without prematurely saving unrelated edits.
**src/features/agents/ui/__tests__/AgentsView.entry.test.tsx**
Covers permanent canvas opening from agent profiles, persistence,
closure, telemetry, and failed-write behavior.
**src/features/agents/ui/__tests__/AvatarCollectionOverlay.test.tsx**
Covers loading feedback and retrying a failed selection without losing
canvas context.
**src/features/agents/ui/__tests__/AvatarLibraryPicker.test.tsx**
Removes tests for the retired inline picker.
**src/features/experiments/__tests__/ExperimentsSettings.test.tsx**
Updates the supported experiment registry expectation.
**src/features/experiments/experimentDefinitions.ts**
Removes the avatar collection canvas experiment definition and
identifier.
**src/shared/i18n/__tests__/agentAvatarAffordanceLocaleParity.test.ts**
Narrows locale parity coverage to the remaining profile avatar
affordance copy.
**src/shared/i18n/locales/en/agents.json**
Removes English copy used only by the retired inline picker.
**src/shared/i18n/locales/en/settings.json**
Removes the graduated experiment’s English settings copy.
**src/shared/i18n/locales/es/agents.json**
Removes Spanish copy used only by the retired inline picker.
**src/shared/i18n/locales/es/settings.json**
Removes the graduated experiment’s Spanish settings copy.
</details>
<img width="2152" height="1522" alt="Screenshot 2026-08-20 at 6 07
44 PM"
src="https://github.com/user-attachments/assets/563f3706-cef1-404c-84d3-cca0e86985ea"
/>
---------
Signed-off-by: Matt Toohey <contact@matttoohey.com>
Co-authored-by: Matt Toohey <contact@matttoohey.com>1 parent 04505c3 commit 87ae7a7
19 files changed
Lines changed: 444 additions & 1084 deletions
File tree
- scripts
- src
- features
- agents
- capabilities/__tests__
- lib
- ui
- __tests__
- experiments
- __tests__
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
113 | 113 | | |
114 | 114 | | |
115 | 115 | | |
116 | | - | |
117 | 116 | | |
118 | 117 | | |
119 | 118 | | |
| |||
Lines changed: 0 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
61 | 61 | | |
62 | 62 | | |
63 | 63 | | |
64 | | - | |
65 | | - | |
66 | 64 | | |
67 | 65 | | |
68 | 66 | | |
| |||
125 | 123 | | |
126 | 124 | | |
127 | 125 | | |
128 | | - | |
129 | 126 | | |
130 | 127 | | |
131 | 128 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
This file was deleted.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
11 | | - | |
12 | 11 | | |
13 | 12 | | |
14 | 13 | | |
15 | 14 | | |
16 | 15 | | |
17 | | - | |
| 16 | + | |
18 | 17 | | |
19 | 18 | | |
20 | 19 | | |
| |||
44 | 43 | | |
45 | 44 | | |
46 | 45 | | |
47 | | - | |
48 | | - | |
49 | 46 | | |
50 | | - | |
51 | 47 | | |
52 | 48 | | |
53 | 49 | | |
| |||
139 | 135 | | |
140 | 136 | | |
141 | 137 | | |
142 | | - | |
143 | | - | |
144 | | - | |
145 | | - | |
146 | | - | |
147 | | - | |
148 | | - | |
149 | | - | |
150 | | - | |
151 | 138 | | |
152 | 139 | | |
153 | 140 | | |
| |||
197 | 184 | | |
198 | 185 | | |
199 | 186 | | |
200 | | - | |
201 | | - | |
202 | | - | |
203 | | - | |
204 | | - | |
205 | | - | |
206 | | - | |
207 | | - | |
208 | | - | |
209 | | - | |
210 | | - | |
211 | | - | |
212 | | - | |
213 | | - | |
214 | 187 | | |
215 | 188 | | |
216 | 189 | | |
| |||
232 | 205 | | |
233 | 206 | | |
234 | 207 | | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
235 | 211 | | |
236 | | - | |
237 | | - | |
238 | 212 | | |
239 | 213 | | |
240 | 214 | | |
| |||
261 | 235 | | |
262 | 236 | | |
263 | 237 | | |
264 | | - | |
265 | | - | |
266 | | - | |
267 | | - | |
268 | 238 | | |
269 | 239 | | |
270 | 240 | | |
| |||
524 | 494 | | |
525 | 495 | | |
526 | 496 | | |
527 | | - | |
528 | | - | |
529 | | - | |
530 | | - | |
531 | | - | |
532 | | - | |
533 | | - | |
534 | | - | |
535 | | - | |
536 | | - | |
537 | | - | |
538 | | - | |
539 | | - | |
540 | | - | |
541 | 497 | | |
542 | | - | |
| 498 | + | |
543 | 499 | | |
544 | 500 | | |
545 | | - | |
546 | 501 | | |
547 | | - | |
548 | | - | |
549 | | - | |
550 | | - | |
| 502 | + | |
551 | 503 | | |
552 | 504 | | |
553 | 505 | | |
554 | | - | |
555 | | - | |
556 | | - | |
557 | | - | |
558 | | - | |
559 | | - | |
560 | | - | |
561 | | - | |
562 | | - | |
563 | | - | |
564 | | - | |
565 | | - | |
566 | | - | |
567 | | - | |
568 | | - | |
569 | | - | |
570 | | - | |
571 | | - | |
572 | | - | |
573 | | - | |
574 | 506 | | |
575 | 507 | | |
576 | 508 | | |
| |||
666 | 598 | | |
667 | 599 | | |
668 | 600 | | |
669 | | - | |
670 | | - | |
671 | | - | |
672 | | - | |
673 | | - | |
674 | | - | |
675 | | - | |
676 | | - | |
677 | | - | |
678 | | - | |
679 | | - | |
680 | 601 | | |
681 | 602 | | |
682 | 603 | | |
| |||
824 | 745 | | |
825 | 746 | | |
826 | 747 | | |
827 | | - | |
828 | | - | |
829 | | - | |
830 | | - | |
831 | | - | |
832 | | - | |
833 | | - | |
834 | | - | |
835 | | - | |
836 | | - | |
837 | | - | |
838 | | - | |
839 | | - | |
840 | | - | |
841 | | - | |
842 | | - | |
843 | | - | |
844 | | - | |
845 | | - | |
846 | | - | |
847 | | - | |
848 | | - | |
849 | | - | |
850 | | - | |
851 | | - | |
852 | | - | |
853 | | - | |
854 | | - | |
855 | | - | |
| 748 | + | |
856 | 749 | | |
857 | 750 | | |
858 | 751 | | |
| |||
0 commit comments