diff --git a/src/lib/apis/terminal/index.ts b/src/lib/apis/terminal/index.ts index dae872b6cc..9922a64a5a 100644 --- a/src/lib/apis/terminal/index.ts +++ b/src/lib/apis/terminal/index.ts @@ -615,11 +615,15 @@ export const moveEntry = async ( export const getListeningPorts = async ( baseUrl: string, - apiKey: string + apiKey: string, + sessionId?: string | null ): Promise => { const url = `${baseUrl.replace(/\/$/, '')}/ports`; const res = await fetch(url, { - headers: bearerHeaders(apiKey) + headers: { + ...bearerHeaders(apiKey), + ...(sessionId ? { 'X-Session-Id': sessionId } : {}) + } }).catch(() => null); if (!res || !res.ok) return []; const json = await res.json().catch(() => null); diff --git a/src/lib/components/chat/FileNav.svelte b/src/lib/components/chat/FileNav.svelte index 9e3f8c03e0..4df8372a15 100644 --- a/src/lib/components/chat/FileNav.svelte +++ b/src/lib/components/chat/FileNav.svelte @@ -403,6 +403,7 @@ if (terminalChanged) prevTerminalUrl = terminal.url; if (chatChanged || terminalChanged || !terminal) comparePaths = null; + if (chatChanged || terminalChanged || !terminal) previewPort = null; if (mounted && terminal) { if (chatChanged && chatId && !oldChatId) { @@ -2104,15 +2105,18 @@ {#if selectedTerminal && !selectedFile && previewPort === null && !isSearching}
- { - selectedFile = null; - clearFilePreview(); - previewPort = e.detail; - }} - /> + {#key JSON.stringify([chatId, selectedTerminal.url])} + { + selectedFile = null; + clearFilePreview(); + previewPort = e.detail; + }} + /> + {/key}
{/if} diff --git a/src/lib/components/chat/FileNav/PortList.svelte b/src/lib/components/chat/FileNav/PortList.svelte index 5ae6aa0e74..d7460b9f90 100644 --- a/src/lib/components/chat/FileNav/PortList.svelte +++ b/src/lib/components/chat/FileNav/PortList.svelte @@ -10,6 +10,7 @@ export let baseUrl: string; export let apiKey: string; + export let chatId: string | null = null; let ports: ListeningPort[] = []; let expanded = false; @@ -18,7 +19,7 @@ const loadPorts = async () => { loading = true; - ports = await getListeningPorts(baseUrl, apiKey); + ports = await getListeningPorts(baseUrl, apiKey, chatId); loading = false; };