Fix onboarding UX and prepare replaceable journey analytics #13

Merged
tech merged 2 commits from onboarding-12 into main 2026-09-12 06:40:37 +00:00
Owner

Fixes the four UX review findings: sent recipients cannot be edited without explicitly leaving sent state; confirmation errors prioritize retry; demo status/outcomes are prominent and truthful; submitted auth journeys now emit semantic analytics.

Adds shared sxchnge_analytics with typed events, privacy-safe correlation, bounded in-memory dummy capture, retry/deduplication and abandonment semantics. InstrumentedAuthServices decorates shared auth services so widget rebuilds cannot emit outcomes. Inject a future PostHog adapter through SxchngeApp.analyticsService; no SDK, key, logging, persistence or network collection is included.

Closes #12 when merged. The contract in docs/ux/auth-journeys.md defines event consumers, attempts, a 30-minute settled inactivity window, metrics, privacy, simulated results and the PostHog adapter boundary. Cross-device correlation requires a future backend contract; missing tab-close signals stay unknown. Native VoiceOver/TalkBack release audit remains distinct from automated semantics checks.

Validation: 68 tests passed; formatting, Flutter analysis in app/auth/analytics and web build passed. New tests cover correlated signup→confirmation, simulated outcomes, retries, duplicate results, stale completions, inactivity versus pending work, analytics failures, recipient editing, keyboard recovery, headings/live regions and mobile target labels/sizes. Browser walkthrough confirms mobile recovery and Tab/Enter submission.

Fixes the four UX review findings: sent recipients cannot be edited without explicitly leaving sent state; confirmation errors prioritize retry; demo status/outcomes are prominent and truthful; submitted auth journeys now emit semantic analytics. Adds shared `sxchnge_analytics` with typed events, privacy-safe correlation, bounded in-memory dummy capture, retry/deduplication and abandonment semantics. `InstrumentedAuthServices` decorates shared auth services so widget rebuilds cannot emit outcomes. Inject a future PostHog adapter through `SxchngeApp.analyticsService`; no SDK, key, logging, persistence or network collection is included. Closes #12 when merged. The contract in `docs/ux/auth-journeys.md` defines event consumers, attempts, a 30-minute settled inactivity window, metrics, privacy, simulated results and the PostHog adapter boundary. Cross-device correlation requires a future backend contract; missing tab-close signals stay unknown. Native VoiceOver/TalkBack release audit remains distinct from automated semantics checks. Validation: 68 tests passed; formatting, Flutter analysis in app/auth/analytics and web build passed. New tests cover correlated signup→confirmation, simulated outcomes, retries, duplicate results, stale completions, inactivity versus pending work, analytics failures, recipient editing, keyboard recovery, headings/live regions and mobile target labels/sizes. Browser walkthrough confirms mobile recovery and Tab/Enter submission.
tech added 1 commit 2026-09-12 06:37:28 +00:00
Make recipient changes explicit, prioritize verification retry, and label simulated outcomes prominently. Add shared typed analytics with bounded dummy capture, correlated service events and documented PostHog adapter contract. Validate privacy, retries, abandonment, keyboard recovery and accessibility. Related to #12.
tech self-assigned this 2026-09-12 06:38:02 +00:00
tech added this to the SXCHNGE project 2026-09-12 06:38:02 +00:00
tech added the frontend label 2026-09-12 06:38:03 +00:00
tech added 1 commit 2026-09-12 06:38:08 +00:00
tech merged commit 1e9340c7e7 into main 2026-09-12 06:40:37 +00:00
tech deleted branch onboarding-12 2026-09-12 06:40:38 +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#13