Submatter/plans/Plan-workspace-communications/Epic-unified-notifications/Task-notification-producers-and-preferences.md

2 KiB

kind slug title plan_slug epic_slug status priority tenant_id owner cursor_todo_id updated_at
task notification-producers-and-preferences Connect notification producers, preferences, inbox, and badges workspace-communications unified-notifications ready P1 global unassigned null 2026-10-22

Task summary

Build the inbox UI and map chat and operational events into preference-aware notifications and badges.

Description

Add notification preferences by category and channel, then produce notifications for chat mentions/replies/direct messages, task assignments, human gates, and agent outcomes. Present one global inbox while retaining a chat-specific badge in the left rail. Existing gate inbox state remains authoritative and is projected into notifications.

Subtasks

  • Add notification_preferences schema, defaults, and update procedures.
  • Add outbox consumers that map domain events to recipient notifications.
  • Build /[workspaceSlug]/inbox with filters, grouping, deep links, and bulk read/archive.
  • Add global and Chat rail badges backed by durable unread counts.

Owner or assignee

unassigned

Status

ready

Estimation

L

Acceptance criteria

  • Recipient production, inbox previews, deep links and unread counts apply current workspace AND context AND channel permissions; membership/ACL revocation hides inaccessible content and stops delivery without leaking private-context titles.

  • Mention, reply, assignment, gate, and agent-result events create correct recipient notifications.

  • Preference changes affect future delivery without deleting inbox history.

  • Rail badges converge to server truth after reconnect and multi-device reads.

  • Existing convoy/gate workflows remain functional and are not duplicated as domain records.

  • pnpm lint && pnpm type-check && pnpm test pass.

  • Epic: ./Epic-unified-notifications.md
  • Plan: ../Plan-workspace-communications.md