Skip to content

🔧 Shared templates: convert the 15 emails to body fragments on the default layout #4133

Closed

Description

@PierreBrisorgueil

What

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).

Needs: #4131

Activity

  1. 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
  2. PierreBrisorgueil commented on Oct 3, 2026

    @PierreBrisorgueil
    ContributorAuthor

    WIP — session 20261003T230444Z-F8433121, branch feat/4133-template-body-fragments, started 2026-10-03T23:04:44Z

  3. PierreBrisorgueil commented on Oct 4, 2026

    @PierreBrisorgueil
    ContributorAuthor

    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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions