docs: 添加数据流程详解文档 + fix: 修复消息渲染逻辑

- 新增完整的数据流程文档,详细说明从用户输入到响应显示的全流程
   - 修复 messageArea.ts 中的消息渲染逻辑:
     - 移除用户消息时重置分段容器的逻辑
     - 移除对话完成时跳过 segments 处理的逻辑
     - 确保对话完成时正确渲染最终的 segments
This commit is contained in:
Roe-xin
2026-01-08 17:24:36 +08:00
parent 0bcdc615e3
commit 1df7462778
2 changed files with 1027 additions and 12 deletions

1027
docs/数据流程详解.md Normal file

File diff suppressed because it is too large Load Diff

View File

@ -725,12 +725,6 @@ export function getMessageAreaScript(): string {
// 添加消息 // 添加消息
function addMessage(text, sender) { function addMessage(text, sender) {
// 如果是用户消息,先重置当前分段消息容器
// 确保用户消息不会被添加到上一轮 AI 消息容器内部
if (sender === 'user' && currentSegmentedMessage) {
currentSegmentedMessage = null;
}
const div = document.createElement('div'); const div = document.createElement('div');
div.className = \`message \${sender}-message\`; div.className = \`message \${sender}-message\`;
@ -909,12 +903,6 @@ export function getMessageAreaScript(): string {
function updateSegmentsRealtime(segments, isComplete) { function updateSegmentsRealtime(segments, isComplete) {
console.log('[WebView] updateSegmentsRealtime 被调用, segments:', segments, 'isComplete:', isComplete); console.log('[WebView] updateSegmentsRealtime 被调用, segments:', segments, 'isComplete:', isComplete);
// 如果是完成标记,不处理 segments直接返回
if (isComplete) {
console.log('[WebView] 对话完成,跳过 segments 处理');
return;
}
if (!segments || segments.length === 0) { if (!segments || segments.length === 0) {
console.log('[WebView] segments 为空,跳过渲染'); console.log('[WebView] segments 为空,跳过渲染');
return; return;