You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
🔧 Shared templates: convert the 15 emails to body fragments on the default layout #4133
Strip the shell, the copied CTA button, the sign-off and the no-reply footer out of the 15 config/templates/*.html files. Keep only the body, and use {{> button}} for the CTA.
Copy policy (intentional):
Body text is preserved.
The mail-specific line in the reset-password-email footer, "If you didn't make this request, you can ignore this email.", stays in its body.
The shell is normalized: one signature from brand.signature, and the contact footer on every mail. The 4 org-* mails and referral-reward-earned gain the footer, and the "Support Team" variant (3 auth mails) becomes the brand signature.
Acceptance criteria
Each template contains only its own body, with no hardcoded colors.
Each mail's normalized text matches the baseline snapshot, except for the documented shell changes.
Brand colors and a logo set in config show up in all 15 mails.
Tests
Diff against the baseline snapshot, with an allow-list of the shell differences.
One test that sets brand colors and logoUrl, then asserts them in all 15 rendered mails.
Depends on: layout and partials, and call sites (so appContact is always present for the new footers).
changed the title [-]♻️ Shared templates: convert the 15 emails to body fragments on the default layout[/-][+]🔧 Shared templates: convert the 15 emails to body fragments on the default layout[/+]on Sep 27, 2026
Activity
[-]♻️ Shared templates: convert the 15 emails to body fragments on the default layout[/-][+]🔧 Shared templates: convert the 15 emails to body fragments on the default layout[/+]PierreBrisorgueil commentedon Oct 3, 2026
WIP — session 20261003T230444Z-F8433121, branch feat/4133-template-body-fragments, started 2026-10-03T23:04:44Z
chore(templates): explicit beforeEach import + MIGRATIONS.md entry for …
feat(templates): convert the 15 shared emails to body fragments (#4178)
PierreBrisorgueil commentedon Oct 4, 2026
merged via drain (Automerge: absent, --review: false) — PR #4178. Reviewers: Phase 0 Sonnet (Kimi unavailable — degraded), CodeRabbit (1 finding fixed), Claude fallback on final head.
docs(mailer): fix render() JSDoc brand fallback claim
docs(mailer): email customization guide, migration path, fix wrong ov…