No description
Find a file
justin b375385efd fix(email): add text/plain part to every transactional + telecom email
All transactional/worker senders built multipart/alternative (or mixed)
messages with ONLY an HTML part. A single-part multipart/alternative is
malformed and HTML-only mail is a spam-score signal -- the same class of
deliverability bug that hurt the campaign pipeline, but on the telecom /
filing / customer-transactional path (499-Q reminders, RMD/FCC filing
review links, intake/completion/delivery emails, commissions, etc).

- worker_email.send_worker_email: auto-derive plaintext from HTML when
  caller omits text= (fixes the shared helper for all current+future use)
- 16 rolled-their-own senders in scripts/workers/** + scripts/formation/
  document_delivery.py: attach html_to_text(...) plaintext sibling before
  the HTML part (job_server + document_delivery wrap text+html in an
  alternative sub-part so PDFs still attach to the mixed root)
- api/src/email.ts: add dependency-free htmlToText() and default
  sendEmail text to it (fixes checkout/webhook HTML-only sends)

Verified: all py files compile + import at runtime, api tsc passes,
htmlToText handles hrefs/lists/entities, 11 plaintext unit tests pass.
Telecom campaign 407 (Jun 8) was HTML-only + sent in the DKIM-broken
window -> 384 sent / 0 clicks (same junked-mail signature).
2026-06-17 21:07:40 -05:00
.claude/projects/-home-justin-projects-performancewest-new-site/memory Initial commit — Performance West telecom compliance platform 2026-04-27 06:54:22 -05:00
api fix(email): add text/plain part to every transactional + telecom email 2026-06-17 21:07:40 -05:00
chrome-extension/fcc-access-helper Initial commit — Performance West telecom compliance platform 2026-04-27 06:54:22 -05:00
data otc: reincorporation email template + campaign builder 2026-06-14 06:58:43 -05:00
docs trucking: weekly FMCSA source refresh so new non-compliant carriers are caught 2026-06-17 20:44:54 -05:00
docserver docserver: self-healing Task Scheduler config + docs 2026-06-15 22:49:21 -05:00
erpnext build: pin payments to version-15 + stage apps in deploy.sh erpnext 2026-06-02 23:13:01 -05:00
frappe_adyen Initial commit — Performance West telecom compliance platform 2026-04-27 06:54:22 -05:00
frappe_ca_registry Fix flagged items: CRTC email submission, BITS todo, selector docs, stale plans 2026-05-04 11:33:45 -05:00
frappe_crypto Initial commit — Performance West telecom compliance platform 2026-04-27 06:54:22 -05:00
infra trucking: weekly FMCSA source refresh so new non-compliant carriers are caught 2026-06-17 20:44:54 -05:00
mcp Initial commit — Performance West telecom compliance platform 2026-04-27 06:54:22 -05:00
monitoring fix(monitoring): render alertmanager.yml from template at deploy (fixes crash loop) 2026-06-07 04:49:53 -05:00
node-compile-cache/v25.1.0-x64-392347a2-1000 Initial commit — Performance West telecom compliance platform 2026-04-27 06:54:22 -05:00
performancewest_erpnext fix(erpnext): self-heal outgoing Email Account password from SMTP_* env 2026-06-17 09:48:28 -05:00
scripts fix(email): add text/plain part to every transactional + telecom email 2026-06-17 21:07:40 -05:00
site fix(mcs150): point intake email to per-slug wizard (not sales page) + add Trailers field 2026-06-16 16:21:57 -05:00
src Initial commit — Performance West telecom compliance platform 2026-04-27 06:54:22 -05:00
test_screenshots Pivot CRTC offering on FCC carrier page for A-Z wholesale carriers 2026-06-02 13:26:39 -05:00
.gitignore gitignore: stray personal image 2026-06-10 12:35:56 -05:00
CLAUDE.md Update CLAUDE.md with complete deployment guide, infrastructure map, and key patterns 2026-04-28 02:54:44 -05:00
deploy.sh fix(deploy): hard-reset to origin/main + assert HEAD advanced (stop silent strands) 2026-06-16 09:25:11 -05:00
docker-compose.dev.override.yml dev: remap api(3002)/site(4323) ports in override to avoid prod collision on shared host 2026-06-05 23:07:22 -05:00
docker-compose.yml email: add plaintext MIME part + stable Message-ID hostname 2026-06-17 20:09:02 -05:00
extract-erpnext-assets.sh portal: serve /files/ (logo) from stable host path, fix recurring 403 2026-06-02 22:18:30 -05:00