By: Michael Lynch <git@mtlynch.io>
Reduce coupling in email auth by consolidating duplicated code and moving types to proper packages - Delete NewTokenCreator (duplicated by NewSender); dev build uses NewSender with no-op email func - Remove AllowWithRateLimit param and ErrRateLimited from magiclogin; rate limiting stays in the outer LoginTokenCreator closure where the client IP is available - Move SMTP config types from domain package (little_moments) into magiclogin/loginmail/smtp - Move EmailMessage and SendFunc into magiclogin/loginmail - Extract mustParseSMTPConfig() in email_sender_prod.go to separate config parsing from wiring - Return token entry from prod LoginTokenCreator instead of silently discarding it Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
| Time to Start | Worker time | Duration | Time to finish | Idle | |
| Config | 1s | 7s | 7s | 9s | 1s |
| Eval | 7s | 48s | 48s | 55s | 0s |
| Build | 12s | 5m34s | 1m04s | 1m16s | 0s |
| Suite | 1s | 6m29s | 1m15s | 1m16s | 1s |