Skip to content

[FEATURE] "Delete all my data" in-app control #116

Description

@Jberma23

Description

Per 0007 — Authentication, account recovery, and data-deletion behavior: there's no server-side data to delete (local-only architecture, 0001), but relying on "just uninstall the app" to delete data isn't discoverable or explicit enough. Build an in-app action that immediately wipes the local encrypted database.

Scope: a settings-level "Delete all my data" control and its confirmation/execution flow. Does not include any server-side deletion (none exists) and does not include the backup/export flow — this is destructive, one-way local deletion only.

Acceptance Criteria

  • Discoverable "Delete all my data" action exists in-app (e.g., in settings)
  • Action requires explicit confirmation before executing (destructive, irreversible — this audience is often tired or distracted, so no accidental one-tap deletion)
  • Confirmation copy is plain-language and states clearly that this cannot be undone
  • Executing the action wipes the local encrypted database immediately
  • After deletion, app returns to a clean/first-run state without crashing or showing stale data
  • Meets WCAG-aligned accessibility requirements (screen reader labels, no color-only affordances, adequate touch target size) for both the control and confirmation step
  • The feature/s being implemented are covered by unit tests - If not, create tests for them on this ticket

Additional Info and Resources

  • Source: 0007-authentication-recovery-deletion.md, "Data deletion" section
  • Directly satisfies the MVP exit-criteria checklist item on documented deletion behavior (referenced in the ADR)
  • Related: onboarding copy about backup responsibility is tracked as a separate ticket, since deletion is unrecoverable and users should understand backup is on them before they ever need this control

QA

  • Trigger deletion and confirm local database is actually wiped (not just hidden in UI)
  • Confirm confirmation step blocks accidental single-tap deletion
  • Test with a screen reader (VoiceOver/TalkBack) that the control and confirmation are announced clearly
  • Confirm app doesn't crash or show broken state immediately after deletion

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions