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(),
|
priority: "medium".to_string(),
|
||||||
created_at: now + idx as i64,
|
created_at: now + idx as i64,
|
||||||
updated_at: now,
|
updated_at: now,
|
||||||
created_by_message_id: item
|
created_by_message_id: message.tool_call_id.clone(),
|
||||||
.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())),
|
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
.collect();
|
.collect();
|
||||||
|
|||||||
@ -235,12 +235,7 @@ impl SubAgentEmitter {
|
|||||||
priority: "medium".to_string(),
|
priority: "medium".to_string(),
|
||||||
created_at: now + idx as i64,
|
created_at: now + idx as i64,
|
||||||
updated_at: now,
|
updated_at: now,
|
||||||
created_by_message_id: item
|
created_by_message_id: message.tool_call_id.clone(),
|
||||||
.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())),
|
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
.collect();
|
.collect();
|
||||||
|
|||||||
@ -401,11 +401,12 @@ function App() {
|
|||||||
|
|
||||||
// 点击待办项后滚动到对应消息
|
// 点击待办项后滚动到对应消息
|
||||||
const handleTodoClick = useCallback((todo: TodoItemSummary) => {
|
const handleTodoClick = useCallback((todo: TodoItemSummary) => {
|
||||||
// 直接使用后端返回的 created_by_message_id
|
|
||||||
if (todo.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 {
|
} else {
|
||||||
// 如果消息 ID 不存在(旧数据),给出友好提示
|
|
||||||
alert('该待办的完成记录无法定位,可能是历史数据')
|
alert('该待办的完成记录无法定位,可能是历史数据')
|
||||||
}
|
}
|
||||||
}, [setHighlightedMessageId])
|
}, [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])
|
}, [messages])
|
||||||
|
|
||||||
// 视图标识:用于 MessageList 保存/恢复每个视图的滚动位置
|
// 视图标识:用于 MessageList 保存/恢复每个视图的滚动位置
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user