In the timeline, a message group's avatar lines up with the first message bubble instead of the sender's name, so it sits one byline lower than the name it belongs to.
Cause
In GroupAvatar (packages/ui/src/components/timeline/timeline.tsx), the avatar column gets paddingBlockStart: BYLINE_HEIGHT + HEADER_GAP whenever the group has a byline. That pushes the avatar below the byline and level with the first bubble. The minimum row height in packages/ui/src/components/timeline/layout.ts (AVATAR_NUDGE + BYLINE_HEIGHT + HEADER_GAP + AVATAR) depends on that offset.
Expected
- The avatar's top lines up with the sender's byline (name, agent label, and time) for both human and agent groups.
- The row height calculation in
layout.ts matches the new position, so one-line groups don't clip the avatar and don't add extra space.
- System rows that use
AVATAR_NUDGE and prCommentGlyphOffset (commits, PRs, terminal) stay aligned with message rows.
(I couldn't attach a screenshot because of #91.)
Part of #5.
In the timeline, a message group's avatar lines up with the first message bubble instead of the sender's name, so it sits one byline lower than the name it belongs to.
Cause
In
GroupAvatar(packages/ui/src/components/timeline/timeline.tsx), the avatar column getspaddingBlockStart: BYLINE_HEIGHT + HEADER_GAPwhenever the group has a byline. That pushes the avatar below the byline and level with the first bubble. The minimum row height inpackages/ui/src/components/timeline/layout.ts(AVATAR_NUDGE + BYLINE_HEIGHT + HEADER_GAP + AVATAR) depends on that offset.Expected
layout.tsmatches the new position, so one-line groups don't clip the avatar and don't add extra space.AVATAR_NUDGEandprCommentGlyphOffset(commits, PRs, terminal) stay aligned with message rows.(I couldn't attach a screenshot because of #91.)
Part of #5.