authorgravatar for julius0216@outlook.comJulius Marminge <julius0216@outlook.com> 2026-02-12 21:18:54-08:00
committergravatar for jmarminge@gmail.comJulius Marminge <jmarminge@gmail.com> 2026-02-12 21:24:49-08:00
loge6d645072817752553b610a6f53bf3e4ae586498
tree50fa28ada675f14e7999b7559569bce39ecf70fb
parent739205872f89dec116e81a0a2cf4c1cb3a6f0acb

Use terminal close API with exit fallback in ChatView

- Call `api.terminal.close` when available when closing a terminal tab - Fall back to writing `exit\n` to preserve compatibility with older/uninitialized terminals

1 files changed, 9 insertions(+), 3 deletions(-)

apps/web/src/components/ChatView.tsx+9-3
......@@ -302,9 +302,15 @@ export default function ChatView() {
302302 const closeTerminal = useCallback(
303303 (terminalId: string) => {
304304 if (!activeThreadId || !api) return;
305 void api.terminal.write({ threadId: activeThreadId, terminalId, data: "exit\n" }).catch(() => {
306 // Ignore write errors so the UI can still close an uninitialized or already-exited terminal.
307 });
305 const fallbackExitWrite = () =>
306 api.terminal.write({ threadId: activeThreadId, terminalId, data: "exit\n" }).catch(() => {
307 // Ignore write errors so the UI can still close an uninitialized or already-exited terminal.
308 });
309 if ("close" in api.terminal && typeof api.terminal.close === "function") {
310 void api.terminal.close({ threadId: activeThreadId, terminalId }).catch(() => fallbackExitWrite());
311 } else {
312 void fallbackExitWrite();
313 }
308314 dispatch({
309315 type: "CLOSE_THREAD_TERMINAL",
310316 threadId: activeThreadId,