feat: 更新 created_by_message_id 字段的赋值逻辑,确保使用 tool_call_id 进行消息关联
This commit is contained in:
parent
c72853c79d
commit
ef18500100
@ -200,12 +200,7 @@ impl BusToolCallEmitter {
|
||||
priority: "medium".to_string(),
|
||||
created_at: now + idx as i64,
|
||||
updated_at: now,
|
||||
created_by_message_id: item
|
||||
.get("created_by_message_id")
|
||||
.and_then(|v| v.as_str())
|
||||
.filter(|s| !s.is_empty())
|
||||
.map(|s| s.to_string())
|
||||
.or_else(|| Some(message.id.clone())),
|
||||
created_by_message_id: message.tool_call_id.clone(),
|
||||
})
|
||||
})
|
||||
.collect();
|
||||
|
||||
@ -235,12 +235,7 @@ impl SubAgentEmitter {
|
||||
priority: "medium".to_string(),
|
||||
created_at: now + idx as i64,
|
||||
updated_at: now,
|
||||
created_by_message_id: item
|
||||
.get("created_by_message_id")
|
||||
.and_then(|v| v.as_str())
|
||||
.filter(|s| !s.is_empty())
|
||||
.map(|s| s.to_string())
|
||||
.or_else(|| Some(message.id.clone())),
|
||||
created_by_message_id: message.tool_call_id.clone(),
|
||||
})
|
||||
})
|
||||
.collect();
|
||||
|
||||
@ -401,11 +401,12 @@ function App() {
|
||||
|
||||
// 点击待办项后滚动到对应消息
|
||||
const handleTodoClick = useCallback((todo: TodoItemSummary) => {
|
||||
// 直接使用后端返回的 created_by_message_id
|
||||
if (todo.created_by_message_id) {
|
||||
setHighlightedMessageId(todo.created_by_message_id)
|
||||
// 先清再设,确保同一 todo 重复点击也能触发 useEffect
|
||||
setHighlightedMessageId(null)
|
||||
const msgId = todo.created_by_message_id
|
||||
setTimeout(() => setHighlightedMessageId(msgId), 0)
|
||||
} else {
|
||||
// 如果消息 ID 不存在(旧数据),给出友好提示
|
||||
alert('该待办的完成记录无法定位,可能是历史数据')
|
||||
}
|
||||
}, [setHighlightedMessageId])
|
||||
@ -485,7 +486,12 @@ function App() {
|
||||
}
|
||||
}
|
||||
|
||||
return result
|
||||
// 过滤无实质内容的 merged_tool(无结果且非等待中)
|
||||
return result.filter(msg => {
|
||||
if (msg.type !== 'merged_tool') return true
|
||||
if (msg.status === 'pending') return true
|
||||
return !!(msg.resultContent && msg.resultContent.trim())
|
||||
})
|
||||
}, [messages])
|
||||
|
||||
// 视图标识:用于 MessageList 保存/恢复每个视图的滚动位置
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user