Libra CodeHub

CedarCopilot/cedar-mail

Branch: staging

CRM custom-object linkage: bind an AOP to any CRM object, not just Deal

merged#2833CedarCopilot

CedarCopilot wants to merge 9 commits into staging from feat/crm-custom-object-linkage

84 files changed

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

  • modifiedapps/mail/modules/conversations/components/ConversationOverviewCard.tsx+1-1
  • modifiedapps/mail/modules/conversations/components/CrmAgentBadge.tsx+38-9
  • modifiedapps/mail/modules/conversations/components/conversationFieldRenderers.tsx+1-1
  • modifiedapps/mail/modules/crm/types/index.ts+14-3
  • modifiedapps/mail/modules/integrations/crm-integration-card.tsx+121-24
  • modifiedapps/server/.claude/skills/cedar-configuration/fields-and-values.md+25-8
  • addedapps/server/scripts/backfill-crm-object-records.ts+185-0
  • addedapps/server/src/cron/__tests__/process-external-crm-sync.test.ts+267-0
  • modifiedapps/server/src/cron/process-external-crm-sync.ts+191-3
  • modifiedapps/server/src/db/aop-schema.ts+18-0
  • modifiedapps/server/src/db/crm-schema.ts+20-0
  • addedapps/server/src/db/migrations/add_aop_bound_object_api_name.sql+10-0
  • addedapps/server/src/db/migrations/add_crm_conversation_updates_object_api_name.sql+14-0
  • modifiedapps/server/src/mastra/routeHandlers/event-execution/__tests__/handleExecuteExternalCrm.test.ts+131-0
  • modifiedapps/server/src/mastra/routeHandlers/event-execution/handleExecuteExternalCrm.ts+23-21
  • modifiedapps/server/src/mastra/skills/account-config/tools/__tests__/applyConfigChangeTool.reconciliation.test.ts+4-0
  • modifiedapps/server/src/mastra/skills/account-config/tools/__tests__/applyConfigChangeTool.test.ts+124-0
  • modifiedapps/server/src/mastra/skills/account-config/tools/applyConfigChangeTool.ts+21-1
  • modifiedapps/server/src/mastra/tools/config/config-propagate-tool.ts+12-3
  • addedapps/server/src/mastra/tools/conversation/__tests__/findCRMConversationsTool.default-aop-scope.test.ts+116-0
  • modifiedapps/server/src/mastra/tools/conversation/__tests__/updateConversationFieldsTool.unchanged-approval.test.ts+36-0
  • modifiedapps/server/src/mastra/tools/conversation/findCRMConversationsTool.ts+27-16
  • modifiedapps/server/src/mastra/workflows/chat/chat-org-rules.ts+8-0
  • modifiedapps/server/src/mastra/workflows/event-execution/pre-execution-setup.ts+13-2
  • addedapps/server/src/mastra/workflows/sync/__tests__/update-external-crm-workflow.test.ts+379-0
  • modifiedapps/server/src/mastra/workflows/sync/update-external-crm-workflow.ts+496-415
  • addedapps/server/src/services/aop/__tests__/adhoc-chat-aop-scope.test.ts+95-0
  • addedapps/server/src/services/aop/__tests__/bound-object-resolution.test.ts+167-0
  • addedapps/server/src/services/aop/__tests__/no-hardcoded-deals-aop-comparison.test.ts+164-0
  • modifiedapps/server/src/services/aop/__tests__/propagate-mapping.test.ts+100-0
  • addedapps/server/src/services/aop/adhoc-chat-aop-scope.ts+83-0
  • addedapps/server/src/services/aop/bound-object-resolution.ts+110-0
  • modifiedapps/server/src/services/aop/linked-deal-output-policy.ts+9-2
  • modifiedapps/server/src/services/aop/propagate-mapping.ts+75-7
  • modifiedapps/server/src/services/aop/utils.ts+4-0
  • modifiedapps/server/src/services/crm/__tests__/active-deal.test.ts+45-0
  • addedapps/server/src/services/crm/__tests__/before-meeting-prep-floor.test.ts+209-0
  • addedapps/server/src/services/crm/__tests__/conversations.stage-required-fields-object-scope.test.ts+153-0
  • addedapps/server/src/services/crm/__tests__/crm-conversation-updates-object-api-name.test.ts+262-0
  • modifiedapps/server/src/services/crm/__tests__/crm-deal-auto-link.test.ts+149-0
  • addedapps/server/src/services/crm/__tests__/crm-discover-new-deals.test.ts+272-0
  • modifiedapps/server/src/services/crm/__tests__/crm-field-sync-full.test.ts+57-0
  • addedapps/server/src/services/crm/__tests__/crm-pull-refresh.record-refresh.test.ts+232-0
  • addedapps/server/src/services/crm/__tests__/crm-reconcile-deals.account-only-object.test.ts+186-0
  • modifiedapps/server/src/services/crm/__tests__/crm-sync-watermark.test.ts+76-16
  • addedapps/server/src/services/crm/__tests__/deal-audit.test.ts+76-0
  • modifiedapps/server/src/services/crm/__tests__/deal-metrics.test.ts+94-3
  • modifiedapps/server/src/services/crm/__tests__/deal-timeline.test.ts+90-1
  • modifiedapps/server/src/services/crm/__tests__/external-crm-events.test.ts+95-0
  • modifiedapps/server/src/services/crm/active-deal.ts+34-0
  • modifiedapps/server/src/services/crm/before-meeting-prep-floor.ts+115-18
  • modifiedapps/server/src/services/crm/conversations.ts+34-7/api/trpc/crm.searchConversationsMinimalPOST /api/trpc/crm.searchConversationsMinimal/api/trpc/crm.getConversations+5
  • modifiedapps/server/src/services/crm/crm-deal-auto-link.ts+341-6
  • modifiedapps/server/src/services/crm/crm-discover-new-deals.ts+89-16
  • modifiedapps/server/src/services/crm/crm-field-sync.ts+33-64
  • modifiedapps/server/src/services/crm/crm-pull-refresh.ts+275-27
  • modifiedapps/server/src/services/crm/crm-reconcile-deals.ts+39-14
  • modifiedapps/server/src/services/crm/crm-sync-watermark.ts+106-59
  • modifiedapps/server/src/services/crm/deal-audit.ts+36-7
  • modifiedapps/server/src/services/crm/deal-facts.ts+8-0
  • modifiedapps/server/src/services/crm/deal-link-metrics.ts+13-0
  • modifiedapps/server/src/services/crm/deal-metrics.ts+134-2
  • modifiedapps/server/src/services/crm/deal-status.ts+6-0
  • modifiedapps/server/src/services/crm/deal-timeline.ts+71-0
  • modifiedapps/server/src/services/crm/external-crm-events.ts+65-6
  • modifiedapps/server/src/services/integrations/__tests__/connection-config.test.ts+144-0
  • modifiedapps/server/src/services/integrations/connection-config.ts+175-43
  • addedapps/server/src/services/integrations/crm/__tests__/attio-object-binding.test.ts+300-0
  • modifiedapps/server/src/services/integrations/crm/__tests__/field-mapping-writer.test.ts+47-5
  • addedapps/server/src/services/integrations/crm/__tests__/hubspot-object-binding.test.ts+225-0
  • addedapps/server/src/services/integrations/crm/__tests__/salesforce-object-binding.test.ts+251-0
  • modifiedapps/server/src/services/integrations/crm/attio.ts+142-35
  • modifiedapps/server/src/services/integrations/crm/driver.ts+51-7
  • modifiedapps/server/src/services/integrations/crm/field-mapping-writer.ts+394-38
  • modifiedapps/server/src/services/integrations/crm/hubspot.ts+169-22
  • modifiedapps/server/src/services/integrations/crm/salesforce.ts+112-3
  • addedapps/server/src/services/mail/initial-sync/__tests__/assign-event-aop-correction.test.ts+140-0
  • modifiedapps/server/src/services/mail/initial-sync/__tests__/resolve-aop-step.test.ts+134-1
  • modifiedapps/server/src/services/mail/initial-sync/finalize-steps.ts+15-14
  • modifiedapps/server/src/services/mail/initial-sync/handlers.ts+15-15
  • addedapps/server/src/trpc/routes/__tests__/integrations-update-write-settings.test.ts+202-0
  • modifiedapps/server/src/trpc/routes/crm.ts+8-3
  • modifiedapps/server/src/trpc/routes/integrations.ts+89-11/api/trpc/integrations.slack.syncConversationChannels
  • addeddocs/design/crm-custom-object-linkage-leads.md+641-0