Commit Graph

556 Commits

Author SHA1 Message Date
aliyun8639545015
48b6b2216f fix(account-dir): 修复账号目录解析导致 -3001 错误的两处缺陷 (#996)
## 问题现象

部分用户在新版 WeFlow 配置 / 启动时持续报错:
  「数据库目录不存在: <dbPath>\<wxid>」(错误码 -3001)

复现条件之一:用户曾在微信里"自定义过微信号",dbPath 下会同时遗留两个
形似的子目录:
  - `<自定义号>`             :旧的、无后缀的目录,里面没有 db_storage
  - `<自定义号>_<4 位后缀>`  :微信 4.x 实际写入数据的目录

## 根因分析

账号目录解析有两处独立缺陷,分别命中不同人群:

1. **dbPathService.findAccountDirs / scanWxidCandidates**
   对名字以 `wxid_` 开头的目录额外要求"段数(按 `_` 切分)≥ 3"才放行,
   会让"未自定义过微信号"的普通用户(真实目录就叫 `wxid_X`)的账号
   完全消失在欢迎页扫描结果里。

2. **config.getAccountDir / accountDirResolver.resolveAccountDir**
   对非 `wxid_` 开头的输入存在错误的"短路返回"分支:
       if (!lowerWxid.startsWith('wxid_')) {
         const direct = join(root, cleanedWxid)
         if (existsSync(direct)) return direct  // ← 没校验里面有没有 db_storage
       }
   叠加 cleanAccountDirName 会把 `<自定义号>_<4 位后缀>` 清洗成 `<自定义号>`,
   于是无论用户保存的 myWxid 是哪个,都会命中旧的、无后缀的空目录,
   最终在 wcdbCore.open 阶段触发 -3001。

## 修复策略

把两个文件中"快速短路返回"的代码路径全部去掉,统一走基于"候选 + 评分"
的扫描流程:

  1) 同时接受**精确匹配**(entry == cleanedWxid) 与
     **后缀匹配**(entry.startsWith(cleanedWxid + '_')) 两种命中;
  2) 用 accountDirLooksValid 过滤掉"看起来根本不像账号目录"的项
     (没有 db_storage 也没有 FileStorage/Image[2]),从而过滤掉残留空目录;
  3) 在剩余候选中按以下优先级排序,取最优:
       - 有 session.db > 没有:区分"真正写入数据" vs "残留空目录";
       - 后缀匹配 > 精确匹配:与微信 4.x 实际写入目录命名一致;
       - 修改时间更新 > 更旧:兜底。

dbPathService 侧不再以"段数"过滤目录,改由新增的 dedupeAccountDirs 处理
"无后缀目录"与"带后缀目录"同时存在时的去重,保留"微信实际在用"那个。

## 兼容性

- 旧版本残留的 myWxid(无论用户存的是无后缀还是带后缀形式)都会被
  正确解析到带 session.db 的目录,用户无需手动修改配置;
- 未自定义微信号的普通用户(目录就叫 `wxid_X`)现在能正常被识别;
- 多账号、自定义微信号目录、绝对路径形式的 dbPath 等其它场景行为不变。

## 改动范围

- electron/services/dbPathService.ts
    findAccountDirs / scanWxidCandidates 不再按段数过滤;
    新增 dedupeAccountDirs / shouldPreferSuffixedDir / hasSessionDb 三个辅助方法。
- electron/services/config.ts
    重写 getAccountDir 扫描分支;新增 accountDirLooksValid /
    accountDirHasSessionDb 两个辅助方法。
- electron/services/accountDirResolver.ts
    与 config.ts 同步重写 resolveAccountDir,去掉错误的短路分支。

Closes #996
2026-05-28 11:04:09 +08:00
cc
6d419dbe9e Merge pull request #966 from Jasonzhu1207/main
feat: Disable AI Output Truncation & Optimize max_tokens Settings
2026-05-15 06:32:00 +08:00
Jason
482259953c feat: Disable AI Output Truncation & Optimize max_tokens Settings 2026-05-14 23:32:23 +08:00
xuncha
9cd5947401 fix:缺一行 2026-05-14 22:46:21 +08:00
xuncha
e9e3844e3b Merge branch 'dev' into dev 2026-05-14 22:23:18 +08:00
xuncha
8129c1227b [Question]: 从v4.3.1升级到v4.4.5后,通过/api/v1/messages获取到的content是xml格式
Fixes #958
2026-05-14 22:16:12 +08:00
xuncha
aa4e3388fc [Bug]: 年度报告生成功能无法使用
Fixes #953
2026-05-14 22:11:32 +08:00
xuncha
a98e4af9a8 Revert "修复 #953" 2026-05-14 22:01:56 +08:00
xuncha
046482fccd [Bug]: 年度报告生成功能无法使用
Fixes #953
2026-05-14 21:42:41 +08:00
cc
39e527a21a 修复了全局wxid错误清洗的问题 2026-05-10 15:17:02 +08:00
cc
810a8e9761 #929 2026-05-08 19:33:37 +08:00
cc
abde85a900 #910 2026-05-06 00:05:11 +08:00
cc
a0eee30f7d Merge pull request #909 from Jasonzhu1207/main
feat: add insight inbox
2026-05-05 14:33:03 +08:00
Jason
416b62fdf1 feat: add insight inbox 2026-05-05 13:54:50 +08:00
Jason
b4758d690b feat: add AI insight notification toggle 2026-05-05 12:08:32 +08:00
cc
c09128b83e 支持一键已读 2026-05-04 23:34:49 +08:00
cc
fd0db6e306 修复联系人页面导出异常 2026-05-04 18:33:02 +08:00
cc
4271d29f2b Merge branch 'dev' of https://github.com/hicccc77/WeFlow into dev 2026-05-04 09:25:21 +08:00
cc
86f966d469 #899 2026-05-04 09:25:15 +08:00
badboyyyyHmm
a001f3327c fix: 修复嵌套引用消息显示为[链接]的问题(#895) 2026-05-02 23:50:44 +08:00
cc
2d14ba9078 Merge branch 'dev' of https://github.com/hicccc77/WeFlow into dev 2026-05-02 19:08:12 +08:00
cc
1e3a496021 #887 #875 2026-05-02 19:08:07 +08:00
xuncha
e61930107a [Bug]: 群聊导出中的邀请记录无法正常查看
Fixes #877
2026-05-02 07:59:54 +08:00
cc
d53ddb0ba7 Merge branch 'dev' of https://github.com/hicccc77/WeFlow into dev 2026-04-30 00:00:04 +08:00
cc
1fc710ccef 修复底层配置服务混乱的问题 2026-04-29 23:59:56 +08:00
H3CoF6
b1807b21e7 feat: 选择会话的前端界面 2026-04-29 08:07:16 +08:00
H3CoF6
d27cef6358 优化前端显示和错误提醒 2026-04-29 04:38:25 +08:00
H3CoF6
1f0b2613bf feat(image): 新增自动下载大图选项(win32 x64)
Co-authored-by: NineBird <CavanasD@users.noreply.github.com>
2026-04-29 04:05:48 +08:00
H3CoF6
9c7ed1729a chore: add win32 dll + readme 2026-04-29 02:44:01 +08:00
Jason
9f9ad337ab fix(insight): trim prompt noise and smooth settings animation 2026-04-28 13:35:11 +08:00
Jason
c596d24083 Merge branch 'hicccc77:main' into main 2026-04-28 13:00:15 +08:00
Jason
55a7ce7b66 feat(insight): add moments context gating and prompt integration 2026-04-28 00:14:05 +08:00
cc
7469337aeb fix: support service runtime fallbacks 2026-04-27 23:08:39 +08:00
cc
a86a51c30c #849 以及导出中媒体相关问题修复 2026-04-26 18:46:56 +08:00
姜北尘
1b75986987 feat(export): 添加导出暂停取消控制 2026-04-25 23:24:27 +08:00
cc
32aab8d490 fix: 迁移图片资源保留原始dat 2026-04-25 22:55:28 +08:00
cc
8e2a6ec933 优化防撤回会话列表 2026-04-25 19:22:35 +08:00
cc
fc3356ece2 Merge branch 'dev' of https://github.com/hicccc77/WeFlow into dev 2026-04-25 18:38:15 +08:00
cc
cd1ecf0ef6 修复文案描述与添加hardlink备份支持 2026-04-25 18:38:12 +08:00
cc
9e6bf0f21a Merge pull request #842 from Jasonzhu1207/main
feat: add silent startup
2026-04-25 18:37:51 +08:00
Jason
42d4982728 feat(settings): add silent startup to tray 2026-04-25 17:42:13 +08:00
cc
f07e23b144 完善数据迁移 2026-04-25 17:41:14 +08:00
cc
6cf67828a2 修复Linux密钥问题 2026-04-25 15:50:45 +08:00
cc
625e7ac8f1 Merge branch 'dev' of https://github.com/hicccc77/WeFlow into dev 2026-04-25 15:23:18 +08:00
cc
a0b976e5d2 修复包错误的问题 2026-04-25 15:23:13 +08:00
xuncha
f63743cc87 Merge branch 'hicccc77:dev' into dev 2026-04-25 14:58:32 +08:00
xuncha
69f834ca42 [Bug]: HTTP接口返回的message里的serverId与导出方式中的platformMessageId值不一样,且两者就末尾几位不一样(因为一个返回的是string,一个是number)?是精度问题导致的?
Fixes #838
2026-04-25 14:57:32 +08:00
cc
6cd01b0209 Merge branch 'dev' of https://github.com/hicccc77/WeFlow into dev 2026-04-25 14:55:33 +08:00
cc
5129574729 数据备份测试 2026-04-25 14:55:31 +08:00
xuncha
2c01951791 chatlab会话新增消息类型 2026-04-25 14:17:32 +08:00