A successful signup must immediately show the confirmed email-queued state instead of a false internal error on the next screen.
Approach
Carry the accepted verification delivery as a domain result through the shared auth service, provider and transient route state. Initialize the verification provider from that receipt instead of asking the verification service to send again. Preserve explicit resend, unverified-login recovery and direct confirmation links. Add regression coverage for accepted signup when a subsequent send would fail, privacy and journey outcome semantics.
Acceptance criteria
Accepted signup shows Check your inbox with its recipient without an automatic verification/send operation.
Signup rejection never claims that email is queued; explicit resend still reaches its service and exposes actual failure/retry state.
Queued state is transient, never serialized to browser history/URLs; reloads and direct links remain honest.
DTO, mapper, service, domain model, provider and UI boundaries remain intact, including preview services.
Semantic journey events reflect confirmed signup queue acceptance and do not double count on navigation or resend.
Focused regressions, formatting, affected-package analysis and make test-frontend pass; frontend review and local rebuild are recorded.
Notes
Primary module email-verification; secondary shared sxchnge_auth and consumer app routing. Owner tech; project SXCHNGE (16); frontend label. The live attempt returned signup 202 and SMTP acceptance 250, with no subsequent verification call; the user confirmed the error appeared immediately after Create account. An isolated release-browser reproduction currently succeeds, so the exact original client exception is not established. This change removes the redundant post-acceptance failure path rather than claiming that exception is diagnosed. Preserve local identity-facts-57 stand configuration and unrelated commits. No real email, activation token or password belongs in tracker text, logs or committed tests. No security scan or merge is authorized.
Delivery: PR #63, implementation commit 3af60f3. Changed-file formatting, Flutter analysis in both affected packages and make test-frontend (221 tests) pass. The failing-before/passing-after regression injects an unavailable follow-up send and covers EN/RU at 390px/1.5x text scaling; explicit resend failure/retry and history/analytics privacy pass. Full frontend and UX/observability review found no remaining task-caused issues. A release-browser fixture verifies accepted signup stays sent without calling resend, then explicit resend fails as configured. Fresh stable image resolution and frontend build/deployment succeeded; the served bundle matches the image at SHA-256 0a45ce6f0b4658b1f03d8e39b9e39fd3fbfcf6f1626cb3f17705dce2da130a6c. Normal-trust HTTPS returns 200 and sh infra/local/tools.sh verify passes all seven services and authenticated Sendico currency/ledger reads. No email, activation, payment or security scan was submitted for this change. Native Safari's original exception remains unobserved. Reload the existing browser tab to load the deployed fix. Scope, measurements, validation and limitations are recorded in docs/ux/auth-journeys.md. PR remains unmerged.
### Goal
A successful signup must immediately show the confirmed email-queued state instead of a false internal error on the next screen.
### Approach
Carry the accepted verification delivery as a domain result through the shared auth service, provider and transient route state. Initialize the verification provider from that receipt instead of asking the verification service to send again. Preserve explicit resend, unverified-login recovery and direct confirmation links. Add regression coverage for accepted signup when a subsequent send would fail, privacy and journey outcome semantics.
### Acceptance criteria
- [x] Accepted signup shows Check your inbox with its recipient without an automatic verification/send operation.
- [x] Signup rejection never claims that email is queued; explicit resend still reaches its service and exposes actual failure/retry state.
- [x] Queued state is transient, never serialized to browser history/URLs; reloads and direct links remain honest.
- [x] DTO, mapper, service, domain model, provider and UI boundaries remain intact, including preview services.
- [x] Semantic journey events reflect confirmed signup queue acceptance and do not double count on navigation or resend.
- [x] Focused regressions, formatting, affected-package analysis and make test-frontend pass; frontend review and local rebuild are recorded.
### Notes
Primary module email-verification; secondary shared sxchnge_auth and consumer app routing. Owner tech; project SXCHNGE (16); frontend label. The live attempt returned signup 202 and SMTP acceptance 250, with no subsequent verification call; the user confirmed the error appeared immediately after Create account. An isolated release-browser reproduction currently succeeds, so the exact original client exception is not established. This change removes the redundant post-acceptance failure path rather than claiming that exception is diagnosed. Preserve local identity-facts-57 stand configuration and unrelated commits. No real email, activation token or password belongs in tracker text, logs or committed tests. No security scan or merge is authorized.
Delivery: [PR #63](https://git.sendico.io/tech/sxchnge/pulls/63), implementation commit `3af60f3`. Changed-file formatting, Flutter analysis in both affected packages and `make test-frontend` (221 tests) pass. The failing-before/passing-after regression injects an unavailable follow-up send and covers EN/RU at 390px/1.5x text scaling; explicit resend failure/retry and history/analytics privacy pass. Full frontend and UX/observability review found no remaining task-caused issues. A release-browser fixture verifies accepted signup stays sent without calling resend, then explicit resend fails as configured. Fresh stable image resolution and frontend build/deployment succeeded; the served bundle matches the image at SHA-256 `0a45ce6f0b4658b1f03d8e39b9e39fd3fbfcf6f1626cb3f17705dce2da130a6c`. Normal-trust HTTPS returns 200 and `sh infra/local/tools.sh verify` passes all seven services and authenticated Sendico currency/ledger reads. No email, activation, payment or security scan was submitted for this change. Native Safari's original exception remains unobserved. Reload the existing browser tab to load the deployed fix. Scope, measurements, validation and limitations are recorded in `docs/ux/auth-journeys.md`. PR remains unmerged.
tech
added the frontend label 2026-10-23 07:26:15 +00:00
tech
self-assigned this 2026-10-23 07:26:15 +00:00
tech
added this to the SXCHNGE project 2026-10-23 07:26:23 +00:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Goal
A successful signup must immediately show the confirmed email-queued state instead of a false internal error on the next screen.
Approach
Carry the accepted verification delivery as a domain result through the shared auth service, provider and transient route state. Initialize the verification provider from that receipt instead of asking the verification service to send again. Preserve explicit resend, unverified-login recovery and direct confirmation links. Add regression coverage for accepted signup when a subsequent send would fail, privacy and journey outcome semantics.
Acceptance criteria
Notes
Primary module email-verification; secondary shared sxchnge_auth and consumer app routing. Owner tech; project SXCHNGE (16); frontend label. The live attempt returned signup 202 and SMTP acceptance 250, with no subsequent verification call; the user confirmed the error appeared immediately after Create account. An isolated release-browser reproduction currently succeeds, so the exact original client exception is not established. This change removes the redundant post-acceptance failure path rather than claiming that exception is diagnosed. Preserve local identity-facts-57 stand configuration and unrelated commits. No real email, activation token or password belongs in tracker text, logs or committed tests. No security scan or merge is authorized.
Delivery: PR #63, implementation commit
3af60f3. Changed-file formatting, Flutter analysis in both affected packages andmake test-frontend(221 tests) pass. The failing-before/passing-after regression injects an unavailable follow-up send and covers EN/RU at 390px/1.5x text scaling; explicit resend failure/retry and history/analytics privacy pass. Full frontend and UX/observability review found no remaining task-caused issues. A release-browser fixture verifies accepted signup stays sent without calling resend, then explicit resend fails as configured. Fresh stable image resolution and frontend build/deployment succeeded; the served bundle matches the image at SHA-2560a45ce6f0b4658b1f03d8e39b9e39fd3fbfcf6f1626cb3f17705dce2da130a6c. Normal-trust HTTPS returns 200 andsh infra/local/tools.sh verifypasses all seven services and authenticated Sendico currency/ledger reads. No email, activation, payment or security scan was submitted for this change. Native Safari's original exception remains unobserved. Reload the existing browser tab to load the deployed fix. Scope, measurements, validation and limitations are recorded indocs/ux/auth-journeys.md. PR remains unmerged.email-verification-62to email-verification-62