fix: update keyboard shortcut abort logic

Use current session activity to determine when abort shortcuts are available
Prevent abort priming when there is no active session
This commit is contained in:
Bohdan Triapitsyn
2026-07-24 22:13:38 +03:00
parent e908db637b
commit 16df9412fd
2 changed files with 8 additions and 8 deletions
+4 -4
View File
@@ -97,7 +97,7 @@
},
"packages/electron": {
"name": "@openchamber/electron",
"version": "1.16.2",
"version": "1.16.3",
"dependencies": {
"@openchamber/web": "workspace:*",
"electron-context-menu": "^4.1.2",
@@ -133,7 +133,7 @@
},
"packages/ui": {
"name": "@openchamber/ui",
"version": "1.16.2",
"version": "1.16.3",
"dependencies": {
"@aparajita/capacitor-secure-storage": "^8.0.0",
"@base-ui/react": "^1.4.0",
@@ -238,7 +238,7 @@
},
"packages/vscode": {
"name": "openchamber",
"version": "1.16.2",
"version": "1.16.3",
"dependencies": {
"@openchamber/ui": "workspace:*",
"@opencode-ai/sdk": "1.18.4",
@@ -261,7 +261,7 @@
},
"packages/web": {
"name": "@openchamber/web",
"version": "1.16.2",
"version": "1.16.3",
"bin": {
"openchamber": "./bin/cli.js",
},
@@ -5,7 +5,7 @@ import { useSelectionStore } from '@/sync/selection-store';
import * as sessionActions from '@/sync/session-actions';
import { useUIStore } from '@/stores/useUIStore';
import { useThemeSystem } from '@/contexts/useThemeSystem';
import { useAssistantStatus } from '@/hooks/useAssistantStatus';
import { useCurrentSessionActivity } from '@/hooks/useSessionActivity';
import { createWorktreeSession } from '@/lib/worktreeSessionCreator';
import { useConfigStore } from '@/stores/useConfigStore';
import { canUseElectronDesktopIPC, invokeDesktop, isVSCodeRuntime } from '@/lib/desktop';
@@ -43,7 +43,7 @@ export const useKeyboardShortcuts = () => {
const currentDirectory = useDirectoryStore((s) => s.currentDirectory);
const activeProject = useProjectsStore((s) => s.getActiveProject());
const { themeMode, setThemeMode } = useThemeSystem();
const { working } = useAssistantStatus();
const { phase: sessionPhase } = useCurrentSessionActivity();
const abortPrimedUntilRef = React.useRef<number | null>(null);
const abortPrimedTimeoutRef = React.useRef<ReturnType<typeof setTimeout> | null>(null);
const themeModeRef = React.useRef(themeMode);
@@ -569,7 +569,7 @@ export const useKeyboardShortcuts = () => {
// Double-ESC abort logic - only when on chat tab with no overlays
const sessionId = currentSessionId;
const canAbortNow = working.canAbort && Boolean(sessionId);
const canAbortNow = sessionPhase !== 'idle' && Boolean(sessionId);
if (!canAbortNow) {
resetAbortPriming();
return;
@@ -631,7 +631,7 @@ export const useKeyboardShortcuts = () => {
setPromptNavigatorPanelOpen,
toggleExpandedInput,
setThemeMode,
working,
sessionPhase,
armAbortPrompt,
resetAbortPriming,
currentSessionId,