Implement double-escape session abort matching TUI behavior

- Add double-escape debounce pattern with 1-second timeout
- First escape shows warning, second escape aborts session
- Fix session busy check to handle undefined timeCompleted field
- Add abortSession API call to sessions store
- Show visual feedback in prompt input during debounce
- Remove Escape from filtered keys in prompt-input auto-focus
This commit is contained in:
Shantur Rathore
2025-10-24 16:09:32 +01:00
parent 6f31ffc467
commit e3bc947195
4 changed files with 109 additions and 19 deletions

View File

@@ -700,6 +700,25 @@ async function sendMessage(
}
}
async function abortSession(instanceId: string, sessionId: string): Promise<void> {
const instance = instances().get(instanceId)
if (!instance || !instance.client) {
throw new Error("Instance not ready")
}
console.log("[abortSession] Aborting session:", { instanceId, sessionId })
try {
await instance.client.session.abort({
path: { id: sessionId },
})
console.log("[abortSession] Session aborted successfully")
} catch (error) {
console.error("[abortSession] Failed to abort session:", error)
throw error
}
}
async function updateSessionAgent(instanceId: string, sessionId: string, agent: string): Promise<void> {
const instanceSessions = sessions().get(instanceId)
const session = instanceSessions?.get(sessionId)
@@ -759,6 +778,7 @@ export {
fetchProviders,
loadMessages,
sendMessage,
abortSession,
setActiveSession,
setActiveParentSession,
clearActiveParentSession,