feat(tui): replace /clear double-press gate with a proper confirm overlay
The time-window gate felt wrong — users would hit /clear, read the prompt, retype, and consistently blow past the window. Swapping to a real yes/no overlay that blocks input like the existing Approval and Clarify prompts. - add ConfirmReq type + OverlayState.confirm + $isBlocked coverage - ConfirmPrompt component (prompts.tsx): cancel row on top as the default, danger-coloured confirm row on the bottom, Y/N hotkeys, Enter on default = cancel, Esc/Ctrl+C cancel - wire into PromptZone (appOverlays.tsx) - /clear + /new now push onto the overlay instead of arming a timer - HERMES_TUI_NO_CONFIRM=1 still skips the prompt for scripting - drop the destructiveGate + createSlashHandler reset wiring (destructive.ts and its tests removed) Refs #4069.
This commit is contained in:
@@ -29,6 +29,15 @@ export interface ApprovalReq {
|
||||
description: string
|
||||
}
|
||||
|
||||
export interface ConfirmReq {
|
||||
cancelLabel?: string
|
||||
confirmLabel?: string
|
||||
danger?: boolean
|
||||
detail?: string
|
||||
onConfirm: () => void
|
||||
title: string
|
||||
}
|
||||
|
||||
export interface ClarifyReq {
|
||||
choices: string[] | null
|
||||
question: string
|
||||
|
||||
Reference in New Issue
Block a user