Account Management
This page covers the full account lifecycle: deactivation, deletion, email verification, and account status.
Each property has its own checkbox marking whether that specific piece is fully implemented and functional end to end (frontend + backend) — update these yourself as work lands; this page won't overwrite them.
- Account status query
- Email verification: send / resend / verify —
Settings → Email verificationshows verified status and resends (resendEmailVerification); an emailed link to/settings/email-verification?token=…is consumed on mount to verify (verifyEmail) - Deactivate account
- Reactivate account — a "Reactivate account" flow appears on
Settings → Account managementwhen the account is deactivated (reactivateAccount, password-confirmed) - Request account deletion (30-day grace period) and cancel
- Delete account immediately — a "Delete permanently now" option on
Settings → Account management(deleteAccountImmediately, password-confirmed) that bypasses the 30-day grace period and anonymizes the account in place (GDPR), same as the grace-period finalizer - Break mode (pause account temporarily)
- Auto-reply message during break — the "Take a break" flow now has an optional auto-reply textarea sent in
takeBreak's input (autoReplyMessage) - Reset notification settings to defaults — "Reset notification settings to defaults" button on the Notifications page (
resetNotificationSettings). - Reset privacy settings to defaults —
resetPrivacySettingsis wired end to end: a "Reset to defaults" button onSettings → Account privacy(AccountPrivacyPage.tsx), confirmed via a dialog before it resets the core privacy toggles (not the separate extended-privacy or media-preferences settings, which have no reset mutation of their own). - Activity tracking & analytics —
Settings → Activity insightssurfacesgetUserActivityStats(active days, streak, most-active hour, total time) and now also rendersgetActivityHeatmapas a GitHub-style contribution heatmap of posting activity. ThegetDeviceStats/getAccountAnalyticsJSON queries exist but aren't visualised on this page yet - Privacy recommendations —
Settings → Privacy checkup(getPrivacyRecommendations+refreshRecommendations) - Memorialized accounts — full stack. Users submit a request from
Settings → Memorialization request(requestMemorialization), which persists on the deceased user's row (memorializationStatus/memorializationRequestedBy/memorializationProof); admins review the queue at/moderation/memorialization(adminGetMemorializationRequests+adminReviewMemorialization, gated onMODERATE_CONTENT); approved profiles show a "Remembering" banner (PublicProfilePage,isMemorialized/showMemorialBanner). The manager's earlier mocked request flow and snake_case field bugs were fixed to write the real camelCase columns.
See the technical reference for GraphQL schemas, routes, source file links, and per-field wiring status.