mirror of
https://github.com/QwenLM/qwen-code.git
synced 2025-12-23 10:17:50 +00:00
- 添加时间戳支持,确保消息按时间顺序排列 - 更新工具调用处理逻辑,自动添加和保留时间戳 - 修改消息渲染逻辑,将所有类型的消息合并排序后统一渲染 - 优化完成的工具调用显示,修复显示顺序问题 - 调整进行中的工具调用显示,统一到消息流中展示 - 移除重复的计划展示逻辑,避免最新块重复出现 - 重构消息处理和渲染代码,提高可维护性
76 lines
2.1 KiB
Markdown
76 lines
2.1 KiB
Markdown
# VS Code IDE Companion 消息排序改进总结
|
|
|
|
## 实施的改进
|
|
|
|
### 1. 添加时间戳支持
|
|
|
|
**文件修改:**
|
|
|
|
- `packages/vscode-ide-companion/src/webview/components/toolcalls/shared/types.ts`
|
|
- `packages/vscode-ide-companion/src/webview/types/toolCall.ts`
|
|
|
|
**改进内容:**
|
|
|
|
- 在 `ToolCallData` 接口中添加 `timestamp?: number` 字段
|
|
- 在 `ToolCallUpdate` 接口中添加 `timestamp?: number` 字段
|
|
|
|
### 2. 更新工具调用处理逻辑
|
|
|
|
**文件修改:**
|
|
|
|
- `packages/vscode-ide-companion/src/webview/hooks/useToolCalls.ts`
|
|
|
|
**改进内容:**
|
|
|
|
- 在创建工具调用时自动添加时间戳(使用提供的时间戳或当前时间)
|
|
- 在更新工具调用时保留原有时间戳或使用新提供的时间戳
|
|
|
|
### 3. 修改消息渲染逻辑
|
|
|
|
**文件修改:**
|
|
|
|
- `packages/vscode-ide-companion/src/webview/App.tsx`
|
|
|
|
**改进内容:**
|
|
|
|
- 将所有类型的消息(普通消息 + 工具调用)合并到一个数组中
|
|
- 按时间戳排序所有消息
|
|
- 统一渲染,确保工具调用在正确的时间点显示
|
|
|
|
## 解决的问题
|
|
|
|
### 1. 工具调用显示顺序不正确
|
|
|
|
**问题:** 工具调用总是显示在所有普通消息之后,而不是按时间顺序插入到正确的位置。
|
|
|
|
**解决方案:** 通过统一的时间戳排序机制,确保所有消息按时间顺序显示。
|
|
|
|
### 2. 缺少时间戳支持
|
|
|
|
**问题:** 工具调用数据结构中没有时间戳字段,无法正确排序。
|
|
|
|
**解决方案:** 在数据结构中添加时间戳字段,并在创建/更新时自动填充。
|
|
|
|
## 向后兼容性
|
|
|
|
所有改进都保持了向后兼容性:
|
|
|
|
- 对于没有时间戳的旧消息,使用当前时间作为默认值
|
|
- 现有 API 保持不变
|
|
- 现有功能不受影响
|
|
|
|
## 测试
|
|
|
|
创建了相关测试用例:
|
|
|
|
- 验证工具调用时间戳的正确添加和保留
|
|
- 验证消息排序逻辑的正确性
|
|
- 验证工具调用显示条件的正确性
|
|
|
|
## 验收标准达成情况
|
|
|
|
✅ 所有新添加的时间戳支持都已实现
|
|
✅ 消息按照时间顺序正确排列
|
|
✅ 现有功能不受影响
|
|
✅ 代码质量符合项目标准
|