Files
2025-11-29 17:59:29 +08:00

4.6 KiB

You are managing a session memory system. The user wants to delete a session permanently.

Task: Delete Session

Delete a session and all its data. This action cannot be undone.

IMPORTANT: This is a destructive operation. Always confirm with the user before deleting.


Step 1: Parse Arguments

Check if user provided a session name:

  • If user provided a session name (e.g., /session:delete old-feature) → Use that name
  • If no name provided → Show error and list available sessions for reference

If no session name provided:

❌ Session name required.

Usage: /session:delete [session-name]

Available sessions: /session:list

Then STOP.


Step 2: Get Session Details

Run the CLI command to get session information:

node ${CLAUDE_PLUGIN_ROOT}/cli/session-cli.js get [session-name]

If the command fails (session not found), display:

❌ Session '[session-name]' not found.

Available sessions: /session:list

Then STOP.


Step 3: Check If Active Session

Check if this is the currently active session by running:

node ${CLAUDE_PLUGIN_ROOT}/cli/session-cli.js list --json

Parse the JSON and check if activeSession === session-name.


Step 4: Show Confirmation Prompt

Use the AskUserQuestion tool to confirm deletion.

If NOT the active session:

{
  "questions": [
    {
      "question": "⚠️ Delete Session: [session-name]\n\n📅 Started: [started]\n📸 Snapshots: [count]\n📁 Files Involved: [count]\n\nThis will permanently delete all session data.\n\nAre you sure you want to delete this session?",
      "header": "Confirm Delete",
      "multiSelect": false,
      "options": [
        {
          "label": "Yes, Delete",
          "description": "Permanently delete this session and all its data"
        },
        {
          "label": "No, Cancel",
          "description": "Keep the session and go back"
        }
      ]
    }
  ]
}

If IS the active session:

{
  "questions": [
    {
      "question": "⚠️ WARNING: Deleting ACTIVE Session!\n\n'[session-name]' is your currently active session.\n\n📅 Started: [started]\n📸 Snapshots: [count]\n📁 Files Involved: [count]\n\nDeleting this will:\n- End your current working session\n- Delete all snapshots and context\n- Clear the active session\n\nThis cannot be undone.\n\nAre you ABSOLUTELY SURE?",
      "header": "Delete Active",
      "multiSelect": false,
      "options": [
        {
          "label": "Yes, Delete Active Session",
          "description": "I understand this will end my active session"
        },
        {
          "label": "No, Cancel",
          "description": "Keep the session and go back"
        }
      ]
    }
  ]
}

Step 5: Handle User Response

If user selected "No, Cancel":

Session deletion cancelled.

Then STOP.

If user selected "Yes" (or "Yes, Delete Active Session"):

Proceed to Step 6.


Step 6: Execute Deletion

Run the CLI delete command:

node ${CLAUDE_PLUGIN_ROOT}/cli/session-cli.js delete [session-name]

The CLI will:

  • Delete the session directory and all files
  • Remove from index
  • Clear active session if needed

Step 7: Display Result

Parse the JSON response from the delete command.

If successful:

For regular session:

✅ Session '[session-name]' has been deleted.

📊 Deleted:
- [count] snapshots
- [count] files tracked

💡 View remaining sessions: /session:list

For active session:

✅ Session '[session-name]' has been deleted.

📊 Deleted:
- [count] snapshots
- [count] files tracked

⚠️ No active session. Start a new one:
   /session:start [name]

💡 View remaining sessions: /session:list

If error occurred:

❌ Error deleting session: [error message]

Try rebuilding the index:
   node ${CLAUDE_PLUGIN_ROOT}/cli/session-cli.js update-index --full-rebuild

Error Handling

  • Session not found: Show available sessions list
  • Permission error: Show clear error message about file permissions
  • Active session: Show extra warning and confirmation
  • CLI error: Show error and suggest index rebuild

Performance

  • Single confirmation: < 300 tokens
  • CLI deletion: < 50ms for small sessions, < 500ms for large sessions
  • Total time: 1-2 seconds including user confirmation

Safety Features

  1. Always requires confirmation - No accidental deletions
  2. Shows what will be deleted - User knows the impact
  3. Extra warning for active session - Prevents losing current work
  4. Clear feedback - User knows what happened
  5. Graceful error handling - Helpful messages on failure