mirror of
https://github.com/paperclipai/paperclip.git
synced 2026-10-26 10:26:26 +01:00
Rework the What-needs-me queue around the approved PAP-13401 plan (§1, §2, curtains from §6, left-align from §9): - lib/attention.ts: date-first grouping (Today/Yesterday/This week/Earlier), Type/Project/Severity group-by, newest/oldest sort, and type/project/ workspace/severity filters — all pure functions with localStorage helpers mirroring the InboxWorkItemGroupBy pattern. Re-buckets client-side (no refetch). - WhatNeedsMe.tsx: Inbox-language toolbar (ListFilter / Layers / ArrowUpDown popovers), collapsible group sections via the shared IssueGroupHeader with counts, and Snoozed(n)/Dismissed(n) curtains listing hidden rows (fetched with includeDismissed=true) with Restore + snooze reappear time. Fetches under a distinct query key so dismissed rows never inflate the sidebar badge. Left-aligned container (dropped mx-auto). - AttentionQueueRow.tsx: snooze presets submenu + dismiss on active rows; "hidden" variant renders curtain rows with Restore and reappear time. - inboxDismissals API + useInboxDismissals hook: add snooze + restore, and invalidate the attention feed on any dismiss/snooze/restore. - Tests: 20+ new cases covering sort/date-bucket/group/filter/options. Backfilled fixtures for T1's new required fields (dismissal, project, workspace, detail, InboxDismissal.kind/snoozedUntil). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>