Resume/session browser needs a safe two-step delete flow

Resolved 💬 3 comments Opened Mar 14, 2026 by oxysoft Closed Apr 18, 2026

Summary

The resume/session browser needs a safe destructive-delete flow.

Recommended behavior:

  • Del marks the currently selected item for deletion
  • this enters a confirmation state / modal UX
  • only Enter confirms
  • Esc cancels

This should be a two-step action. Non-reversible deletion should not happen on a single keystroke.

Problem

If session deletion exists or is added without a guarded flow, it becomes too easy to make an irreversible mistake.

That is especially risky in a dense resume/session browser where users are navigating quickly.

Shift+Del is not a good answer either. It is still too easy to trigger by accident, and destructive actions should not depend on “just use a scarier shortcut” as the safety model.

Requested behavior

In the resume/session browser:

  • pressing Del on the selected session marks it for deletion
  • Codex enters a visible confirmation mode / modal state
  • Enter confirms the deletion
  • Esc cancels and returns to normal browsing

This should be explicit and visually obvious.

Why this matters

Deletion is not reversible.

That means the UX should optimize for preventing accidental loss, not for shaving one keystroke off a dangerous action.

Two-step confirmation is the wise default here.

Design notes

  • the item pending deletion should be clearly highlighted
  • the confirmation state should be obvious in the footer / prompt area
  • canceling should be instant and predictable
  • the interaction should work cleanly with keyboard-only navigation

Related issue

  • broader interactive session management: #6500

Invitation

Would be good to discuss:

  • whether the confirmation UI should be inline or modal
  • whether multi-select delete should follow the same pattern later
  • what the best delete key fallback is on terminals/platforms where Del is awkward

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗