2977094657
52ef2b8ded
fix(realtime): 修复前后端分离运行时实时模式校验失败
...
前后端分离运行时补齐 WCDB sidecar 自动启动链路
在缺少 sidecar 环境变量时自动探测并拉起本地 Electron sidecar
初始化失败时回退到进程内 WCDB 路径,避免直接中断实时模式
服务关闭时回收自动启动的 sidecar 进程,减少残留进程
2026-04-12 15:26:40 +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
2977094657 and Codex
1064c5a248
Add detailed chat search click tracing
...
Co-authored-by: Codex <noreply@openai.com >
2026-04-04 21:45:16 +08:00
2977094657 and Codex
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
2977094657
108b0b18ab
improvement(chat-export): 收敛导出 CSS 打包范围,避免 Scoped 规则泄漏
...
- 仅打包聊天页相关的 _nuxt/*_username_*.css,避免去 scoped 选择器后污染全局
- Offline viewer CSS patch 引入 --dpr 缩放,改善不同 DPR 下的显示一致性
- 移除 chatHistoryModal 的静态 HTML 输出,改由 data 标记驱动
- 修正聊天记录解析正则中的空白匹配转义
- 更新导出相关测试断言(移除 modal id/放宽字体资源/校验不引入 wrapped 样式)
2026-02-26 18:29:19 +08:00
2977094657
236d0ae703
feat(wrapped): 年度关键词卡升级为年度常用语词云
...
- 新增常用语短句过滤与统计,按重复短句(非分词)生成词云数据。
- 引入常用语扫描元数据(scannedCandidates/matchedCandidates/uniquePhrases 等)。
- 示例语句抽样改为唯一优先,不足补齐重复,提升短句命中率。
- wrapped cache version 升级到 24,并补充常用语相关单元测试。
2026-02-22 22:18:43 +08:00
2977094657
e537c524f3
improvement(wrapped): 精简全局概览热力图,移除 highlights 标记
...
- 移除 annualHeatmap highlights 的扫描与计算逻辑,降低卡片计算复杂度。
- card_00_global_overview 固定返回 highlights: [],保持热力图主体数据不变。
- 清理不再使用的辅助函数与正则依赖。
2026-02-22 22:18:17 +08:00
2977094657
2dd103814a
feat(wrapped): 新增年度关键词词云卡片(Card #6)
...
- 新增关键词词云后端计算:消息采样、jieba 分词、关键词权重与例句回看数据。
- Wrapped 年度卡片接入 Card #6,并对该卡片改为按请求重算(不走单卡缓存)。
- 前端新增 storm->cloud 词云动效卡片,支持词点击查看例句及动画阶段隐藏 deck 顶部 UI。
- 统一 wrapped 消息表名解码逻辑,兼容 sqlite text_factory=bytes。
- 新增关键词词云测试并加入 jieba 依赖。
2026-02-22 18:59:30 +08:00