feat: add account deletion with explicit confirmation (#363)
* feat: add account deletion with explicit confirmation
users can now permanently delete all their data from plyr.fm:
- DELETE /account/ endpoint with handle confirmation
- deletes tracks, albums, likes, comments, preferences, sessions, queue
- deletes R2 objects (audio files, images)
- optional: delete ATProto records from user's PDS with separate consent
- clear warning about orphaned references when deleting ATProto records
docs: updated offboarding.md with full account deletion documentation
tests: comprehensive regression tests for all deletion scenarios
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
* fix: correct test model fields and use client.request for DELETE with body
- use client.request("DELETE", ..., json=...) since AsyncClient.delete() doesn't support json=
- use oauth_session_data (string) not oauth_data (bytes) for UserSession
- use state (dict) not track_ids/current_index for QueueState
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
* feat: add pdsls.dev link for self-service PDS management
users can now click through to pdsls.dev to manage their ATProto
records directly, or let us clean them up via the checkbox option.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
---------
Co-authored-by: Claude <noreply@anthropic.com>
authored by
zzstoatzz.io
Claude
and committed by
GitHub
89c80e18
0b63df26