This commit is contained in:
Timothy Jaeryang Baek 2026-10-10 22:16:39 +04:00
parent 3d31123467
commit 5ec6cf3205
3 changed files with 21 additions and 12 deletions

View file

@ -615,11 +615,15 @@ export const moveEntry = async (
export const getListeningPorts = async (
baseUrl: string,
apiKey: string
apiKey: string,
sessionId?: string | null
): Promise<ListeningPort[]> => {
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);

View file

@ -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 @@
<!-- Port detection -->
{#if selectedTerminal && !selectedFile && previewPort === null && !isSearching}
<div class="shrink-0 border-t border-gray-50 dark:border-gray-850/30">
<PortList
baseUrl={selectedTerminal.url}
apiKey={selectedTerminal.key}
on:previewPort={(e) => {
selectedFile = null;
clearFilePreview();
previewPort = e.detail;
}}
/>
{#key JSON.stringify([chatId, selectedTerminal.url])}
<PortList
baseUrl={selectedTerminal.url}
apiKey={selectedTerminal.key}
{chatId}
on:previewPort={(e) => {
selectedFile = null;
clearFilePreview();
previewPort = e.detail;
}}
/>
{/key}
</div>
{/if}

View file

@ -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;
};