Libra CodeHub

CedarCopilot/cedar-mail

Branch: staging

Slack DMs sync themselves, and Slack images reach the timeline and the agent

merged#2493CedarCopilot

CedarCopilot wants to merge 0 commits into staging from feat/channel-sync-two-tier

100 files changed

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

  • modifiedapps/mail/app/(routes)/playground/initial-sync.tsx+3-16
  • addedapps/mail/components/ui/day-divider.tsx+64-0
  • modifiedapps/mail/docs/url-driven-layout.md+1-1
  • addedapps/mail/lib/proxy-image.ts+26-0
  • addedapps/mail/modules/conversations/components/timeline/SlackStructuredBody.test.tsx+135-0
  • addedapps/mail/modules/conversations/components/timeline/SlackStructuredBody.tsx+298-0
  • modifiedapps/mail/modules/conversations/components/timeline/SlackTimeline.tsx+5-36
  • modifiedapps/mail/modules/conversations/components/timeline/UniversalComposer.tsx+4-0
  • modifiedapps/mail/modules/inbox/components/ChannelMessageList.tsx+140-4
  • modifiedapps/mail/modules/inbox/components/ChannelThreadView.tsx+193-19
  • modifiedapps/mail/modules/inbox/components/SlackThreadPanel.tsx+16-7
  • addedapps/mail/modules/inbox/hooks/use-channel-reactions.ts+143-0
  • addedapps/mail/modules/inbox/hooks/use-open-channel-item.ts+97-0
  • modifiedapps/mail/modules/threads/common/utils/email-utils.client.tsx+4-8
  • modifiedapps/mail/modules/threads/mail.tsx+23-7
  • modifiedapps/mail/modules/ux/layout/LayoutUrlSync.tsx+72-6
  • addedapps/mail/tests/modules/inbox/channelReactions.test.tsx+203-0
  • addedapps/mail/tests/modules/inbox/openChannelItem.test.tsx+161-0
  • addedapps/mail/tests/modules/inbox/scrollAnchor.test.ts+66-0
  • addedapps/mail/tests/modules/ux/layout/slackUrlSync.test.tsx+167-0
  • modifiedapps/server/docs/channel-sync-architecture.md+10-1
  • addedapps/server/docs/dm-auto-sync.md+274-0
  • addedapps/server/docs/slack-images.md+576-0
  • addedapps/server/docs/slack-parity.md+390-0
  • addedapps/server/docs/unknown-removal.md+120-0
  • modifiedapps/server/docs/wiki/README.md+22-0
  • addedapps/server/docs/wiki/slack-images-and-agent-vision.md+167-0
  • addedapps/server/docs/wiki/slack-parity.md+192-0
  • modifiedapps/server/package.json+4-1
  • modifiedapps/server/scripts/headless-dev-start.sh+13-2
  • addedapps/server/src/cli/channels.ts+275-0
  • modifiedapps/server/src/cli/index.ts+3-1
  • modifiedapps/server/src/db/crm-schema.ts+34-3
  • modifiedapps/server/src/db/integration-schemas.ts+11-0
  • addedapps/server/src/db/migrations/channel_container_history_cursor.sql+21-0
  • addedapps/server/src/db/migrations/slack_message_rich_payload.sql+17-0
  • addedapps/server/src/db/migrations/unknown_conversation_removal.sql+118-0
  • modifiedapps/server/src/db/outbound-schema.ts+17-0
  • modifiedapps/server/src/docs/thread-sync-architecture.md+5-4
  • addedapps/server/src/lib/testing/__tests__/secret-png.test.ts+80-0
  • addedapps/server/src/lib/testing/secret-png.ts+153-0
  • modifiedapps/server/src/mastra/index.ts+2-0
  • modifiedapps/server/src/mastra/skills/crm/domain-identification.ts+6-3
  • addedapps/server/src/mastra/tools/event-execution/__tests__/unattributed-event.test.ts+202-0
  • modifiedapps/server/src/mastra/tools/event-execution/assignEventToConversationTool.ts+106-68
  • modifiedapps/server/src/mastra/tools/pipeline-agent-tools.ts+2-0
  • addedapps/server/src/mastra/tools/slack/__tests__/readSlackAttachmentTool.test.ts+214-0
  • addedapps/server/src/mastra/tools/slack/readSlackAttachmentTool.ts+213-0
  • modifiedapps/server/src/mastra/tools/subagent-tool-allowlists.ts+3-0
  • modifiedapps/server/src/mastra/tools/tool-names.ts+2-0
  • addedapps/server/src/mastra/utils/__tests__/model-image-parts.test.ts+79-0
  • addedapps/server/src/mastra/utils/context-formatting/__tests__/slack-attachments-context.test.ts+88-0
  • modifiedapps/server/src/mastra/utils/context-formatting/conversation-context.ts+6-0
  • modifiedapps/server/src/mastra/utils/context-formatting/event-context.ts+61-1
  • addedapps/server/src/mastra/utils/model-image-parts.ts+111-0
  • modifiedapps/server/src/mastra/workflows/chat/chat-workflow.ts+14-25
  • modifiedapps/server/src/mastra/workflows/event-execution/on-event-agent-execution-workflow.ts+68-3
  • addedapps/server/src/scripts/__tests__/slack-manifest.test.ts+75-0
  • addedapps/server/src/scripts/slack-images-probe.ts+183-0
  • addedapps/server/src/scripts/slack-images.ts+657-0
  • addedapps/server/src/scripts/slack-manifest.ts+171-0
  • modifiedapps/server/src/services/channels/__test__/link-store.test.ts+281-0
  • modifiedapps/server/src/services/channels/adapters/index.ts+64-2
  • modifiedapps/server/src/services/channels/containers.ts+180-10
  • modifiedapps/server/src/services/channels/health.ts+19-1
  • modifiedapps/server/src/services/channels/history.ts+40-19
  • addedapps/server/src/services/channels/inspect.ts+251-0
  • modifiedapps/server/src/services/crm/__test__/channel-deal-binding.test.ts+8-1
  • modifiedapps/server/src/services/crm/__test__/channel-message-events.test.ts+136-78
  • modifiedapps/server/src/services/crm/__test__/linkedin-linking.test.ts+12-6
  • modifiedapps/server/src/services/crm/__tests__/slack-events.ingest.test.ts+74-5
  • modifiedapps/server/src/services/crm/channel-message-events.ts+122-131
  • addedapps/server/src/services/crm/conversation-slack-images.ts+175-0
  • modifiedapps/server/src/services/crm/conversations.ts+0-112
  • modifiedapps/server/src/services/crm/external-crm-events.ts+3-3
  • modifiedapps/server/src/services/crm/slack-events.ts+34-5
  • modifiedapps/server/src/services/inbox/slack-messages.ts+118-7
  • modifiedapps/server/src/services/inbox/slack-thread.ts+16-1
  • modifiedapps/server/src/services/integrations/linkedin/__test__/messaging.test.ts+75-2
  • modifiedapps/server/src/services/integrations/linkedin/messaging.ts+158-29
  • addedapps/server/src/services/integrations/slack/__tests__/slack-attachment-read.test.ts+330-0
  • modifiedapps/server/src/services/integrations/slack/__tests__/slack-block-extraction.test.ts+78-0
  • addedapps/server/src/services/integrations/slack/__tests__/slack-dm-admit.test.ts+255-0
  • addedapps/server/src/services/integrations/slack/__tests__/slack-files-inbound.test.ts+199-0
  • addedapps/server/src/services/integrations/slack/__tests__/slack-scope-drift.test.ts+89-0
  • modifiedapps/server/src/services/integrations/slack/slack-api.ts+107-1
  • addedapps/server/src/services/integrations/slack/slack-attachment-read.ts+333-0
  • addedapps/server/src/services/integrations/slack/slack-dm-admit.ts+185-0
  • modifiedapps/server/src/services/integrations/slack/slack-events-webhook.ts+196-0
  • modifiedapps/server/src/services/integrations/slack/slack-files.ts+103-24
  • modifiedapps/server/src/services/integrations/slack/slack-sync.ts+266-4
  • modifiedapps/server/src/services/integrations/slack/slack.ts+108-4
  • modifiedapps/server/src/services/integrations/whatsapp/index.ts+27-6
  • modifiedapps/server/src/services/mail/initial-sync/handlers.ts+6-6
  • modifiedapps/server/src/trpc/routes/admin.ts+4-17
  • modifiedapps/server/src/trpc/routes/channels.ts+157-1
  • modifiedapps/server/src/trpc/routes/inbox.ts+8-1
  • modifiedapps/server/src/trpc/routes/integrations.ts+2-1
  • modifiedapps/server/src/workflows/__tests__/conversation-sync-kv-flow.test.ts+0-1
  • modifiedapps/server/src/workflows/step-registry/conversation-sync/finalize-steps.ts+3-12