From c31fcb4024cb92bd569835fb0e89eaef976a05f0 Mon Sep 17 00:00:00 2001 From: flamboh Date: Mon, 2 Nov 2026 07:02:51 +0000 Subject: [PATCH 1/3] fix(web): Snoozed and Settled rows show the PR icon, not its number --- apps/web/src/components/ThreadStatusIndicators.tsx | 9 ++++++--- apps/web/src/components/sidebar/SidebarThreadRow.tsx | 2 +- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/apps/web/src/components/ThreadStatusIndicators.tsx b/apps/web/src/components/ThreadStatusIndicators.tsx index f9c916107726c..b0627c0a26e1b 100644 --- a/apps/web/src/components/ThreadStatusIndicators.tsx +++ b/apps/web/src/components/ThreadStatusIndicators.tsx @@ -164,8 +164,11 @@ export interface ThreadPullRequestBadgePresentation { readonly more: number; } -/** Composer footers use a state glyph; sidebar rows use a mono PR number and folded-link count. */ -export type ThreadPullRequestBadgeAppearance = "glyph" | "number"; +/** + * Composer footers use a state glyph; sidebar rows use a mono PR number and folded-link count; + * short Snoozed and Settled rows use the glyph alone. + */ +export type ThreadPullRequestBadgeAppearance = "glyph" | "number" | "icon"; function resolveThreadPullRequestBadgePresentation({ badge, @@ -314,7 +317,7 @@ function PullRequestBadge({ className={cn("contents font-normal text-xs tabular-nums", presentation.toneClassName)} > - {presentation.text} + {appearance === "icon" ? null : {presentation.text}} )} diff --git a/apps/web/src/components/sidebar/SidebarThreadRow.tsx b/apps/web/src/components/sidebar/SidebarThreadRow.tsx index 07af119534e78..d315014c362ce 100644 --- a/apps/web/src/components/sidebar/SidebarThreadRow.tsx +++ b/apps/web/src/components/sidebar/SidebarThreadRow.tsx @@ -1141,7 +1141,7 @@ const SidebarThreadRow = memo(function SidebarThreadRow(props: SidebarThreadRowP } /> } - appearance="number" + appearance={variant === "slim" ? "icon" : "number"} badge={prBadgeShape} pullRequests={thread.pullRequests} number={pr?.number ?? currentLinkedPr?.number} From 31734861ee4f678eccac948f1413fb0c16cecfca Mon Sep 17 00:00:00 2001 From: flamboh Date: Mon, 2 Nov 2026 08:50:37 +0000 Subject: [PATCH 2/3] fix(web): snoozed chips drop "Until" so compact rows keep the +N PR count --- apps/web/src/components/Sidebar.tsx | 4 ++-- apps/web/src/components/ThreadStatusIndicators.tsx | 8 ++++++-- apps/web/src/components/sidebar/SidebarThreadRow.tsx | 3 ++- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/apps/web/src/components/Sidebar.tsx b/apps/web/src/components/Sidebar.tsx index c88edcca73bdd..7ef33c623b156 100644 --- a/apps/web/src/components/Sidebar.tsx +++ b/apps/web/src/components/Sidebar.tsx @@ -3497,11 +3497,11 @@ export default function Sidebar({ routeReveal }: { routeReveal: SidebarRouteReve } snoozeWakeLabelText={ section === "snoozed" && thread.snoozedUntil != null - ? `Until ${snoozeWakeShortLabel( + ? snoozeWakeShortLabel( thread.snoozedUntil, new Date(), timestampFormat, - )}` + ) : null } wokeAt={threadWokeAt(thread, { now: snoozeNow })} diff --git a/apps/web/src/components/ThreadStatusIndicators.tsx b/apps/web/src/components/ThreadStatusIndicators.tsx index b0627c0a26e1b..d13534d380f77 100644 --- a/apps/web/src/components/ThreadStatusIndicators.tsx +++ b/apps/web/src/components/ThreadStatusIndicators.tsx @@ -166,7 +166,7 @@ export interface ThreadPullRequestBadgePresentation { /** * Composer footers use a state glyph; sidebar rows use a mono PR number and folded-link count; - * short Snoozed and Settled rows use the glyph alone. + * short Snoozed and Settled rows use the glyph and folded-link count. */ export type ThreadPullRequestBadgeAppearance = "glyph" | "number" | "icon"; @@ -317,7 +317,11 @@ function PullRequestBadge({ className={cn("contents font-normal text-xs tabular-nums", presentation.toneClassName)} > - {appearance === "icon" ? null : {presentation.text}} + {appearance !== "icon" ? ( + {presentation.text} + ) : presentation.more > 0 ? ( + +{presentation.more} + ) : null} )} diff --git a/apps/web/src/components/sidebar/SidebarThreadRow.tsx b/apps/web/src/components/sidebar/SidebarThreadRow.tsx index d315014c362ce..9c17f0b028541 100644 --- a/apps/web/src/components/sidebar/SidebarThreadRow.tsx +++ b/apps/web/src/components/sidebar/SidebarThreadRow.tsx @@ -648,7 +648,7 @@ type SidebarThreadRowProps = { dropVerb: SidebarDropVerb | null; dragOverPinned: boolean; sweepAction: SidebarSweepAction | null; - // Absolute wake time ("Until 9:00", "Until Mon 9:00") for rows in the + // Absolute wake time ("9:00", "Mon 9:00") for rows in the // snoozed shelf. snoozeWakeLabelText: string | null; wokeAt: string | null; @@ -1367,6 +1367,7 @@ const SidebarThreadRow = memo(function SidebarThreadRow(props: SidebarThreadRowP {variantAction === "unsnooze" && props.snoozeWakeLabelText !== null ? ( + Snoozed until {props.snoozeWakeLabelText} ) : (inFolder ? isWokeStatus : isWoke) ? ( From 3983da2884fc6740f3ccdf84043b0d85caec4dd4 Mon Sep 17 00:00:00 2001 From: flamboh Date: Mon, 2 Nov 2026 09:47:52 +0000 Subject: [PATCH 3/3] fix(web): Snoozed and Settled rows drop the PR badge Co-Authored-By: Claude Opus 5.5 --- apps/web/src/components/ThreadStatusIndicators.tsx | 12 ++---------- apps/web/src/components/sidebar/SidebarThreadRow.tsx | 4 ++-- 2 files changed, 4 insertions(+), 12 deletions(-) diff --git a/apps/web/src/components/ThreadStatusIndicators.tsx b/apps/web/src/components/ThreadStatusIndicators.tsx index d13534d380f77..f7c7d965561fc 100644 --- a/apps/web/src/components/ThreadStatusIndicators.tsx +++ b/apps/web/src/components/ThreadStatusIndicators.tsx @@ -164,11 +164,7 @@ export interface ThreadPullRequestBadgePresentation { readonly more: number; } -/** - * Composer footers use a state glyph; sidebar rows use a mono PR number and folded-link count; - * short Snoozed and Settled rows use the glyph and folded-link count. - */ -export type ThreadPullRequestBadgeAppearance = "glyph" | "number" | "icon"; +export type ThreadPullRequestBadgeAppearance = "glyph" | "number"; function resolveThreadPullRequestBadgePresentation({ badge, @@ -317,11 +313,7 @@ function PullRequestBadge({ className={cn("contents font-normal text-xs tabular-nums", presentation.toneClassName)} > - {appearance !== "icon" ? ( - {presentation.text} - ) : presentation.more > 0 ? ( - +{presentation.more} - ) : null} + {presentation.text} )} diff --git a/apps/web/src/components/sidebar/SidebarThreadRow.tsx b/apps/web/src/components/sidebar/SidebarThreadRow.tsx index 9c17f0b028541..bbd4191540f46 100644 --- a/apps/web/src/components/sidebar/SidebarThreadRow.tsx +++ b/apps/web/src/components/sidebar/SidebarThreadRow.tsx @@ -1141,7 +1141,7 @@ const SidebarThreadRow = memo(function SidebarThreadRow(props: SidebarThreadRowP } /> } - appearance={variant === "slim" ? "icon" : "number"} + appearance="number" badge={prBadgeShape} pullRequests={thread.pullRequests} number={pr?.number ?? currentLinkedPr?.number} @@ -1346,7 +1346,7 @@ const SidebarThreadRow = memo(function SidebarThreadRow(props: SidebarThreadRowP Regenerating title ) : null} - {multiline ? null : prBadge} + {multiline || variant === "slim" ? null : prBadge} {sortable?.isDragging ? ( dragDestination ) : (