-
+ {(showReload || showAbout) && (
+
+ {showAbout ? (
+ <>
+ {showReload && (
+
+
+
+
+
+ Restart OpenCode and reload its configuration (agents, commands, skills, providers).
+
+
+ )}
+
+ >
+ ) : (
+
+ {showReload && (
+
+
+
+
+
+ Restart OpenCode and reload its configuration (agents, commands, skills, providers).
+
+
+ )}
+
+
+ )}
)}
diff --git a/packages/ui/src/components/ui/CommandPalette.tsx b/packages/ui/src/components/ui/CommandPalette.tsx
index 448df09a..620b41ba 100644
--- a/packages/ui/src/components/ui/CommandPalette.tsx
+++ b/packages/ui/src/components/ui/CommandPalette.tsx
@@ -15,8 +15,7 @@ import { useDirectoryStore } from '@/stores/useDirectoryStore';
import { useConfigStore } from '@/stores/useConfigStore';
import { useThemeSystem } from '@/contexts/useThemeSystem';
import { useDeviceInfo } from '@/lib/device';
-import { RiAddLine, RiChatAi3Line, RiCheckLine, RiCodeLine, RiComputerLine, RiGitBranchLine, RiLayoutLeftLine, RiMoonLine, RiQuestionLine, RiRestartLine, RiSettings3Line, RiSunLine, RiTerminalBoxLine, RiTimeLine } from '@remixicon/react';
-import { reloadOpenCodeConfiguration } from '@/stores/useAgentsStore';
+import { RiAddLine, RiChatAi3Line, RiCheckLine, RiCodeLine, RiComputerLine, RiGitBranchLine, RiLayoutLeftLine, RiMoonLine, RiQuestionLine, RiSettings3Line, RiSunLine, RiTerminalBoxLine, RiTimeLine } from '@remixicon/react';
import { getModifierLabel } from '@/lib/utils';
import { createWorktreeSession } from '@/lib/worktreeSessionCreator';
@@ -106,11 +105,6 @@ export const CommandPalette: React.FC = () => {
handleClose();
};
- const handleReloadConfiguration = () => {
- reloadOpenCodeConfiguration();
- handleClose();
- };
-
const handleOpenTimeline = () => {
setTimelineDialogOpen(true);
handleClose();
@@ -177,10 +171,6 @@ export const CommandPalette: React.FC = () => {
Open Settings
{getModifierLabel()} + ,
-
-
- Reload OpenCode Configuration
-
diff --git a/packages/ui/src/components/ui/HelpDialog.tsx b/packages/ui/src/components/ui/HelpDialog.tsx
index 4abe8bcc..2066caec 100644
--- a/packages/ui/src/components/ui/HelpDialog.tsx
+++ b/packages/ui/src/components/ui/HelpDialog.tsx
@@ -17,13 +17,11 @@ import {
RiCloseCircleLine,
RiCodeLine,
RiCommandLine,
- RiFolder6Line,
RiGitBranchLine,
RiLayoutLeftLine,
RiPaletteLine,
RiQuestionLine,
RiSettings3Line,
- RiTerminalBoxLine,
RiText,
RiTimeLine,
RiWindowLine,
@@ -166,21 +164,6 @@ export const HelpDialog: React.FC = () => {
description: "Open Diff Panel",
icon: RiCodeLine,
},
- {
- keys: [`${mod} + 3`],
- description: "Open Files",
- icon: RiFolder6Line,
- },
- {
- keys: [`${mod} + 4`],
- description: "Open Terminal",
- icon: RiTerminalBoxLine,
- },
- {
- keys: [`${mod} + 5`],
- description: "Open Git Panel",
- icon: RiGitBranchLine,
- },
{
keys: [`${mod} + T`],
description: "Open Timeline",
diff --git a/packages/ui/src/components/views/SettingsView.tsx b/packages/ui/src/components/views/SettingsView.tsx
index 68ad56ca..9f2f663e 100644
--- a/packages/ui/src/components/views/SettingsView.tsx
+++ b/packages/ui/src/components/views/SettingsView.tsx
@@ -290,13 +290,15 @@ export const SettingsView: React.FC
= ({ onClose, forceMobile
switch (activeTab) {
case 'settings':
return (
- {
- setSelectedOpenChamberSection(section);
- handleMobileSidebarClick();
- }}
- />
+
+ {
+ setSelectedOpenChamberSection(section);
+ handleMobileSidebarClick();
+ }}
+ />
+
);
case 'agents':
return ;
@@ -354,7 +356,7 @@ export const SettingsView: React.FC = ({ onClose, forceMobile
return (
-
+
{/* Header with tabs and close button */}
= ({ onClose, forceMobile
) : (
-
{renderSidebarContent()}
+
+ {renderSidebarContent()}
+
)
) : (
@@ -530,7 +534,7 @@ export const SettingsView: React.FC
= ({ onClose, forceMobile
{hasSidebar && (
= ({ onClose, forceMobile
aria-orientation="vertical"
aria-label="Resize settings sidebar"
/>
-
{renderSidebarContent()}
+
+ {renderSidebarContent()}
+
)}
diff --git a/packages/ui/src/hooks/useKeyboardShortcuts.ts b/packages/ui/src/hooks/useKeyboardShortcuts.ts
index af941046..826430ad 100644
--- a/packages/ui/src/hooks/useKeyboardShortcuts.ts
+++ b/packages/ui/src/hooks/useKeyboardShortcuts.ts
@@ -192,6 +192,15 @@ export const useKeyboardShortcuts = () => {
}
if (e.key === 'Escape') {
+ const target = e.target as Element | null;
+ const isInsideDialog = Boolean(target?.closest('[role="dialog"]'));
+ const isSettingsMounted = Boolean(document.querySelector('[data-settings-view="true"]'));
+
+ if (isInsideDialog || isSettingsMounted) {
+ resetAbortPriming();
+ return;
+ }
+
const {
isSettingsDialogOpen,
isCommandPaletteOpen,