diff --git a/src/renderer/src/components/sidebar/WorktreeCardStatusSlot.test.tsx b/src/renderer/src/components/sidebar/WorktreeCardStatusSlot.test.tsx
index 4fdb66608..3f5d19aae 100644
--- a/src/renderer/src/components/sidebar/WorktreeCardStatusSlot.test.tsx
+++ b/src/renderer/src/components/sidebar/WorktreeCardStatusSlot.test.tsx
@@ -84,6 +84,53 @@ describe('WorktreeCardStatusSlot', () => {
expect(markup).not.toContain('text-amber-500')
})
+ it('suppresses the new-card unread badge while unread status is working', () => {
+ mocks.status = 'working'
+ const markup = renderToStaticMarkup(
+
+ )
+
+ expect(markup).toContain('Working · Unread')
+ expect(markup).toContain('border-yellow-500')
+ expect(markup).not.toContain('data-worktree-status-lane-unread=""')
+ expect(markup).not.toContain('data-worktree-unread-alert=""')
+ expect(markup).not.toContain('aria-label="Mark as read"')
+ expect(markup).not.toContain('lucide-bell')
+ expect(markup).not.toContain('text-amber-500')
+ })
+
+ it('keeps legacy unread working cards on the unread bell control', () => {
+ mocks.status = 'working'
+ const markup = renderToStaticMarkup(
+
+ )
+
+ expect(markup).toContain('aria-label="Mark as read"')
+ expect(markup).toContain('Mark as read')
+ expect(markup).toContain('Working')
+ expect(markup).toContain('text-amber-500')
+ expect(markup).not.toContain('border-yellow-500')
+ expect(markup).not.toContain('data-worktree-unread-alert=""')
+ })
+
it('shows status in the unread toggle affordance', () => {
const markup = renderToStaticMarkup(
const passiveStatus =
@@ -173,7 +176,7 @@ export function WorktreeCardStatusSlot({
}
if (!unreadActionEnabled) {
- return overlayNewCardUnreadStatus(passiveStatus, newCardStyle && isUnread && showStatus)
+ return overlayNewCardUnreadStatus(passiveStatus, showNewCardUnreadAlert)
}
const actionLabel = isUnread ? 'Mark as read' : 'Mark as unread'