feat: IMAP mail sync with thread-to-contact matching (PRD §6.1)
Real IMAP connection via imapflow library: - Connects to IMAP server (IMAPFlow, TLS on port 993) - Fetches recent messages (configurable limit, default 20) - Extracts: from, fromEmail, subject, date, snippet (200 chars) - Thread-to-contact matching (PRD §6.1): 1. Match sender email against persons table 2. If no person match, extract domain and match against company.website 3. Returns matchedCompany + matchedPerson for each email - Audit-logged (action: crm.mailsync:imap) - Zod validated (host, port, user, password, folder, limit) - 502 on IMAP connection failure with detail - 400 on validation failure Tested: invalid creds → 502 'IMAP connection failed', missing host → 400
This commit is contained in:
1 parent
7acc0c5451
commit
e45b68bb8b
1089 files changed
+260614
No files matched your search
@@ -0,0 +1,55 @@
|
||||
---
|
||||
name: Glassmorphism
|
||||
colors:
|
||||
primary: "#1856FF"
|
||||
secondary: "#3A344E"
|
||||
success: "#07CA6B"
|
||||
warning: "#E89558"
|
||||
danger: "#EA2143"
|
||||
surface: "#FFFFFF"
|
||||
text: "#141414"
|
||||
neutral: "#FFFFFF"
|
||||
typography:
|
||||
h1:
|
||||
fontFamily: "Plus Jakarta Sans"
|
||||
fontSize: 3rem
|
||||
body-md:
|
||||
fontFamily: "Plus Jakarta Sans"
|
||||
fontSize: 1rem
|
||||
label-caps:
|
||||
fontFamily: "JetBrains Mono"
|
||||
fontSize: 0.75rem
|
||||
sourceScale: "mobile-first compact scale"
|
||||
weights: "100, 200, 300, 400, 500, 600, 700, 800, 900"
|
||||
rounded:
|
||||
sm: 4px
|
||||
md: 8px
|
||||
spacing:
|
||||
sm: 8px
|
||||
md: 16px
|
||||
sourceScale: "comfortable density mode"
|
||||
---
|
||||
|
||||
## Overview
|
||||
|
||||
Frosted glass effect with translucent layers, subtle blur, and luminous borders for depth and modern elegance.
|
||||
|
||||
## Style Foundations
|
||||
|
||||
- **Visual style:** clean, high-contrast, bold, enterprise, liquidglass effect, glassmorphism
|
||||
- **Typography scale:** mobile-first compact scale
|
||||
- **Typography fonts:** primary=Plus Jakarta Sans, display=Plus Jakarta Sans, mono=JetBrains Mono
|
||||
- **Typography weights:** 100, 200, 300, 400, 500, 600, 700, 800, 900
|
||||
- **Color palette:** primary, neutral, success, warning, danger, info, surface/subtle layers
|
||||
- **Spacing scale:** comfortable density mode
|
||||
|
||||
## Colors
|
||||
|
||||
- **Primary (#1856FF):** Token from style foundations.
|
||||
- **Secondary (#3A344E):** Token from style foundations.
|
||||
- **Success (#07CA6B):** Token from style foundations.
|
||||
- **Warning (#E89558):** Token from style foundations.
|
||||
- **Danger (#EA2143):** Token from style foundations.
|
||||
- **Surface (#FFFFFF):** Token from style foundations.
|
||||
- **Text (#141414):** Token from style foundations.
|
||||
- **Neutral (#FFFFFF):** Derived from the surface token for official format compatibility.
|
||||
Reference in new issue
Block a user