Note-email recipient first-name + GL-code / original-description live plumbing
Why (split from T-049 amendments, 2026-06-16)¶
The note-notification + WOPC payment email redesign (T-049 amendments, nightly 8f732382 β main) shipped with two fields wired as BEST-EFFORT placeholders rather than live data:
- Recipient first name β the greeting falls back to a generic/full name instead of the recipient's actual first name.
- GL code + original transaction description β surfaced from whatever was conveniently available at send time, not plumbed from the authoritative transaction record.
Scope¶
Plumb both from the source of truth at send time: - recipient first name from the resolved Individual / payee record (not a string split). - GL code + original description from the transaction (use buildInvoiceRecord / transaction accessors per docs/api-catalog.md) so the email mirrors the ledger exactly.
Log¶
- 2026-06-16 created. Reserved earlier in the T-049 amendments entry; formalized as its own UID.
Decision log¶
2026-07-09 β re-scoped onto the T-160/T-161 name infrastructure + routed to Records (Infrastructure)¶
- β Read AGENTS.md. The first-name half of this task predates T-160/T-161: the app now has a per-recipient greeting resolver + stored name preferences (built by Records (Infrastructure)). The remnant here is (a) wiring note emails through that resolver instead of ad-hoc first names, and (b) the GL-code / original-description live plumbing. Owner routing (2026-07-09): β Records (Infrastructure) β it rides infrastructure they built.
- Source: EOP Local Assistance (fork) Β· session edb0abc7-6373-449b-8e31-379fd38d391b