Libra CodeHub

CedarCopilot/cedar-mail

Branch: staging

Channel sync: shared containers, dual-write, flag-gated dual-read, reconciler

merged#2452CedarCopilot

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

79 files changed

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

  • modifiedapps/mail/components/ui/horizontal-scroll-container.tsx+4-4
  • addedapps/mail/docs/inbox-triage.md+1070-0
  • modifiedapps/mail/docs/playbook-webhooks-and-post-api-design.md+10-8
  • addedapps/mail/docs/table-documents.md+1624-0
  • modifiedapps/mail/modules/canvas/components/ConversationCard.tsx+10-1
  • modifiedapps/mail/modules/conversations/components/LeftSidebarContent.tsx+33-0
  • modifiedapps/mail/modules/conversations/components/timeline/ConversationTaskCard.tsx+2-4
  • addedapps/mail/modules/userTasks/CURATED_AGENDA_DESIGN.md+1187-0
  • modifiedapps/mail/modules/userTasks/components/TaskOutputPanel.tsx+8-9
  • modifiedapps/mail/modules/userTasks/components/TaskOwnerBadge.tsx+21-4
  • addedapps/mail/tests/modules/userTasks/taskOwnerBadge.test.tsx+62-0
  • modifiedapps/server/docs/agent-email-surface.md+4-0
  • addedapps/server/docs/channel-sync-architecture.md+1708-0
  • modifiedapps/server/docs/wiki/README.md+1-0
  • addedapps/server/docs/wiki/channel-envelope.md+313-0
  • modifiedapps/server/package.json+5-1
  • modifiedapps/server/src/cron/cron-task-registry.ts+11-0
  • addedapps/server/src/cron/process-channel-reconcile.ts+83-0
  • modifiedapps/server/src/db/crm-schema.ts+39-12
  • addedapps/server/src/db/migrations/channel_container_draft.sql+44-0
  • addedapps/server/src/db/migrations/channel_container_names.sql+61-0
  • addedapps/server/src/db/migrations/channel_container_sender_ref.sql+76-0
  • addedapps/server/src/db/migrations/channel_containers_converge.sql+261-0
  • addedapps/server/src/db/migrations/channel_message_dedupe.sql+131-0
  • addedapps/server/src/db/migrations/channel_message_identity.sql+207-0
  • addedapps/server/src/db/migrations/channel_read_state_reseed.sql+56-0
  • addedapps/server/src/db/migrations/channel_timestamptz.sql+86-0
  • addedapps/server/src/db/migrations/shared_channel_containers.sql+417-0
  • addedapps/server/src/db/migrations/shared_channel_containers_orphan_slack.sql+170-0
  • modifiedapps/server/src/db/outbound-schema.ts+162-15
  • modifiedapps/server/src/env.ts+7-1
  • modifiedapps/server/src/mastra/routeHandlers/event-execution/handleReexecuteEvent.ts+59-0
  • modifiedapps/server/src/mastra/tools/event-execution/createAndLinkEventsTool.ts+28-3
  • modifiedapps/server/src/mastra/tools/notify/__tests__/sendEmailNotificationTool.test.ts+2-2
  • modifiedapps/server/src/mastra/tools/run-sql-query/__tests__/sql-guard.test.ts+56-0
  • modifiedapps/server/src/mastra/tools/run-sql-query/sql-guard.ts+7-1
  • modifiedapps/server/src/mastra/utils/context-items/hydrate.ts+16-1
  • addedapps/server/src/scripts/channel-health.ts+102-0
  • addedapps/server/src/scripts/compare-feed-sources.ts+254-0
  • addedapps/server/src/scripts/repair-channel-envelopes.ts+166-0
  • addedapps/server/src/scripts/task-group-label-headless.ts+91-0
  • addedapps/server/src/scripts/verify-channel-containers.ts+297-0
  • modifiedapps/server/src/services/analytics/slack-draft-analytics.ts+12-1
  • addedapps/server/src/services/channels/__test__/envelope-db.test.ts+101-0
  • addedapps/server/src/services/channels/__test__/envelope.test.ts+240-0
  • addedapps/server/src/services/channels/__test__/reconcile.test.ts+198-0
  • addedapps/server/src/services/channels/__test__/shared-container.test.ts+308-0
  • addedapps/server/src/services/channels/containers.ts+359-0
  • addedapps/server/src/services/channels/envelope.ts+391-0
  • addedapps/server/src/services/channels/health.ts+209-0
  • addedapps/server/src/services/channels/reconcile.ts+204-0
  • addedapps/server/src/services/channels/types.ts+26-0
  • modifiedapps/server/src/services/crm/__test__/channel-deal-binding.test.ts+1-1
  • modifiedapps/server/src/services/crm/__test__/channel-message-events.test.ts+1-1
  • modifiedapps/server/src/services/crm/channel-message-events.ts+2-0
  • modifiedapps/server/src/services/crm/conversations.ts+53-3
  • modifiedapps/server/src/services/crm/dedup.ts+11-0
  • modifiedapps/server/src/services/crm/move-event.ts+11-1
  • modifiedapps/server/src/services/crm/slack-events.ts+155-13
  • modifiedapps/server/src/services/inbox/__test__/feed-db.test.ts+16-3
  • modifiedapps/server/src/services/inbox/__tests__/feed-inbox-scope.test.ts+54-3
  • addedapps/server/src/services/inbox/feed-containers.ts+239-0
  • modifiedapps/server/src/services/inbox/feed.ts+58-7
  • modifiedapps/server/src/services/integrations/linkedin/messaging.ts+52-12
  • modifiedapps/server/src/services/integrations/slack/slack-events-webhook.ts+48-6
  • modifiedapps/server/src/services/integrations/whatsapp/index.ts+43-10
  • modifiedapps/server/src/services/mail/lib/email-processor.ts+19-13
  • modifiedapps/server/src/services/posthog/posthog.ts+18-0
  • modifiedapps/server/src/services/user-tasks/__tests__/apply-task-group-label.test.ts+18-33
  • addedapps/server/src/services/user-tasks/__tests__/label-not-dropped.test.ts+83-0
  • modifiedapps/server/src/services/user-tasks/apply-task-group-label.ts+37-36
  • modifiedapps/server/src/services/user-tasks/tasks.ts+33-9
  • modifiedapps/server/src/trpc/index.ts+2-0
  • addedapps/server/src/trpc/routes/channels.ts+61-0
  • modifiedapps/server/src/trpc/routes/crm.ts+40-0
  • modifiedapps/server/src/trpc/routes/integrations.ts+13-0
  • modifiedapps/server/src/trpc/routes/statistics.ts+2-2
  • modifiedapps/server/src/trpc/routes/task-groups.ts+14-2
  • modifiedaws/lib/stacks/app-stack.ts+7-0