Commit Graph

11 Commits

  • fix(realtime): 内置 WCDB sidecar 并切换项目内 DLL
    - 桌面端启动时自动拉起 WCDB sidecar,并向后端注入连接参数
    
    - 打包附带 sidecar 脚本与 koffi 运行时
    
    - 改为通过项目内置 WeFlow DLL 处理 realtime 调用,规避宿主校验失败和连接超时
  • fix(realtime): 修复服务号实时同步写入解密库并优化桌面端运行时兼容性
    服务号实时同步改为直接读取 live biz_message 库,避免 gh_* 会话走空的 wcdb_get_messages。
    
    将同步结果写回 output/databases 解密库,并补充异常降级路径。
    
    修复桌面端日志处理与 wcdb_api.dll 的运行时定位问题。
  • 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
  • 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 相关依赖,避免构建裁剪导致模块缺失
  • feat(chat-edit-backend): 新增消息编辑快照、回滚与修复接口
    - 新增 message_edits 存储,记录首次快照、编辑次数与已修改字段
    
    - 新增消息编辑链路:raw 查询、编辑、修改状态、按消息/会话恢复
    
    - 新增发送者修复与 packed_info_data 方向反转能力
    
    - 编辑流程支持 output/db_storage 双写与失败回滚
    
    - path_fix 改为按需校验 db_storage_path,并缓存 body 避免重复读取问题
    
    - 补充 chat_edit_store 单元测试覆盖核心行为
  • feat(sns): 增强朋友圈时间线/媒体获取与实时同步
    - 新增 /api/sns/users:按发圈数统计联系人(支持 keyword/limit)
    - 新增 /api/sns/realtime/sync_latest:WCDB 实时增量同步到解密库(append-only),并持久化 sync state
    - 朋友圈媒体优先走“远程下载+解密”:图片支持 wcdb_decrypt_sns_image,视频/实况支持 ISAAC64(WeFlow 逻辑)
    - 增加 WeFlow WASM keystream(Node) 优先 + Python ISAAC64 fallback,提升兼容性
    - wcdb_api.dll 支持多路径自动发现/环境变量覆盖,并在状态信息中回传实际使用路径
  • feat(chat): 群聊预览补齐群名片并完善系统消息解析
    - 新增系统撤回消息解析:优先提取 replacemsg,并统一清洗文本
    
    - 群聊会话预览文本规范化([表情] -> [动画表情]),并支持发送者前缀展示名替换
    
    - 群名片解析来源扩展:contact.db ext_buffer + WCDB realtime(可选新 DLL 接口)
    
    - 图片接口增强:支持 server_id + username 反查消息提取 md5,提升引用图片命中
  • improvement(chat): 增强 realtime 增量同步并补充消息搜索索引接口
    - 新增后台 autosync:监听 db_storage 变化后触发 realtime -> decrypted 增量同步(去抖/限频)\n- 优化 WCDB realtime 关闭:支持锁超时,避免 busy 时强行 shutdown\n- 新增消息搜索索引相关接口(status/build/senders)\n- 前端关闭 realtime 前改为 sync_all,减少切回解密库后的列表/消息落后\n- 增加解密库消息表/索引创建相关单测
  • feat(sns): 增加朋友圈时间线与图片本地缓存接口
    - 新增 /api/sns/timeline:优先走 WCDB realtime 读取 sns.db,支持分页/用户过滤/关键字
    
    - 新增 /api/sns/media:本地缓存(cache/.../Sns/Img)解密优先,支持手动 pick/避开重复
    
    - 新增 /api/sns/media_candidates 与 /api/sns/media_picks:候选 key 列表与本机持久化匹配表
    
    - wcdb_realtime 增加 exec_query/get_sns_timeline 封装,并在连接时 set_my_wxid 上下文
    
    - 更新 wcdb_api.dll 并补齐 MSVC runtime 依赖
  • feat(chat): 支持聊天记录实时更新(WCDB + SSE)
    - 新增 WCDB realtime 连接管理与 DLL 依赖,并在 shutdown 释放资源
    
    - 新增实时状态/变更 SSE 与增量同步接口(单会话/全会话)
    
    - sessions/messages 支持 source=realtime,增强内容解码与 packed_info md5 提取
    
    - wheel 打包包含 WCDB.dll / wcdb_api.dll