shelley: fix ESLint errors in TerminalPanel

Philip Zeyliger and Claude Opus 4.6 created

Prompt: fix it (link to failing ESLint CI job)

Remove unused onCloseAll prop, unused activeInfo variable, and
invalid eslint-disable comments for unconfigured react-hooks rule.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

Change summary

ui/src/components/ChatInterface.tsx | 1 -
ui/src/components/TerminalPanel.tsx | 7 +------
2 files changed, 1 insertion(+), 7 deletions(-)

Detailed changes

ui/src/components/ChatInterface.tsx 🔗

@@ -1660,7 +1660,6 @@ function ChatInterface({
       <TerminalPanel
         terminals={ephemeralTerminals}
         onClose={(id) => setEphemeralTerminals((prev) => prev.filter((t) => t.id !== id))}
-        onCloseAll={() => setEphemeralTerminals([])}
         onInsertIntoInput={handleInsertFromTerminal}
       />
 

ui/src/components/TerminalPanel.tsx 🔗

@@ -25,7 +25,6 @@ export interface EphemeralTerminal {
 interface TerminalPanelProps {
   terminals: EphemeralTerminal[];
   onClose: (id: string) => void;
-  onCloseAll: () => void;
   onInsertIntoInput?: (text: string) => void;
 }
 
@@ -210,7 +209,6 @@ function ActionButton({
 export default function TerminalPanel({
   terminals,
   onClose,
-  onCloseAll,
   onInsertIntoInput,
 }: TerminalPanelProps) {
   const [activeTabId, setActiveTabId] = useState<string | null>(null);
@@ -247,7 +245,7 @@ export default function TerminalPanel({
     } else {
       setActiveTabId(null);
     }
-  }, [terminals.length]); // eslint-disable-line react-hooks/exhaustive-deps
+  }, [terminals.length]);
 
   // If active tab got closed, switch to the last remaining
   useEffect(() => {
@@ -417,8 +415,6 @@ export default function TerminalPanel({
 
   if (terminals.length === 0) return null;
 
-  const activeInfo = activeTabId ? statusMap.get(activeTabId) : null;
-
   // Truncate command for tab label
   const tabLabel = (cmd: string) => {
     // Show first word or first 30 chars
@@ -659,7 +655,6 @@ function TerminalInstanceWithRegistry({
       xterm.dispose();
       onUnregister(term.id);
     };
-    // eslint-disable-next-line react-hooks/exhaustive-deps
   }, [term.id, term.command, term.cwd]);
 
   // Update theme