Show accepted signup delivery without a second send step #63

Merged
tech merged 2 commits from email-verification-62 into main 2026-10-23 10:31:43 +00:00
Owner

An accepted signup already confirms that its activation email was queued. Opening the next screen nevertheless invoked the verification service again and could replace that confirmed outcome with an internal-error screen. Signup now returns a domain delivery receipt through its mapper/provider result, and transient navigation initializes the verification provider directly in the sent state. This removes the backend adapter’s hidden one-use cache; explicit resend always invokes the service.

Regressions cover an accepted signup with an unavailable follow-up send service (failing before this change), EN/RU at 390px and 1.5x text scale, real-adapter mapping, resend failure/retry, state reset, recipient replacement, history privacy and correlated outcome events. The signup receipt is captured before clearing controllers resets auth state. Queue acceptance remains distinct from inbox delivery, activation and authentication.

Validation: changed-file Dart format checks, Flutter analysis in app/auth, and make test-frontend (221 tests) pass. A release-browser fixture confirms inbox state without a send, then failure only after explicit resend. Fresh stable image resolution, frontend build/deployment and sh infra/local/tools.sh verify pass; the served bundle matches the image and normal-trust HTTPS returns 200. No email or payment was submitted during validation; no security scan was requested. Native Safari’s original client exception was not captured, so the exact original exception is not claimed as diagnosed. Details are in docs/ux/auth-journeys.md.

Closes #62.

An accepted signup already confirms that its activation email was queued. Opening the next screen nevertheless invoked the verification service again and could replace that confirmed outcome with an internal-error screen. Signup now returns a domain delivery receipt through its mapper/provider result, and transient navigation initializes the verification provider directly in the sent state. This removes the backend adapter’s hidden one-use cache; explicit resend always invokes the service. Regressions cover an accepted signup with an unavailable follow-up send service (failing before this change), EN/RU at 390px and 1.5x text scale, real-adapter mapping, resend failure/retry, state reset, recipient replacement, history privacy and correlated outcome events. The signup receipt is captured before clearing controllers resets auth state. Queue acceptance remains distinct from inbox delivery, activation and authentication. Validation: changed-file Dart format checks, Flutter analysis in app/auth, and `make test-frontend` (221 tests) pass. A release-browser fixture confirms inbox state without a send, then failure only after explicit resend. Fresh stable image resolution, frontend build/deployment and `sh infra/local/tools.sh verify` pass; the served bundle matches the image and normal-trust HTTPS returns 200. No email or payment was submitted during validation; no security scan was requested. Native Safari’s original client exception was not captured, so the exact original exception is not claimed as diagnosed. Details are in `docs/ux/auth-journeys.md`. Closes #62.
tech added the frontend label 2026-10-23 07:34:49 +00:00
tech self-assigned this 2026-10-23 07:34:49 +00:00
tech added 1 commit 2026-10-23 07:34:49 +00:00
tech added 1 commit 2026-10-23 07:35:29 +00:00
tech merged commit 658d715c8a into main 2026-10-23 10:31:43 +00:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: tech/sxchnge#63