- 新增 messageStore.js 消息存储模块,支持自动保存所有收发消息 - 修改 main.js,在消息转发时自动记录到本地存储 - 修改 preload.js,暴露消息管理 IPC API - 修改 App.js,添加消息历史查看界面 - 统计信息面板(总数/接收/发送/会话数) - 会话列表和消息详情 - 搜索、过滤、分页功能 - 导出 JSON 和清空历史 - 新增完整文档(MESSAGE_HISTORY.md 等) - 新增测试脚本 test-message-history.js 版本:v1.0.1
4.4 KiB
4.4 KiB
消息历史功能说明
功能概述
为企业微信 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
消息数据结构
{
"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 中可以修改以下配置:
this.maxMessages = 10000; // 最多保留的消息数量
性能优化
- 消息持久化采用异步写入,不阻塞主线程
- 使用临时文件 + 重命名确保写入安全
- 分页加载避免一次性加载大量数据
- 自动清理超出限制的历史消息
注意事项
- 隐私安全:消息包含敏感信息,请妥善保管导出的数据
- 存储空间:大量媒体消息可能占用较多磁盘空间
- 备份建议:定期导出重要消息进行备份
- 性能考虑:消息数量过多时建议使用搜索和过滤功能
更新日志
v1.0.1 (2026-03-10)
- ✨ 新增消息持久化功能
- ✨ 新增消息历史查看界面
- ✨ 新增搜索和过滤功能
- ✨ 新增统计数据展示
- ✨ 支持导出和清空消息
技术支持
如有问题,请联系:sales@toncent.com.cn