feat(FN-3551): add persistent approval notification banner

- Add ApprovalNotificationBanner component and integrate it in App task flow
- Define approval trigger contract and persist banner dismissal state across refreshes
- Deduplicate approval notifications so repeated approvals do not re-show dismissed alerts
- Add App/banner tests and update dashboard docs for approval banner behavior

Fusion-Task-Id: FN-3551
This commit is contained in:
Fusion
2026-05-09 06:36:55 -07:00
committed by gsxdsm
parent 3026bccc81
commit 409e18d70a
7 changed files with 413 additions and 3 deletions

View File

@@ -124,6 +124,7 @@ Mailbox view shows inbox/outbox communication threads and unread state.
- mailbox now includes an **Approvals** tab with pending and history filters (`approved` / `denied` / `completed`), approval detail context, and inline approve/deny actions for pending requests
- mailbox entry points now show pending-approval indicators: Header mailbox toggle dot, Header overflow mailbox badge, Mobile mailbox tab dot, and Mobile More → Mailbox badge
- approval lifecycle SSE events (`approval:requested`, `approval:updated`, `approval:decided`) trigger mailbox approvals refresh without manual reload
- when a task newly enters `awaiting-approval`, the app shows a persistent approval banner above project content with an **Open Mailbox** CTA; dismissals are remembered per approval item until that item advances or a different one arrives
- Visible message history/threading is driven by explicit `message.metadata.replyTo.messageId` links
- Separate top-level messages from the same sender remain independent in the inbox and detail pane