Files
wecome-openclaw-client/MESSAGE_HISTORY.md
徐总 0880813355 feat: 添加消息历史持久化和可视化查看功能
- 新增 messageStore.js 消息存储模块,支持自动保存所有收发消息
- 修改 main.js,在消息转发时自动记录到本地存储
- 修改 preload.js,暴露消息管理 IPC API
- 修改 App.js,添加消息历史查看界面
  - 统计信息面板(总数/接收/发送/会话数)
  - 会话列表和消息详情
  - 搜索、过滤、分页功能
  - 导出 JSON 和清空历史
- 新增完整文档(MESSAGE_HISTORY.md 等)
- 新增测试脚本 test-message-history.js

版本:v1.0.1
2026-03-10 04:09:26 +08:00

166 lines
4.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 消息历史功能说明
## 功能概述
为企业微信 OpenClaw 客户端添加了完整的消息持久化和查看功能,所有通过客户端转发的消息都会被自动保存,方便后续查看、管理和审计。
## 主要特性
### ✅ 消息持久化
- 所有收发的消息自动保存到本地
- 支持文本、图片、文件、语音等多种消息类型
- 消息存储在 `~/.config/wecome-openclaw-client/messages/messages.json`
- 默认最多保留 10,000 条消息(可配置)
### ✅ 消息查看
- 实时查看历史消息记录
- 按会话分组浏览
- 支持搜索消息内容
- 支持按方向(接收/发送和来源WeCom/OpenClaw过滤
- 分页浏览,每页 50 条
### ✅ 统计信息
- 总消息数统计
- 接收/发送消息数量
- 会话数量统计
- 今日/昨日消息数量
### ✅ 数据管理
- 导出消息为 JSON 文件
- 清空消息历史
- 按会话查看和管理
## 使用方法
### 1. 打开消息历史
启动客户端后,点击右上角的 **💬 消息历史** 按钮。
### 2. 查看消息
- **左侧面板**:显示所有会话列表,点击可筛选特定会话的消息
- **右侧面板**:显示消息详情,包括:
- 消息来源WeCom/OpenClaw
- 消息方向(接收/发送)
- 发送者信息
- 消息内容
- 时间戳
- 附件信息
### 3. 搜索消息
在搜索框中输入关键词,点击 **🔍 搜索** 按钮:
- 支持搜索消息内容
- 支持搜索发送者名称
- 支持搜索会话 ID
### 4. 过滤消息
使用下拉菜单过滤消息:
- **方向过滤**:只看接收消息或发送消息
- **来源过滤**:只看企业微信消息或 OpenClaw 消息
### 5. 导出数据
点击 **📥 导出 JSON** 按钮,将所有消息导出为 JSON 文件,便于:
- 备份
- 数据分析
- 审计合规
### 6. 清空历史
点击 **🗑️ 清空历史** 按钮可删除所有消息记录(需谨慎操作!)
## 技术实现
### 文件结构
```
wecome-openclaw-client/
├── electron/
│ ├── messageStore.js # 消息存储模块(新增)
│ ├── main.js # 主进程(已修改)
│ └── preload.js # 预加载脚本(已修改)
├── renderer/
│ └── src/
│ └── App.js # UI 组件(已修改)
└── MESSAGE_HISTORY.md # 本文档
```
### 存储位置
- **Linux**: `~/.config/wecome-openclaw-client/messages/messages.json`
- **Windows**: `%APPDATA%\wecome-openclaw-client\messages\messages.json`
- **macOS**: `~/Library/Application Support/wecome-openclaw-client/messages/messages.json`
### 消息数据结构
```json
{
"id": "msg_1710057600000_abc123",
"timestamp": "2026-03-10T12:00:00.000Z",
"direction": "inbound",
"source": "wecom",
"sessionId": "bot123:chat456",
"chatId": "chat456",
"senderId": "zhangsan",
"senderName": "张三",
"messageType": "text",
"content": "你好,请问有什么可以帮助你的?",
"attachments": [],
"metadata": {
"wecomMsgId": "msgid_123456",
"chatType": "direct"
},
"delivered": true,
"read": false
}
```
### IPC API
客户端提供了以下 IPC API 用于消息管理:
- `getMessages(options)` - 获取消息列表
- `getSessions()` - 获取会话列表
- `searchMessages(query, options)` - 搜索消息
- `getMessageStats()` - 获取统计数据
- `markMessagesRead(messageIds)` - 标记消息为已读
- `exportMessages(options)` - 导出消息
- `clearMessages(options)` - 清空消息
## 配置选项
`electron/messageStore.js` 中可以修改以下配置:
```javascript
this.maxMessages = 10000; // 最多保留的消息数量
```
## 性能优化
- 消息持久化采用异步写入,不阻塞主线程
- 使用临时文件 + 重命名确保写入安全
- 分页加载避免一次性加载大量数据
- 自动清理超出限制的历史消息
## 注意事项
1. **隐私安全**:消息包含敏感信息,请妥善保管导出的数据
2. **存储空间**:大量媒体消息可能占用较多磁盘空间
3. **备份建议**:定期导出重要消息进行备份
4. **性能考虑**:消息数量过多时建议使用搜索和过滤功能
## 更新日志
### v1.0.1 (2026-03-10)
- ✨ 新增消息持久化功能
- ✨ 新增消息历史查看界面
- ✨ 新增搜索和过滤功能
- ✨ 新增统计数据展示
- ✨ 支持导出和清空消息
## 技术支持
如有问题请联系sales@toncent.com.cn