Libra CodeHub

CedarCopilot/cedar-mail

Branch: staging

feat(inbox): unibox keyboard parity, undo-send that restores the draft, sharper chat context

merged#2349CedarCopilot

CedarCopilot wants to merge 0 commits into staging from feat/slack-channels-entity

130 files changed

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

  • modified.env.example+10-0
  • modifiedapps/mail/app/(routes)/calendar/page.tsx+25-44
  • modifiedapps/mail/app/(routes)/settings/appearance/page.tsx+12-17
  • modifiedapps/mail/app/(routes)/settings/signature/page.tsx+27-9
  • modifiedapps/mail/app/globals.css+17-2
  • modifiedapps/mail/components/layout/AppShell.tsx+28-3
  • modifiedapps/mail/config/shortcuts.ts+38-0
  • modifiedapps/mail/docs/omni-channel-inbox.md+2-2
  • modifiedapps/mail/docs/slack-inbox-read-and-empty-channels.md+39-38
  • modifiedapps/mail/docs/url-driven-layout.md+18-0
  • modifiedapps/mail/modules/agentCanvas/components/AgendaDocument.tsx+10-19
  • modifiedapps/mail/modules/agentCanvas/components/AgendaEventBlock.tsx+45-20
  • modifiedapps/mail/modules/agentCanvas/components/EventCard.tsx+15-0
  • modifiedapps/mail/modules/calendar/calendarUtils.ts+156-73
  • modifiedapps/mail/modules/calendar/components/AllDayEventsRow.tsx+75-7
  • removedapps/mail/modules/calendar/components/CalendarDraftEditor.tsx+0-54
  • modifiedapps/mail/modules/calendar/components/CalendarEventContent.tsx+50-21
  • modifiedapps/mail/modules/calendar/components/CalendarSidebar.tsx+2-2
  • modifiedapps/mail/modules/calendar/components/CalendarView.tsx+101-12
  • modifiedapps/mail/modules/calendar/components/DayColumn.tsx+13-5
  • modifiedapps/mail/modules/calendar/components/DraggableCalendarEvent.tsx+30-21
  • addedapps/mail/modules/calendar/components/EventConversationBadge.tsx+297-0
  • modifiedapps/mail/modules/calendar/components/EventDetailsPopover.tsx+399-254
  • addedapps/mail/modules/calendar/utils/meetingEmailPrompts.ts+99-0
  • modifiedapps/mail/modules/canvas/components/CanvasRenderer.tsx+12-0
  • modifiedapps/mail/modules/canvas/components/CardListCanvasView.tsx+2-2
  • modifiedapps/mail/modules/cedar-os/__tests__/EmptyStateSuggestions.test.tsx+35-7
  • addedapps/mail/modules/cedar-os/__tests__/contextChipLabel.test.ts+40-0
  • modifiedapps/mail/modules/cedar-os/__tests__/emptyChatLayout.surfaces.test.ts+32-3
  • modifiedapps/mail/modules/cedar-os/src/cedar-os-components/chatComponents/AmbientContextChip.tsx+2-2
  • modifiedapps/mail/modules/cedar-os/src/cedar-os-components/chatComponents/ChatContextRow.tsx+19-12
  • modifiedapps/mail/modules/cedar-os/src/cedar-os-components/chatComponents/EmbeddedCedarChat.tsx+30-2
  • modifiedapps/mail/modules/cedar-os/src/cedar-os-components/chatComponents/EmptyStateSuggestions.tsx+119-36
  • modifiedapps/mail/modules/cedar-os/src/cedar-os-components/chatComponents/contextKinds.ts+20-0
  • modifiedapps/mail/modules/cedar-os/src/cedar-os-components/chatComponents/emptyChatLayout.ts+101-12
  • addedapps/mail/modules/cedar-os/src/cedar-os-components/chatComponents/provisionalPrimaryContext.ts+38-0
  • modifiedapps/mail/modules/cedar-os/src/cedar-os-components/chatInput/ChatInput.tsx+1-31
  • modifiedapps/mail/modules/cedar-os/src/cedar-os-components/chatInput/ContextBadgeRow.tsx+10-6
  • modifiedapps/mail/modules/cedar-os/src/components/chatInput/useCedarEditor.ts+15-4
  • modifiedapps/mail/modules/cedar-os/src/components/renderers/messageRenderers.tsx+93-45
  • modifiedapps/mail/modules/cedar-os/src/store/agentContext/agentContextSlice.ts+21-9
  • modifiedapps/mail/modules/conversations/components/ConversationSearchCommandBar.tsx+5-3
  • modifiedapps/mail/modules/conversations/components/LeftSidebarContent.tsx+2-2
  • addedapps/mail/modules/conversations/components/LinkThreadToConversationDialog.tsx+178-0
  • modifiedapps/mail/modules/conversations/components/OverviewDocTab.tsx+3-2
  • modifiedapps/mail/modules/conversations/components/ThreadContextCards.tsx+175-30
  • modifiedapps/mail/modules/conversations/components/strategicOverview/RecommendationsPanel.tsx+34-23
  • modifiedapps/mail/modules/conversations/components/strategicOverview/StrategicOverviewTab.tsx+174-57
  • modifiedapps/mail/modules/conversations/components/timeline/EventHoverActions.tsx+17-19
  • modifiedapps/mail/modules/conversations/components/timeline/InboxThreadList.tsx+7-0
  • modifiedapps/mail/modules/conversations/components/timeline/MeetingDetailContent.tsx+220-165
  • addedapps/mail/modules/conversations/components/timeline/MeetingProviderBadge.tsx+43-0
  • modifiedapps/mail/modules/conversations/components/timeline/NextStepsCard.tsx+85-78
  • modifiedapps/mail/modules/conversations/components/timeline/SlackThreadDisplay.tsx+11-8
  • modifiedapps/mail/modules/conversations/components/timeline/SlackThreadRow.tsx+3-3
  • modifiedapps/mail/modules/conversations/components/timeline/SlackTimelineEvent.tsx+52-32
  • modifiedapps/mail/modules/conversations/components/timeline/UniversalComposer.tsx+9-2
  • addedapps/mail/modules/conversations/components/timeline/meetingProviderDisplay.ts+50-0
  • modifiedapps/mail/modules/conversations/utils/conversation-display-hotkeys.tsx+16-0
  • modifiedapps/mail/modules/crm/types/index.ts+2-1
  • modifiedapps/mail/modules/crm/utils/time.ts+5-2
  • modifiedapps/mail/modules/dashboards/components/blocks.tsx+2-2
  • modifiedapps/mail/modules/documents/document.tsx+12-2
  • modifiedapps/mail/modules/drafting/components/compose-display.tsx+23-0
  • modifiedapps/mail/modules/drafting/components/email-composer.tsx+24-2
  • modifiedapps/mail/modules/drafting/hooks/use-undo-send.ts+81-59
  • modifiedapps/mail/modules/drafting/store/draftSlice.ts+110-0
  • modifiedapps/mail/modules/home/components/DisplayArtifactPanel.tsx+3-2
  • modifiedapps/mail/modules/inbox/components/ChannelThreadView.tsx+9-0
  • modifiedapps/mail/modules/inbox/components/InboxList.tsx+25-3
  • modifiedapps/mail/modules/inbox/components/InboxRow.tsx+3-0
  • modifiedapps/mail/modules/inbox/store/inboxSlice.ts+10-0
  • modifiedapps/mail/modules/linkedin/components/ChatDetail.tsx+9-1
  • modifiedapps/mail/modules/threads/mail.tsx+31-0
  • modifiedapps/mail/modules/threads/thread/components/mail-display.tsx+3-3
  • modifiedapps/mail/modules/threads/thread/components/thread-data-sync.tsx+4-1
  • modifiedapps/mail/modules/threads/threadList/hooks/use-mail-navigation.ts+38-23
  • modifiedapps/mail/modules/threads/threadList/store/threadSlice.ts+96-94
  • modifiedapps/mail/modules/threads/threadList/utils/mail-list-hotkeys.tsx+3-7
  • modifiedapps/mail/modules/userSettings/theme/sidebar-theme-switcher.tsx+8-13
  • modifiedapps/mail/modules/userSettings/theme/theme-switcher.tsx+10-26
  • modifiedapps/mail/modules/userSettings/theme/theme-toggle.tsx+8-13
  • modifiedapps/mail/modules/ux/components/navigation-page-url-sync.tsx+8-0
  • modifiedapps/mail/modules/ux/layout/layoutSlice.ts+20-3
  • addedapps/mail/modules/ux/layout/storeNavigator.ts+24-0
  • modifiedapps/mail/modules/ux/layout/useBackOrUp.ts+1-1
  • modifiedapps/mail/modules/ux/uxSlice.ts+49-1
  • addedapps/mail/public/logos/meetings/askelephant.svg+5-0
  • addedapps/mail/public/logos/meetings/attention.png+0-0
  • addedapps/mail/public/logos/meetings/attio.png+0-0
  • addedapps/mail/public/logos/meetings/circleback.png+0-0
  • addedapps/mail/public/logos/meetings/fathom.png+0-0
  • addedapps/mail/public/logos/meetings/fireflies.png+0-0
  • addedapps/mail/public/logos/meetings/gong.svg+8-0
  • addedapps/mail/public/logos/meetings/granola.svg+1-0
  • addedapps/mail/public/logos/meetings/krisp.png+0-0
  • addedapps/mail/tests/modules/calendar/calendarEventLayout.test.ts+175-0
  • addedapps/mail/tests/modules/cedar-os/provisionalPrimaryContext.test.ts+67-0
  • addedapps/mail/tests/modules/conversations/contextCardsConversation.test.ts+48-0
  • addedapps/mail/tests/modules/crm/utils/format-relative-date.test.ts+76-0
  • addedapps/mail/tests/modules/drafting/undoSendRestore.test.ts+198-0
  • modifiedapps/mail/tests/modules/layout/appShellPersist.test.tsx+8-3
  • addedapps/mail/tests/modules/thread/mail-navigation-escape.test.tsx+67-0
  • modifiedapps/mail/tests/modules/thread/threadSlice.test.ts+39-0
  • addedapps/mail/tests/modules/thread/unibox-navigation-parity.test.ts+201-0
  • modifiedapps/mail/tests/modules/ux/layout/useRouteChatThread.mail.test.tsx+3-4
  • modifiedapps/mail/tests/modules/ux/uxSlice.test.ts+43-0
  • modifiedapps/server/docs/design/slack-external-participant-routing.md+10-4
  • addedapps/server/docs/design/slack-marketplace-approval.md+523-0
  • modifiedapps/server/src/db/crm-schema.ts+11-55
  • modifiedapps/server/src/db/migrations/scripts/backfill-slack-channels.ts+18-6
  • addedapps/server/src/db/migrations/slack_channel_envelope_heal.sql+69-0
  • addedapps/server/src/db/migrations/slack_read_state_channel_only.sql+32-0
  • modifiedapps/server/src/db/schema.ts+0-1
  • modifiedapps/server/src/env.ts+8-0
  • modifiedapps/server/src/mastra/utils/__tests__/prompt-cache-fetch.test.ts+37-3
  • modifiedapps/server/src/mastra/utils/prompt-cache-fetch.ts+36-3
  • modifiedapps/server/src/mastra/workflows/chat/chat-workflow.ts+35-5
  • modifiedapps/server/src/mastra/workflows/chat/run-chat-agent-sdk.ts+3-2
  • modifiedapps/server/src/routes/unipile-webhook.ts+12-8
  • modifiedapps/server/src/services/crm/__tests__/slack-events.ingest.test.ts+181-5
  • modifiedapps/server/src/services/crm/conversations.ts+24-1
  • modifiedapps/server/src/services/crm/slack-events.ts+90-74
  • modifiedapps/server/src/services/inbox/feed-core.ts+1-1
  • modifiedapps/server/src/services/integrations/linkedin/__test__/linkedin.subscription.test.ts+23-3
  • modifiedapps/server/src/services/integrations/linkedin/index.ts+25-0
  • modifiedapps/server/src/services/posthog/posthog.ts+2-1
  • modifiedapps/server/src/trpc/routes/__tests__/settings-router.test.ts+68-9
  • modifiedapps/server/src/trpc/routes/crm.ts+76-60
  • modifiedapps/server/src/trpc/routes/settings.ts+20-6