Make email aliases case-insensitive #43
Draft
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.
Problem
Email addresses are case-insensitive according to RFC standards, but the email forwarding worker was treating aliases as case-sensitive. This meant that
[email protected]would work, but[email protected]or[email protected]would be rejected, causing confusion for users.Solution
This PR normalizes all alias and group comparisons to lowercase throughout the codebase, making email address matching case-insensitive while maintaining all existing functionality.
Changes Made
Core Logic Updates:
Config.recipientConfigto convert both aliases and recipient accounts to lowercase before comparisonConfig.aliasesandConfig.groupsgetters to return lowercase valuesConfig.targetIsGroupto use lowercase comparisonConfig.targetFromRecipientWithDelimiterto use lowercase recipient accountConfig.emailAddressesForGroupto perform case-insensitive group lookupsProcessor._handleDelimitedTargetto use case-insensitive alias matchingType Safety Improvements:
groupsandtypefields optional inAccountsForConfigTypeinterface to reflect actual usage patterns and prevent runtime errorsTesting
Added comprehensive test coverage for case-insensitive matching:
[email protected])[email protected])[email protected])[email protected])[email protected])All 15 tests passing (10 existing + 5 new).
Impact
✅ No breaking changes - existing lowercase aliases continue to work exactly as before
✅ Improved user experience - uppercase and mixed-case variations now work correctly
✅ Aligns with standard email behavior per RFC specifications
Original prompt
Fixes #30
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.