From ecfc71626a908596b362a778a3b41b95ee89fc6b Mon Sep 17 00:00:00 2001 From: Julius Marminge Date: Mon, 2 Nov 2026 07:04:12 +0000 Subject: [PATCH 1/2] fix(web,mobile): grouped subagent headers keep every account badge visible In the grouped subagent header, each avatar overlapped the next and the later avatar painted over the earlier one's bottom-right account badge, so "CC" read as "CL". Earlier avatars now stack above later ones (web: descending z-index inside an isolated stack; mobile: descending zIndex), and the last avatar stays above the "+N" chip. Co-Authored-By: Claude Opus 5.5 --- .../mobile/src/features/threads/thread-subagent-group.tsx | 5 ++++- apps/web/src/components/chat/TimelineV2EventRow.tsx | 8 ++++++-- apps/web/src/components/chat/V2LifecycleRow.tsx | 3 ++- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/apps/mobile/src/features/threads/thread-subagent-group.tsx b/apps/mobile/src/features/threads/thread-subagent-group.tsx index 4a42a83c9a371..b816727379bff 100644 --- a/apps/mobile/src/features/threads/thread-subagent-group.tsx +++ b/apps/mobile/src/features/threads/thread-subagent-group.tsx @@ -150,7 +150,10 @@ export function ThreadSubagentGroup(props: { > {agents.slice(0, 3).map((agent, index) => ( - + ))} diff --git a/apps/web/src/components/chat/TimelineV2EventRow.tsx b/apps/web/src/components/chat/TimelineV2EventRow.tsx index e69ffdbaffdd4..fcd6fd6d19bd8 100644 --- a/apps/web/src/components/chat/TimelineV2EventRow.tsx +++ b/apps/web/src/components/chat/TimelineV2EventRow.tsx @@ -51,6 +51,9 @@ export function V2EventTimelineRow({ row }: { row: Extract - - {agents.slice(0, 3).map(({ item, status }) => ( + + {agents.slice(0, 3).map(({ item, status }, index) => ( Date: Wed, 11 Nov 2026 11:14:20 +0000 Subject: [PATCH 2/2] fix(web): grouped subagent account badges paint above every avatar Paint order alone left the middle badge clipped: a two-letter compact badge is wider than the part of its circle the neighbours leave uncovered. Badges now escape the icon's stacking context and sit above all circles in the header, and the overlap drops from 6px to 4px so wide initials no longer touch the next badge. AI-assisted; verified with the tests and tools listed above. --- apps/web/src/components/chat/TimelineV2EventRow.tsx | 8 ++------ apps/web/src/components/chat/V2LifecycleRow.tsx | 7 ++++--- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/apps/web/src/components/chat/TimelineV2EventRow.tsx b/apps/web/src/components/chat/TimelineV2EventRow.tsx index fcd6fd6d19bd8..0d3234dc1abb6 100644 --- a/apps/web/src/components/chat/TimelineV2EventRow.tsx +++ b/apps/web/src/components/chat/TimelineV2EventRow.tsx @@ -51,9 +51,6 @@ export function V2EventTimelineRow({ row }: { row: Extract - - {agents.slice(0, 3).map(({ item, status }, index) => ( + + {agents.slice(0, 3).map(({ item, status }) => ( ) : ( @@ -278,7 +280,6 @@ export function EnvironmentSubagentAvatar({ /** A task in a linked environment runs a provider instance there; its driver here is only a label. */ remote?: OrchestrationV2RemoteTaskChild | undefined; status?: OrchestrationV2TurnItem["status"] | undefined; - className?: string | undefined; }) { const providerEnvironmentId = remote?.environmentId ?? environmentId; const providersAtom = serverEnvironment.providersValueAtom(providerEnvironmentId);