CedarCopilot wants to merge 0 commits into main from staging
Not deployed
Libra has no production signal for this change yet because it has not deployed. Libra checks hourly for 3 days after each deploy.
This staging merge adds active-deal-aware CRM status synchronization and agent context, aligns the virtualized CRM row with the selected deal, expands regression coverage, and adds Vooma audit artifacts.
The PR should not merge until the status guard identifies incoming deals by both provider and deal ID; the relative imports are non-blocking cleanup.
The new guard correctly suppresses ordinary sibling updates but treats provider-local deal IDs as globally unique, allowing a non-active deal from another provider to overwrite the active conversation status when IDs collide.
Files Needing Attention: apps/server/src/services/crm/crm-field-sync.ts; apps/server/src/mastra/utils/context-formatting/conversation-context.ts; apps/server/src/services/crm/tests/crm-field-sync-full.test.ts
| Filename | Overview |
|---|---|
| apps/server/src/services/crm/crm-field-sync.ts | Adds active-deal status guards to both sync paths, but identifies the incoming deal by ID alone and can misclassify cross-provider collisions. |
| apps/server/src/mastra/utils/context-formatting/conversation-context.ts | Adds active/sibling deal annotations and open/closed state to agent context; no independent runtime defect was established. |
| apps/mail/modules/crm/components/VirtualizedTableRow.tsx | Derives the sync badge and displayed CRM metadata from the same selected active deal. |
| apps/server/src/services/crm/tests/crm-field-sync-full.test.ts | Adds coverage for active and non-active sibling stage updates, but does not cover identical deal IDs across providers. |
| docs/audits/vooma/vooma-extraction-agent-prompt.md | Adds audit-specific extraction guidance and supporting datasets without an established product runtime failure. |
### Issue 1
apps/server/src/services/crm/crm-field-sync.ts:126-128
**Provider-scoped deal identity is lost**
If a conversation links deals from two CRM providers with the same provider-local deal ID, this comparison treats an update from the non-active provider as an active-deal update, allowing the sibling stage to overwrite the conversation status. Deal identity must include both provider and deal ID.
### Issue 2
apps/server/src/services/crm/crm-field-sync.ts:15-16
**New imports bypass absolute paths**
These new relative imports violate the repository's absolute-import convention. The same changed-code pattern also occurs in `conversation-context.ts` and `crm-field-sync-full.test.ts`, increasing maintenance cost when modules move.
---
For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.
Reviews (1): Last reviewed commit: "Merge pull request #2514 from CedarCopil..." | Re-trigger Greptile
Greptile also left **2 inline com
Libra has not measured any production surfaces for this change yet.