From 7d7f55e4be07f7157e108d400fba2ab02b36c7c8 Mon Sep 17 00:00:00 2001 From: Dotta <34892728+cryppadotta@users.noreply.github.com> Date: Mon, 12 Oct 2026 23:54:01 -0500 Subject: [PATCH] fix(apps): show user avatars and center access rows (#15577) ## Thinking Path > - Paperclip helps people manage AI agents and their access to apps. > - The app access page shows people with linked chat accounts. > - The identity response omitted the user's saved image. > - The row placed the avatar beside only the first name line. > - This change returns the image and centers the avatar beside both name lines. > - People can recognize linked accounts and still see initials when no image is available. ## Linked Issues or Issue Description **What happened?** The app access page showed initials even when the linked Paperclip user had a profile image. The avatar was above the vertical center of the Disconnect button. **Expected behavior** Show the linked user's saved image. Center it beside the Paperclip and chat names. Keep initials when no image is available. **Steps to reproduce** 1. Link a Slack account to a Paperclip user with a profile image. 2. Open the app's Access tab. 3. Inspect the person's avatar and the two name lines. Searched public issues and pull requests. No duplicate fix was found. Related avatar work in #15095 concerns agent uploads, not linked user profiles. ## What Changed - Return `paperclipUserImage` from the chat principal service and declare it in the API and client types. - Use the shared avatar primitives and center the avatar beside the full name block. Keep full names available in hover text. - Add image and initials examples to the existing Storybook access story, with image and alignment checks. - Extend the service test to check saved images and missing images. ## Verification - Token gates and `git diff --check` pass. - The 33 existing chat setup and identity-link UI tests pass. - The OAuth installer service regression test passes. - Chromium rendered the Storybook Access story at desktop and mobile sizes. The avatar, name block, and Disconnect button centers all measured 307 CSS pixels on desktop. - UI typecheck passes. Full repository typecheck and build stop at the Rust runner because this workspace has no `cargo`. The initial parallel typecheck also exceeded the 4 GiB workspace limit. The full local test attempt was stopped as memory approached the 4 GiB limit; it has no complete verdict. CI passed the full build, typecheck, test, and E2E lanes on the initial commit. The previously reviewed commit passed 54 checks with two intentionally skipped Storybook checks. Master was merged on October 10 to resolve an import conflict; fresh CI is running for `24badb742d331c1b6ee3e90cbd06defefe5cd634`. Token gates and whitespace checks pass after conflict resolution. The single retry after CI runner shutdowns passed. Greptile gives this commit 5/5, with both review threads resolved. ### Screenshots The Storybook fixture shows an image, fallback initials, and a pending account. ![Desktop access rows](https://raw.githubusercontent.com/paperclipai/paperclip/fix/app-access-user-avatar/doc/screenshots/app-access-avatar/desktop.png) ![Mobile access rows](https://raw.githubusercontent.com/paperclipai/paperclip/fix/app-access-user-avatar/doc/screenshots/app-access-avatar/mobile.png) ## Risks Low risk. The API field is additive and needs no migration. The image uses the same avatar primitive as other user identities. Missing or failed images retain the initials fallback. Other chat providers share this access row. ## Model Used OpenAI Codex, GPT-6. Tool use and code execution. The runtime does not expose a more specific model ID or context window size. ## Checklist - [x] I have included a thinking path that traces from project context to this change - [x] I have specified the model used (with version and capability details) - [x] I have checked ROADMAP.md and confirmed this PR does not duplicate planned core work - [x] I have searched GitHub for duplicate or related PRs and linked them above - [x] I have either (a) linked existing issues with `Fixes: #` / `Closes #` / `Refs #` OR (b) described the issue in-PR following the relevant issue template - [x] I have not referenced internal/instance-local Paperclip issues or links (only public GitHub `#NNN` / `github.com/paperclipai/paperclip` URLs) - [x] My branch name describes the change (e.g. `docs/...`, `fix/...`) and contains no internal Paperclip ticket id or instance-derived details - [x] I have run tests locally and they pass - [x] I have added or updated tests where applicable - [x] I have updated relevant documentation to reflect my changes - [x] I have considered and documented any risks above - [ ] All Paperclip CI gates are green - [x] Greptile is 5/5 with no open P2s, recommendations, or follow-ups - [x] I will address all Greptile and reviewer comments before requesting merge --------- Co-authored-by: Paperclip --- doc/screenshots/app-access-avatar/README.md | 19 +++++++++++++ doc/screenshots/app-access-avatar/desktop.png | Bin 0 -> 65248 bytes doc/screenshots/app-access-avatar/mobile.png | Bin 0 -> 34172 bytes packages/shared/src/types/chat-channels.ts | 1 + .../chat-channels.integration.test.ts | 5 +++- server/src/routes/openapi.ts | 1 + .../services/chat-channels/identity-links.ts | 2 ++ ui/src/api/chatEndpoints.ts | 1 + ui/src/pages/apps/chat/ChatEndpointDetail.tsx | 23 ++++++++++------ .../chat-management.stories.tsx | 25 +++++++++++++++--- 10 files changed, 65 insertions(+), 12 deletions(-) create mode 100644 doc/screenshots/app-access-avatar/README.md create mode 100644 doc/screenshots/app-access-avatar/desktop.png create mode 100644 doc/screenshots/app-access-avatar/mobile.png diff --git a/doc/screenshots/app-access-avatar/README.md b/doc/screenshots/app-access-avatar/README.md new file mode 100644 index 00000000000..cce5d0be7a1 --- /dev/null +++ b/doc/screenshots/app-access-avatar/README.md @@ -0,0 +1,19 @@ +# App access user avatars + +Storybook: **Connections / Chat management / 2 · People and access** +(`connections-chat-management--access`). + +These screenshots show the production access component with synthetic fixture +accounts: a linked account with an image, a linked account without an image, +and an account waiting for confirmation. The image fixture is an existing +Cliptoon asset used as a deterministic profile image; it is not a real person's +photo. + +The avatar is centered beside both the Paperclip name and the Slack name, at +the same vertical center as Disconnect. Missing or failed images retain initials. +Truncated Paperclip names retain their full text in the native hover tooltip. + +- [Desktop, 1280 × 900](desktop.png) +- [Mobile, 390 × 844](mobile.png) + +The Access story checks image loading, initials, hover text, and vertical alignment. diff --git a/doc/screenshots/app-access-avatar/desktop.png b/doc/screenshots/app-access-avatar/desktop.png new file mode 100644 index 0000000000000000000000000000000000000000..9d56372f29a94c7dd11fde6a4c53e205a799ec1c GIT binary patch literal 65248 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≪&3j0@0zNr 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%0AGYm2B_NV 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 kx { expect(saved.setup.webhookVerifiedAt).toBeNull(); expect(saved.providerAccountId).toBe("TAUTO"); expect(saved.setup.slackAccount).toEqual({ externalUserId: f.installerId, paperclipUserId: actor.userId, status: "linked", welcomeStatus: "sent", dmChannelId: "DWELCOME" }); - expect(await f.service.listPrincipals(f.endpoint.id)).toEqual([expect.objectContaining({ status: "linked", paperclipUserId: actor.userId })]); + expect(await f.service.listPrincipals(f.endpoint.id)).toEqual([expect.objectContaining({ status: "linked", paperclipUserId: actor.userId, paperclipUserImage: null })]); + await db.update(authUsers).set({ image: "https://example.test/installer.png" }).where(eq(authUsers.id, actor.userId)); + expect(await f.service.listPrincipals(f.endpoint.id)).toEqual([expect.objectContaining({ paperclipUserImage: "https://example.test/installer.png" })]); + await db.update(authUsers).set({ image: null }).where(eq(authUsers.id, actor.userId)); const [, welcome] = f.provider.mock.calls.find(([url]) => String(url).endsWith("chat.postMessage"))!; expect(new URLSearchParams(String(welcome!.body)).get("channel")).toBe(f.installerId); expect(new URLSearchParams(String(welcome!.body)).get("text")).toMatch(/^Hi, I’m .+\. Your Slack account is connected to Paperclip\.$/); diff --git a/server/src/routes/openapi.ts b/server/src/routes/openapi.ts index 6efc1b198cd..25b6c7278f0 100644 --- a/server/src/routes/openapi.ts +++ b/server/src/routes/openapi.ts @@ -910,6 +910,7 @@ const chatPrincipalLinkResponseSchema = z externalDetail: z.string(), paperclipUserId: z.string().nullable(), paperclipUserLabel: z.string().nullable(), + paperclipUserImage: z.string().nullable(), status: chatIdentityLinkStatusSchema, }) .strict(); diff --git a/server/src/services/chat-channels/identity-links.ts b/server/src/services/chat-channels/identity-links.ts index 47596405f3a..b45ee22db66 100644 --- a/server/src/services/chat-channels/identity-links.ts +++ b/server/src/services/chat-channels/identity-links.ts @@ -56,6 +56,7 @@ export function createChatIdentityLinks(db: Db, options: ChatIdentityLinkOptions id: authUsers.id, name: authUsers.name, email: authUsers.email, + image: authUsers.image, }) .from(authUsers) .where(inArray(authUsers.id, userIds)) @@ -80,6 +81,7 @@ export function createChatIdentityLinks(db: Db, options: ChatIdentityLinkOptions : principal.externalId, paperclipUserId: link?.paperclipUserId ?? null, paperclipUserLabel: user?.name ?? user?.email ?? null, + paperclipUserImage: user?.image ?? null, status: link?.status ?? "pending", lastConnectAt: connectByPrincipal.get(principal.id) ?? null, }; diff --git a/ui/src/api/chatEndpoints.ts b/ui/src/api/chatEndpoints.ts index 79e0c43b15f..d50a6756c3b 100644 --- a/ui/src/api/chatEndpoints.ts +++ b/ui/src/api/chatEndpoints.ts @@ -59,6 +59,7 @@ export interface ChatIdentityLink { externalDetail?: string | null; paperclipUserId?: string | null; paperclipUserLabel?: string | null; + paperclipUserImage?: string | null; status: "linked" | "pending" | "revoked"; } diff --git a/ui/src/pages/apps/chat/ChatEndpointDetail.tsx b/ui/src/pages/apps/chat/ChatEndpointDetail.tsx index 3544343a539..2c07fc4d894 100644 --- a/ui/src/pages/apps/chat/ChatEndpointDetail.tsx +++ b/ui/src/pages/apps/chat/ChatEndpointDetail.tsx @@ -1,8 +1,9 @@ +import { deriveInitials } from "@/components/Identity"; +import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar"; import { agentAvatarUrl } from "@/lib/agent-avatar-url"; import { resolveAgentAppearance } from "@paperclipai/shared"; import { SlackTestMessageButton } from "./SlackTestMessageButton"; import { AgentAvatar } from "@/components/AgentAvatar"; -import { Identity } from "@/components/Identity"; import { SlackSetupAdvanced } from "./SlackAppDetails"; import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle, DialogTrigger } from "@/components/ui/dialog"; import { SlackToolsSettings, SlackSearchAccess } from "./SlackToolSettings"; @@ -782,13 +783,19 @@ function Access({ role="listitem" className="flex flex-wrap items-center gap-3 py-3" > -
- - {(link.status !== "linked" || link.externalLabel !== link.paperclipUserLabel) &&

- {link.status === "revoked" ? "Disconnected" : link.status === "linked" - ? link.externalLabel - : "Waiting for account confirmation"} -

} +
+ +
+

{link.paperclipUserLabel ?? link.externalLabel}

+ {(link.status !== "linked" || link.externalLabel !== link.paperclipUserLabel) &&

+ {link.status === "revoked" ? "Disconnected" : link.status === "linked" + ? link.externalLabel + : "Waiting for account confirmation"} +

} +
{link.status === "linked" ? (