面向 WeFlow 5.0.0 的社区热修复,解决 2026 年 10 月 1 日后启动即报 -101(原生库构建过期)、2026 年 7 月底后聊天记录导出失效、私聊页面首次点击“导出”时卡在“正在准备导出模块”,以及兼容导出中的 Silk 解码失败。
本仓库不是 WeFlow 官方仓库。补丁基于上游项目 hicccc77/WeFlow,仅用于非商业的社区修复与交流。
- WeLive 导出引擎提示
this build has expired时,自动切换到内置 WCDB 导出路径。 - WeLive 原生握手返回
-101、proof/finish 失败或进程异常退出时,不再重复拉起失效引擎。 - 批量导出中检测到不兼容后,后续会话直接使用 WCDB,避免每个会话都等待失败。
- 修复私聊页面冷启动后首次点击“导出”卡死:把一次性
CustomEvent改为可持久消费的 Zustand 请求。 - 导出上下文显式传递账号目录,降低多账号或非默认目录下读错路径的风险。
- Export Worker 显式接收 Electron 的
process.resourcesPath和app.getAppPath(),使silk-wasm能从真实的app.asar.unpacked路径加载 WASM。
Silk 问题的诊断过程与通用经验见 Electron Worker 中的 Silk WASM 路径排障。
WeFlow 随包分发的原生库 resources/resources/wcdb/win32/x64/wcdb_api.dll 内置两个硬编码的构建过期开关(都指向 2026-09-30 23:59:59)。到期后 InitProtection() 返回 -101、wcdb_init() 返回 -1000,应用表现为弹窗「WeFlow 启动失败 / 错误码: -101」,数据库完全无法初始化。
该 DLL 是上游提交的预编译产物,npm run build 无法修复(重建只会原样打包同一个过期 DLL)。三种修复方式任选其一,都需要先退出 WeFlow。
方式一:用仓库中的脚本就地修补(自动备份、可重复执行):
.\scripts\Patch-WcdbApiExpiry.ps1 -DllPath "$env:ProgramFiles\WeFlow\resources\resources\wcdb\win32\x64\wcdb_api.dll"方式二:直接使用本仓库提供的已修补二进制(见 binaries/,SHA-256 1536...93D0):
$dll = "$env:ProgramFiles\WeFlow\resources\resources\wcdb\win32\x64\wcdb_api.dll"
Copy-Item -LiteralPath $dll -Destination "$dll.bak-expiry" -Force
Copy-Item -LiteralPath .\binaries\wcdb_api.dll -Destination $dll -Force原理、验证方法与注意事项见 原生库构建过期开关的诊断与修补。
重装、修复安装或升级 WeFlow 都会覆盖该 DLL,需要重新执行上面的脚本。
适用环境:Windows 10/11 x64、WeFlow 5.0.0、微信 4.x。
-
退出 WeFlow,包括系统托盘中的后台进程。
-
从 最新 Release 下载
WeFlow-5.0.0-Community-Hotfix.3-Setup.exe。 -
使用仓库中的校验脚本核对安装包:
.\scripts\Verify-Installer.ps1 -Installer "$env:USERPROFILE\Downloads\WeFlow-5.0.0-Community-Hotfix.3-Setup.exe"
-
运行安装包,按提示覆盖安装。
-
启动后数据库应正常打开;进入任意私聊,第一次点击“导出”也应正常打开导出面板。
安装包 SHA-256:
FBE8D7A2367299145C838215C4733CBCC8D7E4DA8F403D731A9AB5B917520625
补丁目标是 WeFlow 5.0.0 源码仓库,生成基线为提交 e5b7067aa0554151d2762c6f889dd47bc1bf2f46。请先提交或暂存自己的修改,再执行:
git clone https://github.com/AnonymousUser443/WeFlow-Community-Patch.git
cd WeFlow-Community-Patch
.\scripts\Apply-Patch.ps1 -WeFlowRoot "D:\path\to\WeFlow"也可以手动执行:
git -C "D:\path\to\WeFlow" apply --check ".\patches\weflow-community-hotfix.patch"
git -C "D:\path\to\WeFlow" apply ".\patches\weflow-community-hotfix.patch"然后在 WeFlow 源码目录中验证并构建:
npm ci
npm run typecheck
npm run buildnpm run typechecknpm run build- WeLive 过期错误自动进入 WCDB 回退路径
- 模拟原生握手
-101自动进入 WCDB 回退路径 - 私聊导出请求可在懒加载页面挂载前保存,并在挂载后消费
- 20 个真实语音样本均为标准
#!SILK_V3,且可由同版silk-wasm成功解码 - 打包后的 Worker 使用真实 Electron resources/app 路径,
silk.wasm存在于app.asar.unpacked - 标准 NSIS 安装包生成成功
- 原生库过期开关修补后,
InitProtection()与wcdb_init()均返回0(用koffi直接加载 DLL 验证) - 修补后在影子副本与真实安装上分别启动,日志均出现
open ok handle=1,且不再出现-101或WCDB 初始化失败 - Hotfix 3 安装包内的
wcdb_api.dll已从安装包中解出并核对哈希,确认为修补版
在部分 Windows 环境中,实时防护可能会在 electron-builder 改写 EXE 资源时短暂锁定文件,表现为 EBUSY。如果你从源码构建且确认源码可信,可临时只排除当前源码/构建目录,构建完成后再移除排除项。不要关闭整机防护。
补丁只调整本地导出流程,不会上传聊天记录。本仓库不包含任何聊天数据库、账号目录、解密密钥、本地配置或调试日志。仓库内唯一的二进制是 binaries/wcdb_api.dll(对上游预编译 DLL 的 6 字节修补版,用途见上,除这 6 字节外与上游完全一致)。
补丁属于对上游 WeFlow 的改编材料,沿用上游的 CC BY-NC-SA 4.0 许可,仅限非商业用途,并应保留署名、采用相同方式共享。WeFlow、微信及相关名称和商标归各自权利人所有。