# 消息历史功能说明 ## 功能概述 为企业微信 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