Commit Graph
98 Commits
Author SHA1 Message Date
电摇小子 cc67b7074f docs: 更新文档 2026-08-09 19:03:34 +08:00
电摇小子 1edea7d3cc docs: 更新文档 2026-08-09 10:12:18 +08:00
电摇小子 7eefc59a0f docs: 更新文档 2026-08-08 14:54:54 +08:00
电摇小子 7c4508bf29 feat: 完善首次连接账号身份展示
首次连接前读取当前账号昵称和头像
从账号目录安全推导其他账号 wxid 避免账号串号
2026-08-07 01:39:11 +08:00
电摇小子 a6a004e403 feat: 完善日报图片与公众号消息展示
修复日报图片读取格式与模型不支持时的友好降级
恢复话题关键词回退,确保词云在缺少顶层关键词时仍可展示
支持公众号多文章消息在聊天、日报、检索和 HTML 导出中完整呈现
迁移账号身份缓存并优化首次连接的账号占位信息
补充图片、词云、账号缓存与多文章消息回归测试
2026-08-07 00:00:52 +08:00
电摇小子 b5f67c47e5 feat: 知识库更新,优化批量语音转写 - 合并索引 - 增加会话级批量转写处理 - 补充语音转写回归测试 2026-08-06 20:31:08 +08:00
电摇小子 eee84f35df feat: 收敛 AI Search 检索边界与问答体验 2026-08-06 20:29:48 +08:00
电摇小子 4967cff3c0 test: 暂存代码 2026-08-06 20:29:25 +08:00
电摇小子 9e79790d41 feat: 导出html页面 2026-08-05 09:46:10 +08:00
电摇小子 580c7019d7 feat: 语音 2026-08-05 09:45:59 +08:00
电摇小子 79ed94bc57 fix: test 2026-08-04 20:41:06 +08:00
电摇小子 f07f8aeb6c fix:test 2026-08-04 20:32:50 +08:00
电摇小子 5a53640b6f fix: 修复跨平台导出测试与 Playwright 浏览器安装 2026-08-04 20:26:04 +08:00
qingmao a8737fc6f7 Merge pull request #9 from nanin/nanin/develop
feat: 支持多聊天合并导出
2026-08-04 20:18:44 +08:00
电摇小子 603b790682 fix: 修复 macOS 会话昵称显示
(cherry picked from commit be092c64e528cfc363f0ddd32c480eea5532799f)
2026-08-03 10:08:59 +08:00
电摇小子 8ec3237ef9 test: 建立桌面端自动化回归测试体系并完善跨平台 CI
(cherry picked from commit 74267ae2f63f8256c3da84b04f5b330e6e9d4c67)
2026-08-03 10:08:28 +08:00
电摇小子 e8cbfaf223 fix: 修复语音首播并完善消息解析与会话兼容性
(cherry picked from commit 214090192f5dfc91cdec0269bad434d3e22394d8)
2026-08-03 10:04:45 +08:00
电摇小子 d7a2dd3709 fix: 优化数据库启动与设置页响应性能
(cherry picked from commit f6614548b0e742bc703b2a5aaa5060720985ed27)
2026-08-03 10:04:19 +08:00
电摇小子 b779dc9838 fix: 支持 wxgf 原图解密并修复缩略图缓存刷新
- 增加 wxgf/HEVC 图片转换支持
- 增加 FFmpeg 跨平台安装、目录填写与能力检测
- 避免缩略图占用原图缓存,下载原图后可即时刷新
- 移除聊天图片的缩略图角标

(cherry picked from commit 4cee159a65496bd30dd690b568c47a120f3fff30)
2026-08-03 10:03:55 +08:00
电摇小子 7d509ae33b fix: 优化 Windows 启动性能与聊天图片缓存
- 增加聊天图片磁盘持久化缓存,重启后直接复用
- 将 DAT 图片解密移至 Worker,避免阻塞主进程
- 增加图片加载优先级和并发控制
- 优化会话目录与图片文件的异步查找
- 使用本地媒体协议加载缓存图片,减少 Base64 IPC 开销
- 优化启动缓存与数据库初始化流程,降低窗口未响应时间

(cherry picked from commit 82bcc8d32ca674de38c745cc9925ed2309887dc7)
2026-08-03 10:03:19 +08:00
电摇小子 fb906a02c1 feat: 完善微信小程序与红包消息解析
- 新增小程序和红包结构化消息及专用卡片
- 修复嵌套类型、拍一拍和表情包误判
- 补充常见 AppMsg 类型分类
2026-07-28 03:20:11 +08:00
电摇小子 488460cd82 feat: 优化聊天记录缓存、虚拟分页与群聊媒体展示
- 使用持久化缓存加速启动并异步读取 WCDB 消息
- 修复空群缓存、头像和群成员名称丢失问题
- 修复引用图片缩略图、虚拟卸载缓存和图片预览
- 修正引用消息发送者显示为群 ID 的问题
2026-07-28 02:45:20 +08:00
电摇小子 306c7d99c2 feat: 修复导出任务状态并优化聊天记录导出体验 2026-07-27 22:06:08 +08:00
电摇小子 a3fb425061 fix(paths): 同步 imageKeyRoot 与 dbRoot,仅识别 xwechat_files
之前的状态面板(chat.getCurrentAccountRoot())和自动获取图片密钥(settings.imageKeyRoot)
走两个完全不同的来源,二者漂移导致状态显示 D 盘但实际扫描到 C 盘。

index.ts:
- key:autoGetImageKey 优先级调整为 chat.getCurrentAccountRoot() → self.accountRoot →
  settings.imageKeyRoot → settings.dbRoot,让运行时识别的目录永远最优先。
- db:init:保存 dbRoot 时同步更新 imageKeyRoot,避免 settings 缓存漂移。
- db:reopenWithRoot:用户手动切换根目录时同步更新 imageKeyRoot。

settings-store.ts:
- loadSettings:dbRoot 修正时同步 imageKeyRoot;若 imageKeyRoot 指向旧路径或不存在,
  回退到 dbRoot。
- 新增 redirectLegacyWeChatFilesToXwechat():当 settings 里的 dbRoot/imageKeyRoot 仍指向
  V3 时代的 "Documents\WeChat Files" 路径时,自动重定向到同目录下的 xwechat_files(如果存在)。
  老用户升级时无需手动迁移。

wcdb4-client / windows-db-root-discovery / key-service-win:
- 候选目录列表只保留 xwechat_files 形态(Documents\xwechat_files、
  AppData\Roaming\Tencent\xwechat_files、macOS 的 Library/Containers/.../xwechat_files),
  移除 V3 时代的 "WeChat Files" 候选。
- DB_ROOT_NAMES 只包含 xwechat_files,自动扫描也只认 V4 路径。

V3 数据(V1 头 dat / WeChat Files 目录结构)如果用户机器上还存在,仅作为残留,
不会被 WechatExplorer 当成有效数据源。
2026-07-26 20:46:51 +08:00
电摇小子 b466f4555e fix(image-decrypt): 仅支持 WeChat 4.0,移除 V3 兜底 + 模板诊断
WeChat 4.0 dat 文件头为 07 08 56 32 08 07。V3 / 老版本(V1 头)不在支持范围。

image-decrypt-service:
- 移除 defaultV1AesKey ('cfcd208495d565ef') 字段。
- 移除 if (version === 1) 的 V1 默认 key 分支。
- getDatVersion 只识别 V2 头;其他返回 0 走 unsupported。
- 注释说明 decryptDatV4 方法名里的 V4 是历史命名,跟协议版本无关。

key-service-win._findTemplateData / autoGetImageKeyByMemoryScan:
- 统计扫描诊断信息:搜索到的 _t.dat 数量、V2 头数量、非 V2 数量、扫描根目录。
- 把模糊的「未找到 V2 模板文件」拆成三种具体提示:
  1) 目录下完全没有 _t.dat → 让用户先在微信里点开图片大图(缩略图未生成)。
  2) 有 _t.dat 但都不是 V2 头 → 让用户查看更多图片。
  3) 有 V2 但没有有效长度 → 让用户查看更多图片。
- 每条都附带实际扫描根目录,便于远程排查时一眼看出路径是否正确。
2026-07-26 20:46:34 +08:00
电摇小子 0846e432cd refactor(image-decrypt): 设置面板 UI 重构 + 测试步骤联动
页面拆分两个目录语义:
- 上方「图片解密状态」的「图片资源目录」始终等于 chat 实时识别的默认目录(chat.getCurrentAccountRoot()),
  不再被用户输入覆盖。
- 下方「图片密钥管理」移除「图片资源目录」输入框,只保留 XOR / AES 两个 Key。
  该字段之前会被保存但实际不影响图片解密(数据库查询走默认根目录),保留只会让用户困惑。

UI 改动:
- ImageKeyConfiguration:移除 resourceRoot 输入框,edit() 签名收窄为 xorKey | aesKey。
- ImageTestSection:测试结果由 3 列横排改为步骤条样式(pending / ok / fail / skipped),
  任意一步 ✗ 后续步骤自动标记「跳过」并灰掉,前端语义上变成「要么都成功要么都失败」。
- AutoDetectImageKeySection:加一行小字提示「仅支持 WeChat 4.0,V3 及以下无法解析」。

后端改动:
- testImageDecryption:解密失败时把 fileFound/decrypted/readable 统一置 false,
  拆出「解密成功但不可读」中间态,让 UI 步骤联动准确反映。
- inspectImageDecryptionStatus:accountRoot 兜底改为 getCurrentAccountRoot() || config.resourceRoot,
  让状态面板始终显示当前识别到的默认目录。
- sanitizeImageError:把 'no_image_message' / '300' / 'unsupported' / 'dat version' 关键字翻译成具体提示。
- useImageDecryptionController.autoDetect:错误信息原文透传,不再走 sanitizeImageError(后者会
  把扫描阶段的「未找到 V2 模板文件」/「60 秒未找到 AES 密钥」等归类成「无法解析媒体文件」,掩盖真因)。
- image-key-config-service.save():不再写回 imageKeyRoot,下方输入框只用于校验,不再落盘。
2026-07-26 20:46:20 +08:00
电摇小子 fd2febc152 chore(security): 移除 AI 内置 Key fallback + 修正默认模型名
发布版本不再自动从环境变量读取 VITE_DEEPSEEK_API_KEY 创建默认 DeepSeek provider。
ensureEnvironmentMigration() 改为 no-op(保留方法作为占位)。
用户首次启动必须在「设置 → AI 模型」手动配置 API Key。

migrateLegacy() 保留:用于把用户自己之前存在 localStorage 的旧配置迁移到加密存储,
与内置 Key 是两回事。

附带修正 .env.example 默认模型名:deepseek-v4-flash 是已弃用/不存在的标识符,
DeepSeek 官方未发布此模型,统一改为 deepseek-chat。
2026-07-26 20:45:53 +08:00
电摇小子 ba9e08d406 feat: 集成 Agent Hub 微信机器人能力 2026-07-15 17:26:15 +08:00
电摇小子 888a708476 feat: 临时加一个windows 目录输入框 2026-07-14 14:33:40 +08:00
电摇小子 959a4fefd1 chore: 提升版本号 2026-07-14 11:10:42 +08:00
电摇小子 7c8aafaf78 docs: 修改README 2026-07-14 11:07:35 +08:00
电摇小子 3a9dbec1f1 fix: 修复登录报错key问题 2026-07-14 11:07:35 +08:00
电摇小子 b15f23d728 feat: 统一应用品牌图标并修复 macOS 打包路径 2026-07-14 11:07:35 +08:00
电摇小子 85d66f2da2 实现 AI 图片理解能力测试 2026-07-14 11:07:35 +08:00
电摇小子 a0028fc57d 重构 AI 模型配置中心 2026-07-14 11:07:35 +08:00
电摇小子 24879a2639 实现图片解密设置页 2026-07-14 11:07:35 +08:00
电摇小子 54ebe01fa3 实现数据库密钥设置页 2026-07-14 11:07:35 +08:00
电摇小子 e586c5f571 精简账号与数据库设置页 2026-07-14 11:07:35 +08:00
电摇小子 6b20e819aa fix: 修改登录报错, error改为warn 2026-07-14 11:07:35 +08:00
电摇小子 c8be398243 feat: 设置页面新UI 未做完 2026-07-14 11:07:35 +08:00
电摇小子 18e2b90583 feat: 完成本地 API 中心与 Reader Skill 流程 2026-07-14 11:07:35 +08:00
电摇小子 e70bddea82 fix: 完善 AI 日报详情状态与解析容错 2026-07-14 11:07:35 +08:00
电摇小子 1e6bffa6ee feat: 优化 AI 日报结果中心信息架构 2026-07-14 11:07:35 +08:00
电摇小子 762af8dd95 feat: 实现 AI 日报历史资产化 2026-07-14 11:07:35 +08:00
电摇小子 1d3a2ee181 重构 UI-04 AI 群聊日报工作区 2026-07-14 11:07:35 +08:00
电摇小子 d7c5ff1335 完成 UI-02 和 UI-03 聊天档案界面 2026-07-14 11:07:35 +08:00
电摇小子 1eb96f3d56 增加自动登录环境开关 2026-07-14 11:07:35 +08:00
电摇小子 716597f089 完成 UI-01 应用外壳与设计令牌 2026-07-14 11:07:35 +08:00
电摇小子 65d0d05daa 修复 Windows 消息游标回退查询 2026-07-14 11:07:35 +08:00
电摇小子 85728a47f4 修复 Windows 会话名称和密钥显示图标 2026-07-14 11:07:35 +08:00
电摇小子 606d05aa7a feat: 支持点击图片优先打开原图 2026-07-14 11:07:35 +08:00
电摇小子 8368f7f7f2 feat: 优化 Windows 缓存加载和图片显示 2026-07-14 11:07:35 +08:00
电摇小子 e67d893458 feat: 支持微信内置表情渲染 2026-07-14 10:20:45 +08:00
电摇小子 383ace8474 feat: 支持图片密钥配置与内存扫描 2026-07-14 10:20:23 +08:00
电摇小子 8f2d83dead docs: 更新 Windows 支持说明与 SIP 教程 2026-07-14 10:20:00 +08:00
电摇小子 52d2e63bc5 fix: 优化群聊展示与群日报生成 2026-07-14 10:19:40 +08:00
电摇小子 4fedc8c387 feat: 支持 Windows WCDB 解密与打包 2026-07-14 10:15:36 +08:00
电摇小子 295d77f585 fix: gitignore 2026-07-14 10:12:05 +08:00
电摇小子 ae561e6340 feat: 更换日报功能模板
- ChatWindow 模型下拉框新增 deepseek-v4-pro /
  deepseek-v4-flash
  - 主进程 model 兜底值改为 deepseek-v4-flash
  - 同步更新 .env.example 默认模型
  - 修复旧 localStorage 中 gpt-5.5 等不支持的模型导致的
  400 报错
2026-07-10 15:40:35 +08:00
电摇小子 3e37550ff9 Merge branch 'fix/xkey' 2026-07-10 10:38:39 +08:00
电摇小子 359ff23faf Merge branch 'feat/local-http-api' 2026-07-09 10:37:20 +08:00
电摇小子 cedc67c36e fix: 修复登录 2026-07-09 10:37:11 +08:00
电摇小子 e4c708cdf0 feat: 群日报 9 宫格头像自动反推 + 持续时长语义 + 自动登录
- group-report-service: enrichAvatarsFromGroup 从群成员快照反推真头像
  - group-report-service: 修 SVG data URL 正则,fallback 现在能正常嵌入
  - group-report (shared): GroupReportMetadata/Result 加 talker/warnings 字段
  - timeSpan 改为持续时长(\"1 h\" / \"30 min\" / \"2 d\" 紧凑半角)
  - App.tsx 启动自动连接(env var + safeStorage)
  - Wcdb4Client 父目录自动解析为最新 wxid
  - HTTP server EADDRINUSE 友好提示 + 指数退避
  - installSafeConsole 修 EPIPE crash
  - SettingsPanel 测试连接后自动更新 dbRoot
2026-07-08 16:40:03 +08:00
电摇小子 42393e4796 feat: 本地 HTTP API + 设置面板 + 账号自助入口
让 WechatExplorer 既能用图形界面浏览聊天记录,也能作为本机 MCP 数据源被
Claude / Codex 等客户端通过 127.0.0.1:6131 直接拉取。

本机 HTTP API
  - 新增 http-server: 8 个端点,覆盖 health / current_time / contact /
    chatroom / recent_chat / chatlog / group_snapshot / resolve / report
  - 时间参数支持 YYYY-MM-DD / YYYY-MM-DD/HH:mm / Unix 秒级;日期单独使用
    时自动补到 00:00:00~23:59:59,避免漏消息
  - apiServer 单例支持动态启停,启动失败返回 friendlyMessage(把
    EADDRINUSE 翻译成"端口已被占用"的中文错误并附 4 次重试)

数据库根目录与自服务入口
  - Wcdb4Client 接受 accountRoot 时会自动解析:父目录下找最新含
    db_storage 的 wxid 子目录;设置面板"测试连接"成功后回写解析后的
    精确路径
  - 抽 chat-service.ts:IPC 和 HTTP 共享 listContacts / listMessages /
    getGroupSnapshot / searchMessages / getSelfAccountInfo / testConnection
    / reopenWithRoot
  - WechatDb 接受可选 accountRoot;设置面板新增"应用并重新初始化"
    按钮,改完 dbRoot 立即生效
  - 新增 settings-store.ts,dbRoot / apiEnabled / apiHost / apiPort 落到
    userData/settings.json

主进程健壮性
  - 新增 safe-log.ts 包一层 console.log/warn/error,electron-vite 关闭
    子进程 stderr 后写 EPIPE 不再炸 IPC handler(原 main build 启动时
    即 installSafeConsole)
2026-07-07 13:58:10 +08:00
电摇小子 e6927d7cad docs: README 2026-07-07 13:52:47 +08:00
电摇小子 767a85ee5f chore: 修改打包名推送 2026-07-03 14:11:49 +08:00
电摇小子andClaude Opus 4.7 04925828d9 refactor: 移除微信 3.0 解密路径, 统一走 4.0 WCDB
- wechat-db.ts 删除 SQLCipher 回退、connectDb、getUser、tryOpenWechat4 等 3.0 专属逻辑
- image-decrypt-service.ts 删除 decryptDatV3 与 version === 0 分支
- index.ts 去除 wcdb4Client 冗余空值检查
- 移除 better-sqlite3-multiple-ciphers 依赖
- README 版本前置改为 4.0+

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-07-03 10:37:51 +08:00
电摇小子 42c6cce0c9 fix: 修复 macOS 打包版 WCDB 初始化 2026-07-03 10:05:50 +08:00
电摇小子 cca5284977 style: 修改样式, 去除日志 2026-07-02 10:24:31 +08:00
电摇小子 3b05bcbe29 feat: 实现退群监控 2026-06-30 16:04:01 +08:00
电摇小子andClaude Opus 4.7 1ddfe5f87e chore: bump version to 2.0.0
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-30 14:39:52 +08:00
电摇小子 e0e0105e8b feat: 添加微信数据库实时监控,聊天记录自动刷新 2026-06-30 14:36:45 +08:00
电摇小子 44bf1bcaef feat: 支持自动获取并安全保存数据库密钥 2026-06-30 10:12:25 +08:00
电摇小子 a184bb1da1 feat: 修改群聊日报生成与群成员信息展示
- 支持结构化 AI 群聊日报及移动端长图导出
- 支持日报时间范围和消息类型筛选
- 支持群成员及当前用户群昵称解析
- 移除消息加载更多并优化图片懒加载
- 增强头像处理与敏感密钥日志保护
2026-06-29 16:43:01 +08:00
电摇小子 5f92e1d410 feat: 支持微信 4.0 数据库解密与富媒体消息查看
- 接入微信 4.0 WCDB 数据库解密,兼容微信 3.0 解密方式
- 支持图片解密及图片预览、缩放、旋转和拖动
- 支持语音解密与播放
- 支持表情包、引用、分享、名片、位置及通话消息解析
- 支持联系人和群聊真实头像
- 优化群聊、联系人分类及排序
- 修复复合消息类型和压缩消息内容解析
- 完善原生解密库打包及数据库错误提示
2026-06-29 14:51:45 +08:00
电摇小子 a12ec593da chore: 去除release脚本 2026-06-01 11:36:04 +08:00
电摇小子andClaude Opus 4.7 9a7549505f fix: 使用 pnpm/action-setup@v4 安装 pnpm
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-01 11:04:19 +08:00
电摇小子andClaude Opus 4.7 bcef842bb3 fix: 使用 corepack 启用 pnpm 替代 npm install -g
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-01 11:01:37 +08:00
电摇小子andClaude Opus 4.7 d151f36dd3 fix: 使用 pnpm@7 匹配项目要求
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-01 10:39:23 +08:00
电摇小子andClaude Opus 4.7 a3e3f8edbf fix: 修复 release workflow - 改用 npm 安装 pnpm 和 artifacts 上传
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-01 10:38:03 +08:00
电摇小子andClaude Opus 4.7 7154921d05 chore: 添加 GitHub Actions 自动构建 release workflow
- 推送 v* 标签时自动在 macOS 多架构构建 .dmg
- 自动创建 GitHub Release 并附加构建产物
- 升级版本至 v1.1.0

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-01 10:20:32 +08:00
电摇小子andClaude Opus 4.7 e11b7b1aa2 docs: 更新 README,添加多模型服务支持说明
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-01 10:12:57 +08:00
电摇小子andClaude Opus 4.7 bdccead5b4 feat: 支持多模型服务配置 (Key/Base URL/模型名)
- 后端 ai:chat 支持 baseURL 参数,可配置任意 OpenAI 兼容 API
- 前端 UI 增加 Base URL 输入框和模型选择下拉 (DeepSeek/GPT-4o/Claude/Moonshot)
- 配置通过 localStorage 持久化,支持从 .env 文件读取默认値
- 统一错误提示,移除 DeepSeek 硬编码引用

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-01 10:11:25 +08:00
电摇小子 6e6224c017 doc: 更新文档 2026-04-08 11:01:03 +08:00
电摇小子 1f84a0a4b9 chore: 提升版本更新README 2026-01-14 16:28:37 +08:00
电摇小子 f61482afd8 docs: 更新README 2026-01-04 16:08:37 +08:00
qingmao eb36aa20e3 Merge pull request #2 from Wxw-Gu/fix-issue-1
Fixes #1: 修复个人聊天界面和导出csv文件不显示名称问题
2026-01-04 15:57:10 +08:00
电摇小子 c74b99e61a fix: 修复个人聊天界面和导出csv文件不显示名称问题,fix #1 2026-01-04 15:53:26 +08:00
电摇小子 d9cb3f676c chore: 提升版本 2025-12-31 09:54:59 +08:00
电摇小子 6f3e97e7eb feat: 优化 2025-12-31 09:50:46 +08:00
电摇小子 13149ecd0d feat: 增加聊天窗口头像显示切换功能并更新示例图片 2025-12-30 18:06:30 +08:00
电摇小子 e7f0306225 chore: 移除 LICENSE 2025-12-30 17:29:53 +08:00
电摇小子 8edf36f826 docs: 更新README 2025-12-29 10:22:58 +08:00
电摇小子 2f816eb06a docs: 更新README 2025-12-19 17:52:03 +08:00
电摇小子 bf030ff335 chore: update 2025-12-15 16:14:23 +08:00
电摇小子 c5fe287bdb docs: 更新README 2025-12-15 16:12:02 +08:00
电摇小子 b4a48c9c45 docs: 更新 README 文件內容 2025-12-15 16:11:21 +08:00
电摇小子 e4956e7b18 init: 初始化 2025-12-15 16:01:25 +08:00