diff --git a/apps/desktop/src/app/chat/composer/status-stack/coding-row.tsx b/apps/desktop/src/app/chat/composer/status-stack/coding-row.tsx index 51325e3e8ab38..5b69b2938119f 100644 --- a/apps/desktop/src/app/chat/composer/status-stack/coding-row.tsx +++ b/apps/desktop/src/app/chat/composer/status-stack/coding-row.tsx @@ -220,6 +220,11 @@ export const CodingStatusRow = memo(function CodingStatusRow({ } >
+ {/* PR number first, right against the leading git glyph — the chip + borrows that icon instead of carrying a second one of its own + (`showIcon={false}`), so the row reads glyph → #number → branch. */} + {pr && } + {/* Branch name — the other half of the review-pane target. `contents` so the button lays out nothing of its own: the label stays the same flex child it always was, and the hit area is the text. */} @@ -229,8 +234,6 @@ export const CodingStatusRow = memo(function CodingStatusRow({ - {pr && } - {/* Worktree path + copy — plain muted text, not a chip. Always in the flex so hover doesn't reflow the row; opacity alone reveals the pair. The path sizes to its content (the `flex-1` lives on the diff --git a/apps/desktop/src/app/chat/pr-tag.tsx b/apps/desktop/src/app/chat/pr-tag.tsx index 723be8588293a..bf0a5c1c94b19 100644 --- a/apps/desktop/src/app/chat/pr-tag.tsx +++ b/apps/desktop/src/app/chat/pr-tag.tsx @@ -22,8 +22,18 @@ export function openPullRequest(pr: HermesBranchPullRequest): void { /** The branch's PR as a row chip: state glyph plus number, tooltipped with the * title, and a link to the PR on click. Identity like {@link ProfileTag} — - * never a status dot. */ -export function PrTag({ className, pr }: { className?: string; pr: HermesBranchPullRequest }) { + * never a status dot. `showIcon={false}` drops the glyph for rows that already + * lead with a git icon the number can sit against (the composer's coding row), + * so the chip doesn't stack a second one beside it. */ +export function PrTag({ + className, + pr, + showIcon = true +}: { + className?: string + pr: HermesBranchPullRequest + showIcon?: boolean +}) { const style = PR_STYLE[pullRequestBucket(pr)] ?? PR_STYLE.open return ( @@ -51,8 +61,9 @@ export function PrTag({ className, pr }: { className?: string; pr: HermesBranchP onPointerDown={event => event.stopPropagation()} type="button" > - - {pr.number} + {showIcon && } + {/* Without the glyph the number needs the `#` to still read as a PR. */} + {showIcon ? pr.number : `#${pr.number}`} )