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

4.4 KiB
Raw Blame History

消息历史功能说明

功能概述

为企业微信 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; // 最多保留的消息数量

性能优化

  • 消息持久化采用异步写入,不阻塞主线程
  • 使用临时文件 + 重命名确保写入安全
  • 分页加载避免一次性加载大量数据
  • 自动清理超出限制的历史消息

注意事项

  1. 隐私安全:消息包含敏感信息,请妥善保管导出的数据
  2. 存储空间:大量媒体消息可能占用较多磁盘空间
  3. 备份建议:定期导出重要消息进行备份
  4. 性能考虑:消息数量过多时建议使用搜索和过滤功能

更新日志

v1.0.1 (2026-03-10)

  • 新增消息持久化功能
  • 新增消息历史查看界面
  • 新增搜索和过滤功能
  • 新增统计数据展示
  • 支持导出和清空消息

技术支持

如有问题,请联系:sales@toncent.com.cn