Submatter/plans/Plan-workspace-communications/Epic-workspace-chat/Task-chat-ui-and-navigation.md

2.5 KiB

kind slug title plan_slug epic_slug status priority tenant_id owner cursor_todo_id updated_at
task chat-ui-and-navigation Build chat routes and left-rail navigation workspace-communications workspace-chat ready P1 global unassigned null 2026-10-22

Task summary

Add the workspace Chat destination, channel UI, composer, and durable unread indicators to the existing application shell.

Description

Create workspace-context routes for channel selection and conversation, integrate Chat into the left icon rail, and use existing Radix/Tailwind UI primitives. Project/object entry points follow in Task-contextual-chat-authorization.md; do not imply they work yet. Show only authorized channel titles, previews, mention candidates and counts, and clear inaccessible cached content after revocation. Agent mention-to-add is a separate reviewed membership flow, not a composer side effect. The rail shows a dot when any channel sequence exceeds its durable read boundary and a numeric badge for validated mentions plus unread direct-channel activity. Badge counts come from durable server state, are refreshed by realtime events, and later transition to unified notification projections without changing the rail contract.

Subtasks

  • Add /[workspaceSlug]/chat and /[workspaceSlug]/chat/[channelSlug] routes.
  • Build channel navigation, per-channel cursor-paginated history, a minimal complete thread list/reply surface, and composer states.
  • Add Chat to the icon rail with accessible unread, mention, and direct-message indicators.
  • Advance read state only to the highest intentionally viewed sequence and reconcile changes from other devices.
  • Handle optimistic message/reply sends, retries, per-channel reconnect catch-up, empty states, keyboard navigation, and mobile layout.

Owner or assignee

unassigned

Status

ready

Estimation

L

Acceptance criteria

  • Chat is keyboard-accessible from the existing left rail.
  • Message/thread history and sequence-based unread state survive reload and multi-device use.
  • Cross-device mark-read events reconcile rail and channel indicators to durable server truth.
  • Failed optimistic messages and replies are visibly retryable and cannot silently disappear.
  • Mention badges use an accessible label and do not rely on color alone.
  • pnpm lint && pnpm type-check && pnpm test pass.
  • Epic: ./Epic-workspace-chat.md
  • Plan: ../Plan-workspace-communications.md