feat(palette): unify quick open into command palette with multi-source search

Merge file picker into command palette. Single Cmd+P entry searches
files, sessions, settings pages and commands; groups re-order by best
fuzzy score per source. Sessions show branch labels; git status is
lazily fetched for all session directories on open.

Drop QuickOpenDialog and Cmd+K shortcut.
This commit is contained in:
Bohdan Triapitsyn
2026-04-30 18:37:37 +03:00
parent 57eec76a7b
commit 24533dfe32
23 changed files with 550 additions and 882 deletions
@@ -18,7 +18,6 @@ export const useKeyboardShortcuts = () => {
const currentSessionId = useSessionUIStore((s) => s.currentSessionId);
const abortCurrentOperation = sessionActions.abortCurrentOperation;;
const toggleCommandPalette = useUIStore((s) => s.toggleCommandPalette);
const setQuickOpenOpen = useUIStore((s) => s.setQuickOpenOpen);
const toggleHelpDialog = useUIStore((s) => s.toggleHelpDialog);
const toggleSidebar = useUIStore((s) => s.toggleSidebar);
const toggleRightSidebar = useUIStore((s) => s.toggleRightSidebar);
@@ -62,12 +61,6 @@ export const useKeyboardShortcuts = () => {
return;
}
if (eventMatchesShortcut(e, combo('open_quick_open'))) {
e.preventDefault();
setQuickOpenOpen(true);
return;
}
if (eventMatchesShortcut(e, combo('open_status'))) {
e.preventDefault();
void showOpenCodeStatus();
@@ -425,7 +418,6 @@ export const useKeyboardShortcuts = () => {
openNewSessionDraft,
abortCurrentOperation,
toggleCommandPalette,
setQuickOpenOpen,
toggleHelpDialog,
toggleSidebar,
toggleRightSidebar,
+3 -3
View File
@@ -90,7 +90,7 @@ export const useMenuActions = (
) => {
const openNewSessionDraft = useSessionUIStore((s) => s.openNewSessionDraft);
const toggleCommandPalette = useUIStore((s) => s.toggleCommandPalette);
const setQuickOpenOpen = useUIStore((s) => s.setQuickOpenOpen);
const setCommandPaletteOpen = useUIStore((s) => s.setCommandPaletteOpen);
const toggleHelpDialog = useUIStore((s) => s.toggleHelpDialog);
const toggleSidebar = useUIStore((s) => s.toggleSidebar);
const setSessionSwitcherOpen = useUIStore((s) => s.setSessionSwitcherOpen);
@@ -146,7 +146,7 @@ export const useMenuActions = (
break;
case 'quick-open':
setQuickOpenOpen(true);
setCommandPaletteOpen(true);
break;
case 'new-session':
@@ -237,7 +237,7 @@ export const useMenuActions = (
setAboutDialogOpen,
setActiveMainTab,
setSessionSwitcherOpen,
setQuickOpenOpen,
setCommandPaletteOpen,
setSettingsDialogOpen,
setThemeMode,
toggleCommandPalette,