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:
Z User committed 2026-10-27 22:50:50 +00:00
1 parent 7acc0c5451
commit e45b68bb8b
1089 files changed
+260614

No files matched your search

@@ -0,0 +1,96 @@
---
name: html-ppt-zhangzara-retro-windows
description: Retro Windows — Windows 95 chrome:灰色标题栏 / MS Sans Serif / 像素字体 / 满满怀旧。任何应该感觉有意为之地怀旧的 deck:retro gaming / Y2K 美学品牌 / 90 年代风格创作者作品集 / 技术史 talk / 故意 tongue-in-cheek 的 deck。
visibility: public
mode: template
carrier: deck
scenario: marketing
pattern_source: pattern.html
source_priority: skill-first
triggers:
- "做个 Windows 95 风 deck"
- "做个 Y2K 复古 PPT"
- "做个 90 年代怀旧风"
- "retro-windows"
- "zhangzara-retro-windows"
- "Retro Windows"
- "nostalgic"
- "retro gaming pitch"
- "Y2K brand"
- "html deck"
- "html slides"
- "zhangzara"
od:
upstream: "https://github.com/zarazhangrui/beautiful-html-templates/tree/main/templates/retro-windows"
upstream_license: MIT
preview:
type: html
entry: pattern.html
design_system:
requires: false
speaker_notes: false
animations: false
---
# Retro Windows
> Windows 95 chrome: gray title bars, MS Sans Serif, pixel typography, full nostalgia.
A single self-contained HTML deck — typography, palette, decorative system,
and slide vocabulary are all tuned together. Mixing layouts across templates
breaks the system; stay inside this one.
## At a glance
- **Scheme:** light
- **Formality:** low
- **Density:** medium
- **Slides in demo:** 10
## Best for
Anything that should feel knowingly nostalgic: retro gaming, Y2K-aesthetic brands, creator portfolios with a 90s vibe, tech-history talks, deliberately tongue-in-cheek decks. A great choice anywhere a playful retro reference is the entire point.
## Avoid for
Decks that need to read as modern, elegant, or institutionally credible — the Win95 chrome will always read as a costume.
## Workflow
1. **Use `pattern.html` only as a secondary pattern reference.** Do not clone it wholesale; extract section rhythm, layout pattern, and interaction behavior, then rebuild for the current brief.
2. **Replace placeholder content** with the user's real headlines, body copy,
numbers, names, dates, and section labels. Match existing dimensions when
swapping image placeholders.
3. **Preserve the design system.** Never substitute fonts, recolor the palette,
restructure the layout grid, or strip decorative elements (corner brackets,
paper grain, geometric shapes, illustrated SVGs). They are part of the
identity.
4. **Adjust deck length by duplicating layouts.** If the user has more content
than the demo holds, duplicate an existing slide of the most appropriate
layout. If less, drop slides from the bottom. Update page-number labels.
5. **Designing missing layouts:** if a slide needs a layout the template
doesn't have, design it from scratch using the same fonts, palette,
decorative vocabulary, spacing rhythm, and component grammar — never bail
to a different template.
6. **Keep the navigation runtime as shipped.** If the deck ships an
`assets/deck-stage.js` or inline keyboard handler, leave it intact.
## Output contract
Emit between `<artifact>` tags:
```
<artifact identifier="zhangzara-retro-windows" type="text/html" title="Deck Title">
<!doctype html>
<html>...</html>
</artifact>
```
## Source & license
Vendored from upstream MIT-licensed
[`zarazhangrui/beautiful-html-templates`](https://github.com/zarazhangrui/beautiful-html-templates/tree/main/templates/retro-windows).
The full upstream MIT license text — including the original copyright notice — ships in this skill at
[`LICENSE`](./LICENSE) and must be redistributed alongside any copy of `pattern.html`,
`template.json`, or any vendored `assets/` runtime. See `template.json` for the upstream metadata snapshot.