diff --git a/apps/fabro-web/app/routes/run-terminal.tsx b/apps/fabro-web/app/routes/run-terminal.tsx index 906db2242..7bcf0d28b 100644 --- a/apps/fabro-web/app/routes/run-terminal.tsx +++ b/apps/fabro-web/app/routes/run-terminal.tsx @@ -196,7 +196,7 @@ export default function RunTerminal({ params }: { params: { id: string } }) { const accessCommandLabel = terminalAccessCommandLabel(provider); const [connectionKey, setConnectionKey] = useState(0); const [status, setStatus] = useState("connecting"); - const [error, setError] = useState(null); + const [error, setError] = useState<{ message: string; recoverable: boolean } | null>(null); const terminalEl = useRef(null); const terminalRef = useRef(null); const fitRef = useRef(null); @@ -291,7 +291,10 @@ export default function RunTerminal({ params }: { params: { id: string } }) { return; } setStatus("error"); - setError(message.message ?? "Terminal session failed."); + setError({ + message: message.message ?? "Terminal session failed.", + recoverable: false, + }); return; } const bytes = event.data instanceof ArrayBuffer @@ -304,7 +307,10 @@ export default function RunTerminal({ params }: { params: { id: string } }) { }); socket.addEventListener("error", () => { setStatus("error"); - setError("Terminal WebSocket connection failed."); + setError({ + message: "Terminal WebSocket connection failed.", + recoverable: true, + }); }); resizeObserver = new ResizeObserver(() => { @@ -373,8 +379,8 @@ export default function RunTerminal({ params }: { params: { id: string } }) {
) : (