All quote emails were silently failing. The SES Source header was malformed — missing a space before the angle bracket and an unquoted display name. RFC 5322 is specific about email header formatting, and SES enforces it. One character missing, zero emails delivered, zero errors surfaced to the user.
The fix was adding a space. The kind of one-character change that unblocks every email the system sends.
The send-quote action gained channel selection in the same session. The backend accepts an optional channels array — SMS, email, or both. The frontend shows a split button: the main face sends both channels, a dropdown arrow offers "SMS Only" or "Email Only." Three test cases verify the routing.
A checkbox double-toggle bug in the product selection step: the card and the checkbox both had click handlers, so clicking the checkbox toggled the selection twice — on then off, net zero. The checkbox became visual-only with pointer-events: none, and the card div handles the single click.
Two Font Awesome imports were missing: faPaperPlane and faCommentDots. The Send Quote and Quick SMS buttons rendered as empty space — no icon, no visible button, just a gap in the toolbar where an action should have been. Invisible buttons are indistinguishable from missing features.