Fix magic-link verify URLs in email and related create-flow QA #70

Merged
an.di merged 4 commits from adilallo/fix/QaFeedback into main 2026-09-01 16:09:31 +00:00
Owner

Summary

  • Send magic-link, invite, and email-change mail as multipart HTML with the verify URL in an href, so quoted-printable wrapping can no longer turn token= into token=3D and look like an expired link.
  • Fall back From to the Cloudron mailbox when SMTP_FROM is unset; read retryAfterMs from the API error body on 429; mention spam/promotions in the login success copy.
  • Create-flow QA on this branch: method-card modals open with editable fields and tertiary defaults, unsaved wizard/module edits warn on tab close, and custom decision cards no longer seed a 75% consensus value.
  • Cloudron manifest 0.1.12. Ops docs note SES-relayed mail and that Cloudron Status skips SPF/DKIM while a relay is on.

Test plan

  • Request a magic link on staging, open the message, confirm the link is a real <a href> (not a wrapped plaintext URL), and sign in succeeds within 15 minutes.
  • Repeat from a non-Gmail inbox if possible (the original failure was a mangled token, not missing mail).
  • 429 on magic-link request still surfaces a retry wait.
  • Create-flow: open a method card, edit fields, close the tab and confirm the unload warning; publish a custom decision card and confirm wizard copy is used instead of a seeded 75% consensus.
## Summary - Send magic-link, invite, and email-change mail as multipart HTML with the verify URL in an `href`, so quoted-printable wrapping can no longer turn `token=` into `token=3D` and look like an expired link. - Fall back `From` to the Cloudron mailbox when `SMTP_FROM` is unset; read `retryAfterMs` from the API error body on 429; mention spam/promotions in the login success copy. - Create-flow QA on this branch: method-card modals open with editable fields and tertiary defaults, unsaved wizard/module edits warn on tab close, and custom decision cards no longer seed a 75% consensus value. - Cloudron manifest `0.1.12`. Ops docs note SES-relayed mail and that Cloudron Status skips SPF/DKIM while a relay is on. ## Test plan - [ ] Request a magic link on staging, open the message, confirm the link is a real `<a href>` (not a wrapped plaintext URL), and sign in succeeds within 15 minutes. - [ ] Repeat from a non-Gmail inbox if possible (the original failure was a mangled token, not missing mail). - [ ] 429 on magic-link request still surfaces a retry wait. - [ ] Create-flow: open a method card, edit fields, close the tab and confirm the unload warning; publish a custom decision card and confirm wizard copy is used instead of a seeded 75% consensus.
an.di self-assigned this 2026-09-01 16:09:17 +00:00
an.di added 4 commits 2026-09-01 16:09:17 +00:00
Seeded section text should look like the form default state, not locked primary, and Customize stays on the kebab instead of unlocking the body.

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Wire Back on the final-review chip editor to the same dismiss path as close, instead of a no-op.

Co-authored-by: Cursor <cursoragent@cursor.com>
Staging was delivering magic links that looked expired because the token query string was encoded and wrapped in plaintext MIME. Also read rate-limit retry from the API error body, mention spam in the success copy, and document SES relay DNS.

Co-authored-by: Cursor <cursoragent@cursor.com>
an.di merged commit fa928d1b2c into main 2026-09-01 16:09:31 +00:00
an.di deleted branch adilallo/fix/QaFeedback 2026-09-01 16:09:31 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: CommunityRule/community-rule#70