From 46c3b12c80acd4c4033115fac592745c72fdac02 Mon Sep 17 00:00:00 2001 From: Baobhan Sith <80159437+Heavrnl@users.noreply.github.com> Date: Sat, 3 May 2025 21:11:09 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=20SSH=20=E8=BF=9E?= =?UTF-8?q?=E6=8E=A5=E5=88=9D=E5=A7=8B=E7=BB=88=E7=AB=AF=E5=8F=AF=E8=83=BD?= =?UTF-8?q?=E5=AF=BC=E8=87=B4=E7=9A=84=E5=B0=BA=E5=AF=B8=E4=B8=8D=E5=8C=B9?= =?UTF-8?q?=E9=85=8D=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Related to #7 --- .../frontend/src/composables/useSshTerminal.ts | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/packages/frontend/src/composables/useSshTerminal.ts b/packages/frontend/src/composables/useSshTerminal.ts index bf179bd..7687d9f 100644 --- a/packages/frontend/src/composables/useSshTerminal.ts +++ b/packages/frontend/src/composables/useSshTerminal.ts @@ -236,6 +236,21 @@ export function createSshTerminalManager(sessionId: string, wsDeps: SshTerminalD isSshConnected.value = true; // 更新状态 // 连接成功后聚焦终端 terminalInstance.value?.focus(); + + if (terminalInstance.value) { + const currentDimensions = { cols: terminalInstance.value.cols, rows: terminalInstance.value.rows }; + // 检查尺寸是否有效 + if (currentDimensions.cols > 0 && currentDimensions.rows > 0) { + console.log(`[会话 ${sessionId}][SSH终端模块] SSH 连接成功,主动发送初始尺寸:`, currentDimensions); + sendMessage({ type: 'ssh:resize', sessionId, payload: currentDimensions }); + } else { + console.warn(`[会话 ${sessionId}][SSH终端模块] SSH 连接成功,但获取到的初始尺寸无效,跳过发送 resize:`, currentDimensions); + } + } else { + console.warn(`[会话 ${sessionId}][SSH终端模块] SSH 连接成功,但 terminalInstance 不可用,无法发送初始 resize。`); + } + + // 清空可能存在的旧缓冲(虽然理论上此时应该已经 ready 了) if (terminalOutputBuffer.value.length > 0) { console.warn(`[会话 ${sessionId}][SSH终端模块] SSH 连接时仍有缓冲数据,正在写入...`);