diff --git a/.gitignore b/.gitignore index f9c1c5d..7838d41 100644 --- a/.gitignore +++ b/.gitignore @@ -4,8 +4,7 @@ node_modules .vscode-test/ *.vsix -# waveform_trace 打包产物(exe 太大,通过 Release 发布) -tools/waveform_trace/bin/ +# waveform_trace 打包产物 tools/waveform_trace/src/build/ tools/waveform_trace/src/dist/ tools/waveform_trace/src/*.spec diff --git a/src/views/inputArea.ts b/src/views/inputArea.ts index 9958e1d..b26fa71 100644 --- a/src/views/inputArea.ts +++ b/src/views/inputArea.ts @@ -446,6 +446,9 @@ export function getInputAreaScript(): string { addMessage(displayText, 'user'); + // 重置分段消息容器,强制下次创建新容器 + currentSegmentedMessage = null; + // 标记已有消息,切换布局到底部 hasMessages = true; updateInputAreaLayout(); diff --git a/src/views/messageArea.ts b/src/views/messageArea.ts index 0db41c0..a57856a 100644 --- a/src/views/messageArea.ts +++ b/src/views/messageArea.ts @@ -1031,9 +1031,18 @@ export function getMessageAreaScript(): string { el.remove(); }); - currentSegmentedMessage = document.createElement('div'); - currentSegmentedMessage.className = 'message bot-message segmented-message'; - messagesEl.appendChild(currentSegmentedMessage); + // 检查最后一个容器是否是未完成的对话(没有操作按钮) + const lastSegmented = messagesEl.querySelector('.segmented-message:last-child'); + if (lastSegmented && !lastSegmented.querySelector('.message-actions')) { + // 复用未完成的容器 + currentSegmentedMessage = lastSegmented; + } else { + // 创建新容器 + currentSegmentedMessage = document.createElement('div'); + currentSegmentedMessage.className = 'message bot-message segmented-message'; + messagesEl.appendChild(currentSegmentedMessage); + } + renderedSegmentCount = 0; } // 保存当前所有工具的展开/折叠状态 diff --git a/tools/waveform_trace/bin/waveform_trace.exe b/tools/waveform_trace/bin/waveform_trace.exe new file mode 100644 index 0000000..770c41a Binary files /dev/null and b/tools/waveform_trace/bin/waveform_trace.exe differ