fix: distinguish project-invitation email subject from plain org invitation - #74
Merged
Merged
Conversation
… invitation sendProjectInvitationEmail reused sendInvitationEmail's subject, heading, and preheader verbatim — a recipient scanning their inbox list couldn't tell a project invite apart from a plain org invite (the only difference was buried in a body paragraph). Both now name the project explicitly. Found via real end-to-end Mailpit verification, not just unit tests.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Follow-up to #73 (merged before this commit was pushed to the branch). Real end-to-end verification against a running app + Mailpit found that
sendProjectInvitationEmail's subject, heading, and preheader were copy-pasted verbatim fromsendInvitationEmail— a recipient scanning their inbox list couldn't tell a project invite apart from a plain org invite; the only difference was buried in an extra body paragraph.Both the subject line and the in-email heading/preheader now name the project explicitly.
Bounded context / area: iam
Related issue / US: Follow-up to #73
Type of Change
feat— new featurefix— bug fixrefactor— code change without behavior changetest— tests onlydocs— documentation onlybuild/ci— build, dependencies, or CI/CDchore— maintenanceChecklist
develop(notmain)feature/*,bugfix/*, orhotfix/*./gradlew buildpasses locally (compile + tests)iam.infrastructure.emailSmtpEmailAdapterTestcontent assertions still pass; no new test added since the fix is subject-line/heading text, not new logic to unit test in isolation (covered by the E2E Mailpit verification instead).pemkeys are committedCHANGELOG.mdupdated under[Unreleased]— not done, this is a same-day fix to an unreleased entry already documented in feat: redesign transactional email templates with 2026 best practices #73; no separate entry neededHow to Test
POST /api/organizations/{orgId}/projects/{projectId}/members/invite) and a plain org invitation (POST /api/organizations/{orgId}/members) side by sideNotes / Screenshots (optional)
Found via real E2E verification (app + Mailpit, all 5 email flows triggered through actual API calls) after #73 merged — not caught by unit tests since they only assert body content, not subject lines.