Libra CodeHub

CedarCopilot/cedar-mail

Branch: staging

Compose the unified inbox in the client, and add a setup flow that previews it

merged#2641CedarCopilot

CedarCopilot wants to merge 3 commits into staging from feat/inbox-client-composed-feed

109 files changed

Libra does not show diffs here. View the full diff on GitHub.

  • modifiedapps/mail/app/(auth)/login/login-client.tsx+42-4
  • addedapps/mail/app/(full-width)/onboarding-setup/page.tsx+21-0
  • modifiedapps/mail/app/routes.ts+1-0
  • modifiedapps/mail/docs/inbox-triage.md+154-75
  • addedapps/mail/docs/onboarding-setup-flow.md+141-0
  • addedapps/mail/docs/wiki/unified-feed-composition.md+169-0
  • modifiedapps/mail/modules/conversations/components/LeftSidebarContent.tsx+9-1
  • modifiedapps/mail/modules/conversations/components/WhatsAppChannelLinkDialog.tsx+1-1
  • modifiedapps/mail/modules/debugger/components/InboxDebuggerTab.tsx+32-18
  • modifiedapps/mail/modules/debugger/components/MailDebuggerPanel.tsx+2-1
  • modifiedapps/mail/modules/drafting/components/email-composer.tsx+2-1
  • modifiedapps/mail/modules/inbox/components/ChannelThreadView.tsx+19-1
  • modifiedapps/mail/modules/inbox/components/InboxList.tsx+11-9
  • modifiedapps/mail/modules/inbox/hooks/use-channel-artifact-item.ts+7-6
  • modifiedapps/mail/modules/inbox/hooks/use-inbox-item-actions.ts+4-2
  • modifiedapps/mail/modules/inbox/hooks/use-inbox-items.ts+319-56
  • modifiedapps/mail/modules/inbox/hooks/use-open-channel-item.ts+6-5
  • modifiedapps/mail/modules/inbox/hooks/use-slack-sync-on-load.ts+1-1
  • modifiedapps/mail/modules/inbox/store/inboxSlice.ts+119-46
  • modifiedapps/mail/modules/inbox/types.ts+16-12
  • addedapps/mail/modules/onboarding/setup/SetupFlow.tsx+152-0
  • addedapps/mail/modules/onboarding/setup/components/SettingRow.tsx+66-0
  • addedapps/mail/modules/onboarding/setup/components/SetupPreviewContext.tsx+28-0
  • addedapps/mail/modules/onboarding/setup/components/SetupPreviewFrame.tsx+35-0
  • addedapps/mail/modules/onboarding/setup/components/SetupRail.tsx+128-0
  • addedapps/mail/modules/onboarding/setup/components/SplitTemplateGallery.tsx+79-0
  • addedapps/mail/modules/onboarding/setup/constants.ts+71-0
  • addedapps/mail/modules/onboarding/setup/hooks/use-setup-pipeline.ts+121-0
  • addedapps/mail/modules/onboarding/setup/hooks/use-setup-settings.ts+43-0
  • addedapps/mail/modules/onboarding/setup/hooks/use-setup-splits.ts+119-0
  • addedapps/mail/modules/onboarding/setup/hooks/use-setup-task-groups.ts+132-0
  • addedapps/mail/modules/onboarding/setup/index.ts+3-0
  • addedapps/mail/modules/onboarding/setup/preview/LiveInboxPreview.tsx+153-0
  • addedapps/mail/modules/onboarding/setup/preview/PreviewInbox.tsx+186-0
  • addedapps/mail/modules/onboarding/setup/preview/mock-threads.ts+150-0
  • addedapps/mail/modules/onboarding/setup/steps/InboxDisplayStep.tsx+96-0
  • addedapps/mail/modules/onboarding/setup/steps/LiveInboxStep.tsx+47-0
  • addedapps/mail/modules/onboarding/setup/steps/PipelineStep.tsx+102-0
  • addedapps/mail/modules/onboarding/setup/steps/SubInboxStep.tsx+46-0
  • addedapps/mail/modules/onboarding/setup/steps/TasksStep.tsx+141-0
  • addedapps/mail/modules/onboarding/setup/steps/WelcomeStep.tsx+56-0
  • addedapps/mail/modules/onboarding/setup/steps/index.ts+23-0
  • addedapps/mail/modules/onboarding/setup/types.ts+41-0
  • modifiedapps/mail/modules/threads/components/SplitInboxTabs.tsx+23-4
  • modifiedapps/mail/modules/threads/hooks/use-inbox-compiled-queries.ts+3-3
  • modifiedapps/mail/modules/threads/hooks/use-inboxes.ts+78-10
  • addedapps/mail/modules/threads/hooks/use-route-inbox.ts+75-0
  • addedapps/mail/modules/threads/lib/route-inbox.ts+144-0
  • modifiedapps/mail/modules/threads/lib/unread-filter.ts+3-2
  • modifiedapps/mail/modules/threads/mail.tsx+28-28
  • modifiedapps/mail/modules/threads/threadList/hooks/use-threads.ts+29-120
  • modifiedapps/mail/modules/threads/threadList/store/threadSlice.ts+6-2
  • modifiedapps/mail/modules/threads/threadList/utils/mail-list-hotkeys.tsx+3-2
  • modifiedapps/mail/modules/userTasks/TASK_REORDERING_DESIGN.md+107-0
  • modifiedapps/mail/modules/userTasks/components/OpenTaskExecutionCard.tsx+4-4
  • modifiedapps/mail/modules/userTasks/components/TaskExecutionList.tsx+15-8
  • modifiedapps/mail/modules/userTasks/components/TaskKanbanBoard.tsx+206-75
  • modifiedapps/mail/modules/userTasks/components/TaskKanbanCard.tsx+21-8
  • modifiedapps/mail/modules/userTasks/components/TaskKanbanColumn.tsx+26-20
  • modifiedapps/mail/modules/whatsapp/components/AddToConversationPopover.tsx+1-1
  • addedapps/mail/tests/lib/inboxFeed.ts+19-0
  • modifiedapps/mail/tests/modules/inbox/channelKeyCollision.test.ts+6-9
  • addedapps/mail/tests/modules/inbox/channelThreadRemind.test.tsx+186-0
  • modifiedapps/mail/tests/modules/inbox/feedScopeGate.test.tsx+123-27
  • addedapps/mail/tests/modules/inbox/mergeWatermark.test.ts+180-0
  • modifiedapps/mail/tests/modules/inbox/openChannelItem.test.tsx+5-6
  • modifiedapps/mail/tests/modules/inbox/slackChannelHint.test.ts+6-3
  • addedapps/mail/tests/modules/inbox/unifiedInboxOrder.test.ts+120-0
  • addedapps/mail/tests/modules/onboarding/setupRail.test.tsx+66-0
  • addedapps/mail/tests/modules/onboarding/setupSteps.test.ts+52-0
  • modifiedapps/mail/tests/modules/thread/unibox-navigation-parity.test.ts+28-17
  • addedapps/mail/tests/modules/threads/inboxCreateRace.test.tsx+131-0
  • addedapps/mail/tests/modules/threads/routeInboxParity.test.tsx+279-0
  • modifiedapps/mail/tests/modules/threads/unread-filter.test.ts+3-3
  • addedapps/mail/tests/modules/userTasks/taskKanbanCardExecute.test.tsx+83-0
  • modifiedapps/mail/tests/modules/userTasks/taskKanbanSorting.test.ts+89-30
  • modifiedapps/mail/tests/modules/ux/activeViewNeverBlank.test.tsx+1-1
  • modifiedapps/server/package.json+3-1
  • modifiedapps/server/src/cli/__tests__/no-heavy-imports.test.ts+8-0
  • modifiedapps/server/src/http/app.ts+9-1
  • addedapps/server/src/lib/__tests__/auth-callback-logging.test.ts+92-0
  • addedapps/server/src/lib/auth-callback-logging.ts+50-0
  • modifiedapps/server/src/mail-admin/cli.ts+156-34
  • addedapps/server/src/mail-admin/compose-feed.ts+363-0
  • modifiedapps/server/src/services/crm/__tests__/email-threads.test.ts+81-1
  • modifiedapps/server/src/services/crm/email-threads.ts+17-20
  • modifiedapps/server/src/services/inbox/__test__/feed-core.test.ts+105-12
  • modifiedapps/server/src/services/inbox/__test__/feed-db.test.ts+198-306
  • addedapps/server/src/services/inbox/__test__/feed-merge.test.ts+215-0
  • modifiedapps/server/src/services/inbox/__test__/feed-unread-db.test.ts+135-58
  • modifiedapps/server/src/services/inbox/__tests__/feed-inbox-scope.test.ts+177-476
  • modifiedapps/server/src/services/inbox/__tests__/feed-unread-filter.test.ts+26-57
  • modifiedapps/server/src/services/inbox/channel-query.ts+1-1
  • modifiedapps/server/src/services/inbox/feed-containers.ts+51-24
  • modifiedapps/server/src/services/inbox/feed-core.ts+32-75
  • addedapps/server/src/services/inbox/feed-merge.ts+194-0
  • addedapps/server/src/services/inbox/feed-scope.ts+70-0
  • modifiedapps/server/src/services/inbox/feed.ts+70-362
  • modifiedapps/server/src/services/inbox/labels.ts+0-30
  • modifiedapps/server/src/services/inbox/types.ts+9-61
  • modifiedapps/server/src/services/mail/inboxes/inbox-definitions.ts+8-4
  • modifiedapps/server/src/services/mail/list/__tests__/route-list-threads-async-reconcile.test.ts+64-0
  • modifiedapps/server/src/services/mail/list/reconcile-dispatch.ts+41-7
  • modifiedapps/server/src/services/mail/list/route-list-threads.ts+15-1
  • addedapps/server/src/trpc/routes/__tests__/drafts-create-surfaces-in-inbox.test.ts+167-0
  • addedapps/server/src/trpc/routes/__tests__/inbox-channel-routes.test.ts+419-0
  • modifiedapps/server/src/trpc/routes/drafts.ts+8-3
  • modifiedapps/server/src/trpc/routes/inbox.ts+166-59
  • modifiedapps/server/src/trpc/routes/mail.ts+12-1