Replace the severity-based row accent with one canonical type→color map in
lib/attention.ts, sourced from IssueThreadInteractionCard's palette (sky
confirmations/questions/verdicts, violet plan approvals, rose failures, amber
blocked/recovery/budget, neutral join requests). Severity is demoted to a small
Critical/High badge only.
AttentionQueueRow:
- Whole collapsed header toggles expand (role=button, aria-expanded, Enter/Space);
navigation only via the identifier link / Open button / links in the card.
- Collapsed inline rows surface decision-verb buttons that expand the card.
- Richer 2-line detail line from T1's structured detail block (questions,
suggested tasks, failures, budget, plan/confirmation excerpts).
- Project/workspace chips with click-to-filter into the toolbar filter state.
- Image thumbnail stack (≤3 + "+n") when detail.images is non-empty.
- Snooze presets (1h / 4h / tomorrow morning / next week) + custom date-time;
Dismiss shows an ~8s undo toast that restores the row in place.
Extends ToastAction with an onClick (undo) variant. Adds component tests for the
color map, detail line and fold-click behavior, plus a Storybook showcase story.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
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>
Brings the What-needs-me page + AttentionQueueRow + AttentionInteractionResolver
onto the task-org branch so the C3 per-item verdict card (PAP-13249) can wire
into it. Original commit a40c2c6ce (now in master).
Co-Authored-By: Paperclip <noreply@paperclip.ing>