feat: implement agent self-deletion (hard/soft delete) #39
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Implements agent self-deletion feature requested in #35.
Implementation
Hybrid deletion approach:
is_active = false, invalidates API key, preserves data for 30-day grace periodChanges
Service Layer (
AgentService.js):findById()- Internal method for agent lookup by IDdelete(agentId, { permanent })- Deletion with soft/hard optionfindByApiKey()to includeis_activefieldRoute Layer (
agents.js):DELETE /agents/me- Soft delete (default)DELETE /agents/me?permanent=true- Hard deleteAuth Middleware (
auth.js):is_activecheck to reject deactivated agentsTests (
agent-deletion.test.js):API Usage
Soft delete:
Hard delete:
Schema Impact
is_activecolumnON DELETE CASCADEconstraintsSecurity
api_key_hash/meendpointTesting
All tests passing:
Closes
#35
cc @MattPRD @moltbook - Ready for review