githubnext/ace2Public

Ace: a collaborative coding environment on the team's own machines

Show GitHub profile avatars for participants

IA

GitHub profile avatars don't show anywhere in the desktop UI. The account menu in the nav footer and the avatars beside human messages in the timeline both show initials instead.

## Cause

Ace identifies people by their Tailscale login (`catalog.user` in `apps/host/src/catalog.ts`), such as `someone@gmail.com`, and never resolves a GitHub login for them. The UI components can already render GitHub avatars, but the app gives them nothing to render:

- `apps/app/src/navigation.tsx` renders `<UserMenu name={user} />` without `handle`, so `UserMenu` never builds `format.avatar(handle)`. - `apps/app/src/conversation.tsx` renders `<Timeline>` without `avatars`, so `timeline.tsx` finds no `src` for a message group. `toEvents` in `apps/app/src/timeline.ts` also sets the display name to the part of the email before the `@`, which isn't necessarily a GitHub login.

## Expected

- The host resolves its owner's GitHub login (it already uses `gh`, see `apps/host/src/github.ts`) and gives it to clients. - The account menu shows the owner's GitHub avatar. - Timeline messages show each author's GitHub avatar, including teammates on other hosts. That means hosts publish their GitHub login together with their Tailscale login (`apps/host/src/directory.ts`), so other clients can map a message author to an avatar. - When a host has no signed-in `gh`, Ace keeps showing initials.

Part of #5.

  1. iamnbutlerparent-issue-addedlast month on GitHub

  2. iamnbutlerreferenced this in [Meta] Dogfood Ace end to end #5last month on GitHub

  3. iamnbutlerreferenced this in feat(host): show GitHub avatars for participants #116last month on GitHub

  4. iamnbutlerclosedlast month on GitHub