Skip to content

[UX] No confirmation for destructive slash commands (/clear, /reset, /new, /undo) #4069

@SHL0MS

Description

@SHL0MS

Summary

Destructive slash commands execute immediately with zero confirmation:

Command What it destroys Confirmation?
/clear Screen AND conversation history (cli.py:1392-1399) None
/reset Entire conversation history (cli.py:1402-1403, cli.py:997-1000) None
/undo Last exchange None
/cron remove Scheduled job None

By contrast, dangerous terminal commands go through a proper 4-choice approval flow (tools/terminal_tool.py). Slash commands that destroy conversation data have zero safety net.

/rollback is the only destructive command that creates a recovery snapshot first.

Suggested fix

Add a confirmation prompt before destructive commands:

elif cmd_lower == "/clear":
    confirm = input("Clear screen and reset conversation? [y/N] ")
    if confirm.lower() == "y":
        self.console.clear()
        self.conversation_history = []
        self.show_banner()

With options:

  • --force flag to skip confirmation (for scripting)
  • Config key tui.confirm_destructive: false to disable globally
  • Or a simple y/N prompt (less intrusive than the full approval flow)

Impact

  • Severity: High — accidental /clear or /reset loses entire conversation
  • Risk: Medium — changes muscle-memory for users who type /new<enter> quickly
  • Effort: Small

Ref

UX audit item #17.

Metadata

Metadata

Assignees

No one assigned

    Labels

    type/bugSomething isn't working

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions