Skip to content

feat(web): Corbit avatars in sidebar and transcript with live-turn and reply-ready indicators (CL-8475) - #894

Merged
TheGreatAxios merged 1 commit into
mainfrom
cl-8475-avatars-live-state
Sep 18, 2026
Merged

TheGreatAxios merged 1 commit into
mainfrom
cl-8475-avatars-live-state

Conversation

@TheGreatAxios

Copy link
Copy Markdown
Contributor

Summary

  • Sidebar chat rows, the chat transcript, and the room timeline/participant list now render a real avatar in every .shell-ch-avatar slot: CorbitAvatar for agents, a pastel initials chip (hashed off the principal id via avatarColorForPrincipal/avatarClassForPrincipal) for people — via a new shared IdentityAvatar helper in apps/web/src/chat/avatar.tsx.
  • Restored the sidebar reply-ready indicator: a chat's newest turn is tracked (ChatSummary.lastAuthor/lastMessageId in apps/web/src/chat/threads-api.ts), and an unseen agent reply shows the existing .shell-ch-completion check badge plus a polite live-region announcement, clearing when the chat is opened (markChatSeen, tracked per-viewer in localStorage).
  • The CSS for the orbit/completion indicators and reduced-motion collapse in apps/web/src/app.css was already present on this branch (from the original PR's changes surviving); no CSS changes were needed.

Not implemented

  • The "agent turn in flight" (orange orbit) indicator is not restored: no signal for it is derivable from the mailbox data the client reads (ChatAgent/mail turns carry no in-flight/pending state). Only the reply-ready half of the original indicator is implemented, as called out in the task.

Verified

  • bunx tsc -p apps/web --noEmit
  • bun run lint
  • bun run fmt
  • cd apps/web && bun run build
  • cd apps/web && bun test ./src (584 pass) — note: bun test apps/web/src from the repo root fails on DOM globals because it skips apps/web's bunfig; running from apps/web (or via bun run test, which builds first) is required.

Not verified

  • No manual browser check (dev stack was not started per instructions).

Worth upstreaming to corbitsdev/react-ui

  • IdentityAvatar (agent-vs-person avatar resolution) and the underlying CorbitAvatar/avatarColorForPrincipal pastel-initials pattern in apps/web/src/chat/avatar.tsx look like a reusable "identity avatar" primitive rather than workbench-specific composition.

@linear-code

linear-code Bot commented Sep 18, 2026

Copy link
Copy Markdown

CL-8475

…d reply-ready indicators (CL-8475)

Wire CorbitAvatar/IdentityAvatar into the sidebar chat rows, chat transcript, and room timeline/participant list, and restore the sidebar reply-ready indicator (unread agent reply, cleared on open) using existing chat-summary data. A turn-in-flight signal isn't derivable from the mailbox data available on the client, so only reply-ready is implemented.
@TheGreatAxios
TheGreatAxios force-pushed the cl-8475-avatars-live-state branch from 3631041 to 2faecdd Compare September 18, 2026 07:12
@TheGreatAxios
TheGreatAxios merged commit 2f6943e into main Sep 18, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant