Commit Graph
140 Commits
Author SHA1 Message Date
2977094657 15fa6072e3 feat: 添加媒体解密进度取消功能,优化检测逻辑 2026-04-12 19:44:17 +08:00
2977094657 68b11261cc Merge remote-tracking branch 'origin/main' 2026-04-12 15:56:12 +08:00
2977094657 64e8cf6718 fix(chat): 补充视频号消息 objectId 和 objectNonceId 字段透传
补充 Finder/视频号类型 app message 的 objectId、objectNonceId 解析

在聊天消息接口、搜索结果和导出链路中透传上述字段

前端消息归一化增加 objectId、objectNonceId 字段

新增对应测试,覆盖 type=51 场景
2026-04-12 15:51:00 +08:00
2977094657 52ef2b8ded fix(realtime): 修复前后端分离运行时实时模式校验失败
前后端分离运行时补齐 WCDB sidecar 自动启动链路

在缺少 sidecar 环境变量时自动探测并拉起本地 Electron sidecar
初始化失败时回退到进程内 WCDB 路径,避免直接中断实时模式
服务关闭时回收自动启动的 sidecar 进程,减少残留进程
2026-04-12 15:26:40 +08:00
H3CoF6 f598289939 feat: 更稳定的密钥获取
- 不再维护偏移量/特征码
- 不再hook图片密钥
2026-04-12 03:49:48 +08:00
2977094657 4f9acd3f69 fix(decrypt): 加强解密结果校验并过滤内部数据库
- 新增可用 SQLite 校验,解密失败时返回更明确提示并清理无效输出

- 统一过滤 key_info、FTS 索引库和内部缓存库,修正数据库扫描与账号统计

- 补充解密流和数据库过滤相关测试
2026-04-11 16:57:01 +08:00
2977094657 604e01eb50 fix(realtime): 内置 WCDB sidecar 并切换项目内 DLL
- 桌面端启动时自动拉起 WCDB sidecar,并向后端注入连接参数

- 打包附带 sidecar 脚本与 koffi 运行时

- 改为通过项目内置 WeFlow DLL 处理 realtime 调用,规避宿主校验失败和连接超时
2026-04-11 16:56:42 +08:00
H3CoF6 4b47c1e69c feat: parse last login account info 2026-04-09 01:30:35 +08:00
H3CoF6 73f69f6f14 feat: parse wxgf(wxam) for import data 2026-04-09 01:13:48 +08:00
H3CoF6 0ccd2016e7 feat: 文件选择器 + 信息解析 2026-04-08 16:43:02 +08:00
H3CoF6 ad6031651b feat: 优化导入流程,将导入按钮移至首页并支持目录选择和账号预览 2026-04-08 07:00:53 +08:00
H3CoF6 d64a2e46f7 feat: 新增导入已解密目录功能,支持不走密钥流程导入已解密的数据库和资源 2026-04-08 06:39:06 +08:00
2977094657 655a1fd7f5 feat(chat-media): 修复媒体缓存 2026-04-08 00:21:20 +08:00
2977094657andCodex 1064c5a248 Add detailed chat search click tracing
Co-authored-by: Codex <noreply@openai.com>
2026-04-04 21:45:16 +08:00
2977094657andCodex 624853f483 Add logging and sync guards around chat search decrypt flow
Co-authored-by: Codex <noreply@openai.com>
2026-04-04 20:02:43 +08:00
2977094657 4ba2c75332 feat: improve text chat record loading diagnostics 2026-04-03 18:39:55 +08:00
2977094657 7ae152af33 fix(chat-media): 修复聊天图片缓存降级并刷新当前会话媒体
- 优先使用更高质量的微信图片资源并回写本地缓存
- 图片接口返回 no-store,避免浏览器继续命中旧缓存
- 页面恢复前台时刷新当前会话媒体资源,并补充相关测试
2026-03-30 22:02:09 +08:00
2977094657 697e788318 feat(desktop): 支持自定义 output 目录并迁移现有数据
- 支持在桌面端查看、选择和恢复默认 output 目录
- 安装器记录待应用目录,并在应用启动时自动迁移数据
- 后端支持 output 目录覆盖,补充桌面端与后端相关测试
2026-03-30 22:01:51 +08:00
2977094657 673d1f916a fix(realtime): 修复服务号实时同步写入解密库并优化桌面端运行时兼容性
服务号实时同步改为直接读取 live biz_message 库,避免 gh_* 会话走空的 wcdb_get_messages。

将同步结果写回 output/databases 解密库,并补充异常降级路径。

修复桌面端日志处理与 wcdb_api.dll 的运行时定位问题。
2026-03-28 13:18:22 +08:00
H3CoF6 9a7e0f5854 feat(biz): add biz type 2026-03-28 05:04:12 +08:00
H3CoF6 05cba6c454 fix(biz): fix avatar and cover bug 2026-03-28 04:48:38 +08:00
H3CoF6 46fba98202 fix(biz): fix database_error 2026-03-28 04:33:07 +08:00
H3CoF6 c29b425791 feat(biz): implement parse biz data 2026-03-28 04:16:24 +08:00
2977094657 a94ab83668 feat: support finder cards in chat view 2026-03-26 12:57:50 +08:00
2977094657 c04d515f92 Fix realtime sync writing Msg tables 2026-03-24 17:56:17 +08:00
2977094657 f5f3e85e31 Revert "fix(decrypt): 修复数据库原始密钥解密与设备绑定提示"
This reverts commit bcd8f67c25.
2026-03-24 12:14:18 +08:00
2977094657 dc7ac0a5e4 Revert "fix(decrypt): 修复 SQLCipher 密钥兼容性回归"
This reverts commit 22399f4110.
2026-03-24 12:14:13 +08:00
2977094657 22399f4110 fix(decrypt): 修复 SQLCipher 密钥兼容性回归
- 解密时同时兼容 raw enc_key 与 SQLCipher 派生密钥两种输入形态
- 通过首页 HMAC 自动识别可用密钥模式,避免真实账号密钥被误判为不匹配
- 后续页面解密统一使用识别出的有效密钥,恢复数据库解密流程
- 补充 SQLCipher passphrase 场景回归测试,覆盖此次回归问题
2026-03-23 15:36:39 +08:00
2977094657 11d31ac022 fix(chat): 修复 realtime 同步下 Name2Id 映射缺失
- 将 Name2Id 从随新消息顺带补写调整为按 live WCDB 整表同步\n- 修复输出库中 real_sender_id 无法稳定反查 sender_username 的问题\n- 消除必须删除当前项目数据并重新加载后 Name2Id 才能补全的问题\n- 增加 Name2Id 自愈同步回归测试,覆盖无新消息时的修复场景
2026-03-23 14:38:32 +08:00
2977094657 bcd8f67c25 fix(decrypt): 修复数据库原始密钥解密与设备绑定提示 2026-03-22 19:52:04 +08:00
2977094657 a01dba4a93 fix(chat): 修复群聊置顶系统消息显示名称与导出文案
- 解析 ChatRoomTopMsg 文本/XML 系统消息,识别置顶与取消置顶操作
- 优先使用备注名/联系人名替换 wxid,避免实时消息、历史消息、搜索结果显示原始账号
- 导出 JSON/TXT/HTML 时复用同一套系统消息名称解析逻辑
- 补充系统消息解析与实时消息展示测试,覆盖多种消息载荷格式
2026-03-22 15:34:05 +08:00
2977094657 fb6601251b fix(decrypt): 修复错误账号目录导致的坏库读取问题
- 修正 db_storage 路径扫描逻辑,避免将多账号上级目录误识别为单个账号

- 统一普通解密和流式解密的账号识别与来源写入逻辑

- 为聊天和媒体账号列表增加 SQLite 文件头校验

- 跳过损坏的解密目录,避免聊天页和头像接口继续读取坏库
2026-03-17 12:13:50 +08:00
2977094657 4afdbe20b1 fix(wcdb): 修复dll选择路径 2026-03-17 11:40:25 +08:00
Alfred Tang a79ff81be0 fix: resolve chat messages not loading due to Nuxt auto-import bug and WCDB timeout
- Move frontend/utils/ to frontend/lib/ to avoid Nuxt unimport scanner
  incorrectly extracting function parameter names (value, fallback) as
  module-level exports, which injected phantom imports that broke all
  client-side JavaScript execution
- Update all import paths across 13 files from ~/utils/ to ~/lib/
- Add timeout (5s) and negative cache (60s TTL) to WCDB realtime
  ensure_connected() to prevent open_account() from hanging indefinitely
  when the WeChat database is locked
- Reorder selectContact() to fire loadMessages() before navigateTo() so
  the message fetch starts before route navigation triggers Suspense
- Add watch: false to SSR useAsyncData calls to prevent unnecessary
  re-fetching on client-side route changes
2026-03-14 17:17:10 +08:00
2977094657 a4acd32bb3 fix(logging): 完善服务端错误日志记录并支持设置页打开日志
- 为后端增加 5xx 请求与未处理异常日志记录
- 新增前端服务端错误上报工具与管理接口
- 在聊天导出、朋友圈信息加载、通用 API 请求中补充错误上报
- 设置页新增日志文件路径展示与一键打开能力
- 增加服务端错误日志相关测试
2026-03-12 19:01:47 +08:00
2977094657 3587ea4eaa fix(desktop-runtime): 修复桌面端重装后仍命中旧 UI 缓存
- 启动打包版时按 UI buildId 检测并清理 renderer 缓存
- 记录 lastSeenUiBuildId,避免每次启动都重复清缓存
- 调整 SPA 静态资源缓存策略,index.html/200.html/_payload.json 禁止缓存
- 保留 _nuxt 哈希资源长期缓存,减少必须在卸载时删除数据后才生效的问题
2026-03-11 13:11:39 +08:00
2977094657 1b86f5006a feat(account-data): 新增账号信息查询与项目数据删除能力
新增 /api/chat/account_info 与 DELETE /api/chat/account

删除账号时清理编辑记录、账号密钥缓存与导出/数据库目录

桌面端新增 app:getAccountInfo、app:deleteAccountData IPC 能力

前端 API 层新增 getChatAccountInfo、deleteChatAccount
2026-03-10 19:17:43 +08:00
2977094657 052c6245d1 improvement(voice): 语音优先转 MP3,并完善导出/接口兜底
- 新增 _convert_silk_to_browser_audio:优先 MP3(有 ffmpeg),否则 WAV,最后回退 SILK

- /chat/voice 返回浏览器可播格式,并补充 Content-Disposition 文件名后缀

- HTML 导出按实际格式写入语音资源;音频缺失时仍保留语音气泡结构

- 测试覆盖 MP3 优先、缺失音频兜底,并在用例结束 logging.shutdown()
2026-03-10 11:50:43 +08:00
2977094657 16a13af18a feat(chat): 支持位置消息与小程序卡片解析展示
- 新增位置消息解析,补充经纬度、地点名和地址字段
- 修复小程序分享 type 识别,避免嵌套 type 干扰
- 聊天页新增位置卡片展示,并补充小程序卡片样式
- 导出、搜索和会话预览同步支持位置消息
- 补充位置导出与小程序解析测试
2026-03-06 21:19:15 +08:00
2977094657 d48ba3b9aa fix(logging): 日志写入改用 output_dir 并避免重复初始化
- 日志目录改为 get_output_dir()/logs/...(兼容 WECHAT_TOOL_DATA_DIR)
- 清理/关闭旧 handlers,避免重复输出和 Windows 文件锁
- get_logger/get_log_file_path 未初始化时自动 setup_logging
- 新增 tests/test_logging_config_data_dir.py
2026-03-02 19:04:19 +08:00
2977094657 1e465ca084 fix(desktop-runtime): 兼容 updater 缺失并修复打包后 wcdb 加载路径
- electron-updater 改为可选加载,缺失时自动禁用更新并记录原因
- 打包环境优先注入 WECHAT_TOOL_WCDB_API_DLL_PATH 指向 resources/backend/native/wcdb_api.dll
- 启动后端进程 cwd 调整为 exe 所在目录,避免运行目录不一致
- wcdb_init 失败时附带 native log 摘要,提升故障排查信息
- package.json 显式保留 updater 相关依赖,避免构建裁剪导致模块缺失
2026-03-02 12:57:53 +08:00
2977094657 8a101b4c5e feat(settings): 设置弹窗支持后端端口切换(桌面/网页) 2026-02-28 18:43:48 +08:00
H3CoF6 5f404d694c fix: fix merge conflict 2026-02-28 00:22:37 +08:00
H3CoF6 a4c8d580eb fix: return aes_key to frontend 2026-02-28 00:11:07 +08:00
H3CoF6 2990e22001 feat: get image key during login 2026-02-27 23:17:26 +08:00
H3CoF6 858dcf18ea fix: fix re import error 2026-02-27 22:23:37 +08:00
H3CoF6 7446cca3b9 feat: update pyd for image keys 2026-02-27 22:20:53 +08:00
2977094657 b9a4fafbd8 chore(native): 更新 wcdb_api.dll
同步更新 wechat_decrypt_tool 原生依赖(wcdb_api.dll)。

该文件为二进制变更;本次发布版本由 tag v1.6.1 驱动 Release workflow。
2026-02-27 20:44:35 +08:00
2977094657 f19779fe35 improvement(wrapped): Bento 总览补齐 topEmoji 与回复统计字段
- Bento summary 新增 topEmoji:在 unicode emoji 与微信内置表情(topWechatEmojis/topTextEmojis)中统一择优
- 回复速度统计补充 replyStats(p50/p90),并为 bestBuddy 增加最长连续互动天数/高峰时段等摘要字段
- bump wrapped cache version,避免旧缓存导致前后端字段不一致
- 增加 topEmoji 选择逻辑单测覆盖(wechat vs unicode / text emoji / none)
2026-02-26 20:01:44 +08:00
2977094657 3072297769 feat(wrapped): 新增便当总览卡片(Card #7)
- 增加 Card07BentoSummary 前端渲染与加载/失败重试交互(注入 wrappedRetryCard)

- 后端新增 card_07_bento_summary:基于已实现卡片聚合生成 snapshot,保证渲染稳定

- Wrapped manifest/implemented_upto 升级到 7,并支持按卡片 id 单独构建

- 新增 manifest 末尾卡片校验测试
2026-02-26 18:29:48 +08:00