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
+4 -53
View File
@@ -1105,7 +1105,6 @@ export const dict: Record<I18nKey, string> = {
'helpDialog.section.panels': '패널',
'helpDialog.section.interface': '인터페이스',
'helpDialog.item.openCommandPalette': '명령 팔레트 열기',
'helpDialog.item.quickOpenFile': '빠른 파일 열기',
'helpDialog.item.showKeyboardShortcuts': '키보드 단축키 보기(이 대화상자)',
'helpDialog.item.toggleSessionSidebar': '토글 세션 사이드바',
'helpDialog.item.cycleAgent': '에이전트 순환(채팅 입력)',
@@ -1586,68 +1585,20 @@ export const dict: Record<I18nKey, string> = {
'chat.messageBody.shellCommand.showOutput': '표시 출력',
'chat.messageBody.shellCommand.copied': '복사됨',
'chat.messageBody.shellCommand.copyOutput': '출력 복사',
'commandPalette.input.placeholder': '명령 입력 또는 검색…',
'commandPalette.title': '명령 팔레트',
'commandPalette.description': '파일, 세션, 명령을 검색합니다.',
'commandPalette.input.placeholder': '파일, 세션, 명령 검색…',
'commandPalette.empty.noResults': '결과 없음',
'commandPalette.section.sessions': '세션',
'commandPalette.section.view': '보기',
'commandPalette.section.theme': '테마',
'commandPalette.section.settings': '설정',
'commandPalette.section.recentSessions': '최근 세션',
'commandPalette.item.quickOpen': '빠른 열기',
'commandPalette.empty.searchingFiles': '파일 검색 중…',
'commandPalette.item.newSession': '새 세션',
'commandPalette.item.newWorktreeDraft': '새 워크트리 드래프트',
'commandPalette.item.showSessionSwitcher': '세션 전환기 표시',
'commandPalette.item.toggleSidebar': '토글 사이드바',
'commandPalette.item.toggleRightSidebar': '오른쪽 사이드바 전환',
'commandPalette.item.showGitRightSidebar': '오른쪽 사이드바에 Git 표시',
'commandPalette.item.showFilesRightSidebar': '오른쪽 사이드바에 파일 표시',
'commandPalette.item.showContextUsage': '컨텍스트 사용량 표시',
'commandPalette.item.showPlan': '플랜 표시',
'commandPalette.item.toggleTerminal': '토글 터미널',
'commandPalette.item.collapseTerminal': '접기 터미널',
'commandPalette.item.expandTerminal': '펼치기 터미널',
'commandPalette.item.keyboardShortcuts': '키보드 단축키',
'commandPalette.item.themeLight': '라이트',
'commandPalette.item.themeDark': '다크',
'commandPalette.item.themeSystem': '시스템',
'commandPalette.item.openSettings': '설정... 열기',
'commandPalette.session.untitled': '제목 없는 세션',
'commandPalette.settingsGroup.appearance': '외관',
'commandPalette.settingsGroup.projects': '프로젝트',
'commandPalette.settingsGroup.general': '일반',
'commandPalette.settingsGroup.opencode': 'OpenChamber',
'commandPalette.settingsGroup.git': 'Git',
'commandPalette.settingsGroup.skills': '스킬',
'commandPalette.settingsGroup.usage': '사용량',
'commandPalette.settingsGroup.advanced': '고급',
'commandPalette.settingsPage.home': '홈',
'commandPalette.settingsPage.projects': '프로젝트',
'commandPalette.settingsPage.remoteInstances': '원격 인스턴스',
'commandPalette.settingsPage.providers': '프로바이더',
'commandPalette.settingsPage.usage': '사용량',
'commandPalette.settingsPage.agents': '에이전트',
'commandPalette.settingsPage.commands': '명령',
'commandPalette.settingsPage.mcp': 'MCP',
'commandPalette.settingsPage.skillsInstalled': '설치된 스킬',
'commandPalette.settingsPage.skillsCatalog': '스킬 카탈로그',
'commandPalette.settingsPage.git': 'Git',
'commandPalette.settingsPage.appearance': '외관',
'commandPalette.settingsPage.chat': '채팅',
'commandPalette.settingsPage.shortcuts': '키보드 단축키',
'commandPalette.settingsPage.sessions': '세션',
'commandPalette.settingsPage.magicPrompts': 'Magic 프롬프트',
'commandPalette.settingsPage.notifications': '알림',
'commandPalette.settingsPage.voice': '음성',
'commandPalette.settingsPage.tunnel': '리모트 터널',
'quickOpenDialog.title': '빠른 열기',
'quickOpenDialog.description': '현재 프로젝트에서 파일을 빠르게 여세요.',
'quickOpenDialog.input.placeholder': '파일 검색…',
'quickOpenDialog.empty.openProjectFirst': '먼저 프로젝트를 여세요',
'quickOpenDialog.empty.searchingFiles': '파일 검색 중…',
'quickOpenDialog.empty.noMatchingFiles': '일치하는 파일이 없습니다',
'quickOpenDialog.empty.noMatchingRecentFiles': '최근 파일이 없습니다',
'quickOpenDialog.group.files': '파일',
'quickOpenDialog.group.recentFiles': '최근 파일',
'openCodeStatusDialog.title': 'OpenCode 상태',
'openCodeStatusDialog.description': '현재 OpenCode 상태와 진단 정보를 확인합니다.',
'openCodeStatusDialog.actions.copy': '복사',