Skip to content

Releases: LuckTerence/CleanYourWechatTool

CleanYourWechatTool v1.0.10 · 数据安全修复

Choose a tag to compare

@LuckTerence LuckTerence released this 27 Sep 17:01

Release Notes - CleanYourWechatTool v1.0.10

发布日期: 2026-09-28
类型: 数据安全修复(2 项)

本版本修复两处在特定操作时序下可能导致用户数据丢失的问题,建议所有用户升级。


重要修复

1. 归档中途取消后无法一键恢复

  • 问题:外置归档过程中点击取消(或处理中途发生异常),已经移到外置目录的文件不会写入 archive_manifest.json(清单此前每满 100 条才中途落盘一次,最终写入位于循环之后)。结果文件已被移走,却无法通过 restore 原样放回。
  • 修复:清单写入改为 finally 执行,任何中断路径都会先落盘已归档记录。

2. 去重可能覆盖扫描后被修改的文件

  • 问题:去重依据的是扫描时计算的哈希;从扫描完成到点击执行之间,若用户修改了其中某个文件,执行时会直接被另一份旧内容的硬链接替换,修改内容丢失。
  • 修复:执行前对每个文件重新校验大小与完整哈希,不一致即跳过并记录日志;若保留的主副本已变化,则整组跳过。预览(dry-run)不受影响。

测试

  • 新增 test_archive_manifest_written_on_cancel、test_execute_dedup_skips_file_modified_after_scan 两个回归测试(在旧代码上均失败)。

CleanYourWechatTool v1.0.9 · 边界修复与发布门禁固化

Choose a tag to compare

@LuckTerence LuckTerence released this 12 Sep 03:30

Release Notes - CleanYourWechatTool v1.0.9

发布日期: 2026-09-12
类型: 稳定性与边界修复(3 项) + 发布工程门禁固化

本版本在 v1.0.8 的基础上,针对三处在窄场景(大文件抽屉交互、后台诊断完成时序、主子线程白名单并发配置)下可能触发的异常进行了针对性防御,并内置了发布自检门禁脚本。


重要修复与稳定性增强

1. 消除大文件抽屉点击 KeyError

  • 问题:大文件抽屉展开期间,若后台重新完成诊断并刷新了文件元数据字典,残留的旧项目 ID 点击时会直接触发 KeyError,导致界面停滞在半更新状态且无提示。
  • 修复:在 on_click 事件中增加 iid in meta 存在性防御保护。

2. GUI 后台任务完成回调异常显式捕获

  • 问题:_poll_queue 中此前仅捕获 queue.Empty,当 on_done 回调执行抛出未预料异常时,窗口化应用没有标准错误流输出,导致异常被静默吞掉,界面无法恢复。
  • 修复:显式捕获 on_done 执行期异常,记录日志并通过原生弹窗进行友好提示。

3. 白名单多线程迭代竞争保护

  • 问题:当后台诊断线程正在遍历白名单规则时,如果用户在前端界面同时新增或修改白名单规则,可能触发 Python 的 RuntimeError: dictionary changed size during iteration。
  • 修复:遍历改为快照安全迭代(list(self.rules.values()))。

工程规范与自动化

  • 发布自检门禁 (scripts/preflight.py):把版本号一致性、工作区状态、远程同步、pytest 矩阵、flake8/mypy 静态扫描、CLI 冒烟及 GUI 真机运行固化为一键检查命令,阻断不合格打包。
  • 发布流程规范 (docs/RELEASE_PROCESS.md):建立规范的发布标准与四层故障回退方案。

CleanYourWechatTool v1.0.8 · 上线前全量审核修复

Choose a tag to compare

@LuckTerence LuckTerence released this 11 Sep 06:19

Release Notes - CleanYourWechatTool v1.0.8

发布日期: 2026-09-11
类型: 上线前全量审核修复(11 项,含 1 个阻断发布的问题)

本轮在发布前做了三路并行审核(引擎/CLI、图形界面、端到端实跑),共修复 11 个问题,
其中包含一个会导致「发布即失败」的问题和一个会导致「去重后文件意外消失」的问题。


重要修复

1. 界面承诺的释放量 = 实际能释放的量

此前界面上「预计可安全释放」可能高于实际,原因有三处,本次全部对齐到同一个判定函数:

  • 死线过度拦截:运行时目录名(resources 等)的死线原先对任意路径层级生效,
    导致缓存内部的同名目录被误保护——实测本机 52 MB 可清缓存被白留。
    现改为仅对账号根目录第一层生效;数据库、.db/.db-wal、.dll/.pak
    等硬拦截完全不变。
  • 预估未扣除拦截项:修改后预估与执行的差额由 65.9 MB 降至 13.9 MB
    (余下为真正应拦的程序组件后缀)。
  • 跨卡片重复计算:同一个文件可能同时属于「缓存垃圾」与「历史大文件」候选,
    此前简单相加导致虚高;现按绝对路径去重(实测显示 260 MB → 正确值 160 MB)。

2. 避免「去重」与「清理」相互叠加造成意外

同一文件既在去重组、又被勾选清理时,此前会先合并为硬链接、随后该路径又被清理,
结果超出用户「只合并不删除」的预期。现改为:组内任一文件被选中清理时,整组避让。

3. 归档可靠性

  • 归档过程中被取消或异常中断时,此前不会写出清单,已归档文件将失去还原依据;
    现改为每 100 条周期性落盘,清单本身也改为原子写入(临时文件 + 替换)。
  • 归档的行为边界在命令输出与文档中明确说明:归档文件不在本机,
    微信内点击会提示"文件不可用"属预期行为,插回磁盘执行 restore 即可原样恢复。

4. 多账号支持(命令行)

scan / clean / dedup 此前只处理第一个账号,多账号用户其余账号静默漏清。
现默认处理全部账号(输出 [1/2] [2/2] 分组),并新增 --account <id或片段> 精确指定。

5. 触控板 / 滚轮无法滚动

界面内容超出后只能拖动滚动条,无法用触控板双指或滚轮滚动。
根因是界面库按事件数值计算滚动步长,在较新的 Tk 运行时下该值算为 0;
现改为按方向以固定步长滚动(兼容各平台事件语义)。

6. 打包产物启动崩溃(继承 v1.0.6/v1.0.7 修复)

窗口图标的 Pillow 依赖改为可选(缺失时优雅降级),打包配置显式收集,
并在发布流程中增加产物冒烟测试:产物无法启动则发布直接失败。


其他修复

问题 影响
restore 命令的模块导入路径 pip 安装 / 打包环境下该命令直接崩溃(已改为统一导入)
scan 的 --account 参数未生效 参数存在但不起作用
表格标题写成 账号 [wxid] 方括号被渲染库当作样式标签,账号名被吞掉
--archive-to 未展开 ~ ~/路径 写法失效
任务进行中切换账号 界面显示与实际扫描账号错位(现拦截并提示)
--min-size abc 等非法参数 显示原始错误堆栈(现为友好提示)
测试断言停留在旧默认值 会导致 CI 失败、发布被跳过(已同步)

下载

平台 文件
macOS (Apple Silicon) CleanYourWechatTool-arm64.dmg
Windows 10/11 (64 位) CleanYourWechatTool-windows-x64.zip

首次打开若提示"无法验证开发者":系统设置 → 隐私与安全性 → 仍要打开;
或终端 xattr -cr /Applications/CleanYourWechatTool.app。
(macOS 15 起 Apple 已移除"右键打开"的绕过方式。)

首次使用需授予完全磁盘访问权限(系统设置 → 隐私与安全性 → 完全磁盘访问权限),
否则读不到微信数据——应用内会给出跳转指引。


质量与验证

  • 83 项自动化测试全绿(含新增的死线回归测试 4 项);
  • flake8 / mypy 无告警;CI 在 macOS / Windows / Ubuntu × Python 3.8–3.12 矩阵运行;
  • 端到端实跑验证:清理(文件确实进入废纸篓、数据库未被触碰、统计计数正确)、
    归档与恢复闭环、多账号分派、命令行全命令冒烟 10/10 通过。

CleanYourWechatTool v1.0.7 · 补齐 macOS 打包依赖与高清图标

Choose a tag to compare

@LuckTerence LuckTerence released this 09 Sep 07:29

Release Notes - CleanYourWechatTool v1.0.7

发布日期: 2026-09-09
类型: 紧急修复(macOS 打包依赖补全与 Logo 渲染)+ CI 产物冒烟门禁加固


核心修复:补齐 macOS 打包环境 Pillow 依赖

在 v1.0.6 中虽然增加了优雅降级,但 macOS 构建环境(CI build-gui 步骤)中因遗漏 pillow 安装,导致生成的 .app 产物未打包 Pillow,运行时无法显示高清 Logo 和窗口图标:

  1. 构建依赖补全:在 .github/workflows/ci.yml 的 build-gui 阶段中正式补齐 pillow 安装;
  2. Logo 逻辑严密防护:在 clean_wechat_gui.py 的 _build_ui() 中增加 Image is not None 判空,彻底消除潜在的 AttributeError;
  3. 冒烟测试深度加固:在产物冒烟门禁中新增「Logo 与关键装饰依赖完整性」断言,若出现图标降级告警将立即阻断发布。

下载

平台 文件 说明
macOS (Apple Silicon) CleanYourWechatTool-arm64.dmg 适用于 M1/M2/M3/M4 芯片 Mac
macOS (Intel) CleanYourWechatTool-x86_64.dmg 适用于 Intel 芯片 Mac
Windows 10/11 (64 位) CleanYourWechatTool-windows-x64.zip 绿色便携免安装版,解压直接运行

macOS 首次打开若提示"已损坏 / 无法验证开发者"(应用未经公证):
右键应用图标 → 打开;或执行 xattr -cr /Applications/CleanYourWechatTool.app。

Windows:未签名的便携版可能被 SmartScreen 拦截,选择「更多信息」→「仍要运行」即可。

CleanYourWechatTool v1.0.6 · 修复启动崩溃

Choose a tag to compare

@LuckTerence LuckTerence released this 09 Sep 06:51

Release Notes - CleanYourWechatTool v1.0.6

发布日期: 2026-09-09
类型: 紧急修复(产物启动崩溃)+ 发布质量门禁


修复:v1.0.5 的 .app 双击即崩溃

v1.0.5 产物的图形界面在启动时抛出异常:

ModuleNotFoundError: No module named 'PIL'

原因:窗口图标显示依赖 Pillow,但打包配置未收集该依赖。
该问题未被 CI 发现——87 项测试与多平台矩阵均针对源码运行,不覆盖打包产物。

修复(双保险):

  1. 图形界面将 Pillow 改为可选依赖,缺失时优雅降级为无窗口图标,不阻断启动;
  2. 打包配置显式收集 PIL / PIL.Image / PIL.ImageTk。

实测:修复后产物启动存活并正常进入主界面(此前必崩)。

新增:发布前的产物冒烟门禁

为避免同类问题再次被"测试全绿"掩盖,发布流程在上传 Release 前新增冒烟步骤:

  • 真正运行打包产物(macOS 运行 .app,Windows 运行 .exe);
  • 断言进程存活且启动日志无 Traceback / ModuleNotFoundError / ImportError;
  • Windows 额外校验产物内 customtkinter、PIL 依赖资源齐备;
  • 任一不通过则发布流程失败,坏包不会出现在 Release 页面。

下载

平台 文件
macOS (Apple Silicon) CleanYourWechatTool-arm64.dmg
macOS (Intel) CleanYourWechatTool-x86_64.dmg
Windows 10/11 (64 位) CleanYourWechatTool-windows-x64.zip

macOS 首次打开若提示"已损坏 / 无法验证开发者"(应用未经公证):
右键应用图标 → 打开;或执行 xattr -cr /Applications/CleanYourWechatTool.app。

Windows:未签名的便携版可能被 SmartScreen 拦截,选择「更多信息」→「仍要运行」即可。

CleanYourWechatTool v1.0.4 · 智能两步筛选与纯净交互

Choose a tag to compare

@LuckTerence LuckTerence released this 09 Sep 02:28

Release Notes - CleanYourWechatTool v1.0.4

发布日期: 2026-09-09
类型: 智能两步筛选 + 零 Emoji 纯净交互 + 办公重要文档锁定保护


精准两步筛选机制 (先选人,后选文件)

全面重构历史大文件的筛选模式,打破微信自带清理“整群整人一刀切”的暴力清除逻辑:

  1. 第一步 · 核心人脉防删白名单(先选人/群):
    • 筛选面板顶部常驻白名单守护条,一键直达「管理保护名单」;
    • 自动避开白名单联系人/重要群聊,以及含有「合同/发票/方案」关键词的核心文件。
  2. 第二步 · 细粒度文件类型选择(后选文件):
    • 聊天大视频 (.mp4 / .mov 等) —— 默认不勾选;
    • 临时压缩包/安装包 (.dmg / .zip / .pkg 等) —— 默认不勾选;
    • 办公重要文档 (.pdf / .docx / .xlsx 等) —— 默认锁定保护,防手滑误删。
  3. 100% 自主掌控(默认零勾选):
    • 历史大文件初始处于 100% 绝对保护锁定状态,绝不自作主张勾选任何项目;
    • 只有用户主动确认并打勾的项目才会被纳入预估清理范围。

零 Emoji 纯净专业界面

  • 按照企业级与严谨生产力工具标准,移除所有 Emoji 表情符号,提供干净、专业、现代的 UI 界面体验;
  • 明细抽屉增加清晰的文本类别标识(视频、压缩包、文档、其他)。

质量与测试

  • 全套 83 项单元与集成测试全绿通过;
  • CI 持续集成覆盖 Python 3.8–3.12 跨平台测试及安全审计。

CleanYourWechatTool v1.0.3 · 全新界面与交互重构

Choose a tag to compare

@LuckTerence LuckTerence released this 08 Sep 16:44

Release Notes - CleanYourWechatTool v1.0.3

发布日期: 2026-09-09
类型: 全新界面 + 交互重构(渐进式披露)


🎨 全新界面:微信智能空间管家

界面整体重构为 CustomTkinter 原生质感(深浅色自适应),信息层级收敛为:
一屏核心看板 + 三张智能建议卡片 + 一个主操作按钮。

  • 顶部看板:微信当前占用 / 预计可安全释放 / 一键安全瘦身
  • 三张智能建议卡片:基础系统垃圾(零风险)、多群转发重复文件(无损合并)、历史大文件(空间大户)
  • 每张卡片独立开关,释放总量与按钮状态实时联动
  • 底部常驻累计成就与操作状态

🍃 树叶版应用图标

新图标:微信绿渐变 + 白叶 + 叶脉 + 对勾,贴合"轻量、瘦身"的定位。

🧩 渐进式披露:默认极简,需要时可选

不做参数铺陈,也不砍能力——

  • 默认:推荐值已选好(90 天前 / 大于 10MB / 视频与接收文件),普通用户零配置、零术语
  • 可选:每张卡片提供「调整筛选条件」折叠区
    • 历史大文件:清理时间 / 最小大小 / 文件类型,改完自动重算
    • 重复文件:重复判定大小阈值
  • 核对:历史大文件支持打开明细抽屉,逐条勾选后再执行

🛡 稳定性与正确性修复

  • 取消链路修复:任务取消不再被当作"完成"渲染(正确显示"已取消");去重阶段支持取消与进度
  • 任务重叠防护:后台任务进行中拒绝新任务,避免状态互相覆盖
  • Python 3.8 兼容修复(哈希参数在 3.9+ 才支持,导致 3.8 环境失败)
  • 统计准确性:累计释放/保护数据统计修正
  • 防御死线:数据库与程序组件后缀、运行时目录物理拉黑,任何规则都不可触碰

下载

机型 文件
Apple Silicon (M1/M2/M3/M4) CleanYourWechatTool-arm64.dmg
Intel CleanYourWechatTool-x86_64.dmg

首次打开提示"已损坏 / 无法验证开发者"(应用未经 Apple 公证):
右键应用图标 → 打开;或终端执行 xattr -cr /Applications/CleanYourWechatTool.app。

提示"未找到微信数据":系统设置 → 隐私与安全性 → 完全磁盘访问权限,
将本应用加入列表后重启(应用内也会一键引导跳转该设置面板)。


质量与测试

  • 63 项单元与端到端测试全绿;
  • CI:Python 3.8–3.12 × macOS/Ubuntu 矩阵 + flake8 + mypy + bandit + pip-audit 全绿;
  • 双架构 .app 由 GitHub Actions 自动打包并附于本 Release。

CleanYourWechatTool v1.0.2 · 交互体验大版本

Choose a tag to compare

@LuckTerence LuckTerence released this 08 Sep 08:32

Release Notes - CleanYourWechatTool v1.0.2

发布日期: 2026-09-08
类型: 交互体验大版本 (macOS 原生习惯全面对齐)


🍃 新应用图标

应用图标重绘为树叶主题(微信绿渐变 + 白叶 + 叶脉 + 对勾)——贴合"轻量、瘦身"的产品定位。

🖱 macOS 原生操作习惯 (文件清单)

  • 双击文件行:用系统默认程序直接打开该视频/文档;
  • 按空格键:唤起 macOS 标志性的 Quick Look 快速预览(无需跳出应用去访达);
  • 右键菜单:在访达中显示 / 包含 / 排除 / 加入白名单保护;
  • 点击表头排序:按大小 / 修改日期 / 路径排序,再次点击反转方向(带 ▾▴ 指示)。

☑ 清单即决策:勾选排除,执行只删勾选项

预览清单中的每个文件都可以单独排除(点击"含"列切换 ☑/☐,或 Shift/Ctrl 多选后右键批量排除)。
执行清理时只处理清单中未排除的文件,不再把过滤参数重新全量执行一遍——
预览阶段看到什么、排除什么,执行就动什么。

🏆 累计成就仪表

底部状态栏常驻"已累计为这台 Mac 释放 XX 空间(清理 N 次 / 去重 M 次)",
每次清理或去重后实时刷新。

⏳ 动态进度与可取消

大库扫描 / 指纹计算 / 全量校验各阶段实时上报进度计数("已检查 14,320/15,000 个文件…"),
并提供取消按钮——数万文件规模下不再有"假死"焦虑。

🔁 去重界面升级为交互表格

重复文件清单从纯文本升级为两级表格(组 + 文件行,绿色=保留底稿、红色=重复副本):

  • 右键**"将此文件设为保留底稿"**,自由切换保留哪一份副本;
  • 双击在访达中定位;
  • 执行遵循切换后的保留状态。

📂 多账号与自定义目录

  • 顶部账号下拉框列出全部发现的微信账号及占用大小,切换即重扫;
  • 支持"重新检测"与"自定义微信目录",自动探测受挫时可手动指定。

🛡 防御死线

引擎与界面双侧物理拉黑数据库及程序组件后缀(.db/.sqlite/.ldb/.sst/.dll/.dylib/.pak 等)
与运行时目录(bin/runtime/frameworks/resources),任何清理规则都不可触碰——
即使未来目录结构变化或使用自定义路径,聊天数据库与微信本体也不会受损。


下载

机型 文件
Apple Silicon (M1/M2/M3/M4) CleanYourWechatTool-arm64.dmg
Intel CleanYourWechatTool-x86_64.dmg

首次打开提示"已损坏/无法验证开发者"(应用未经公证):右键应用图标 → 打开;
或终端执行 xattr -cr /Applications/CleanYourWechatTool.app。

提示"未找到微信数据":系统设置 → 隐私与安全性 → 完全磁盘访问权限,
将本应用加入列表后重启(应用内也会一键引导跳转该设置面板)。


质量与测试

  • 61 项单元与端到端测试全绿;GUI 交互断言(勾选排除 / 统计联动 / 表头排序升降 /
    去重表格 / 访达定位 / 双击空格 / 成就 / 取消 / 多账号)全部通过;
  • CI: Python 3.8–3.12 × macOS/Ubuntu + flake8 + mypy + bandit + pip-audit 全绿;
  • 双架构 .app 已在本机实测启动。

CleanYourWechatTool v1.0.1 · 图形界面首发

Choose a tag to compare

@LuckTerence LuckTerence released this 08 Sep 06:48

Release Notes - CleanYourWechatTool v1.0.1

发布日期: 2026-09-08
类型: 图形界面首发 + 安全修复


🖥 图形界面首发 (GUI)

新增 CleanYourWechatTool.app(macOS,基于 ttkbootstrap,引擎层零改动复用)。
用户全程零终端:所有清理条件均为下拉与勾选。

  • 智能瘦身:时间范围 / 文件类型 / 大小阈值 / 处理方式(废纸篓或归档)全部选择题化;
    流程强制为 预览文件清单 → 确认 → 执行,清单按大小降序列出每个文件的大小、
    修改日期与路径,杜绝盲确认;
  • 重复文件去重:阈值下拉 → 扫描重复组 → APFS 硬链接去重(聊天窗口文件照常打开);
  • 防删白名单:交互式添加保护规则——填名字和关键词即可,微信号/群ID 选填;
  • 执行前若检测到微信正在运行会提醒先退出。

下载(按机型选择):

机型 文件
Apple Silicon (M1/M2/M3/M4) CleanYourWechatTool-arm64.dmg
Intel CleanYourWechatTool-x86_64.dmg

首次打开提示"已损坏/无法验证开发者":本应用未经 Apple 公证,任选其一:
右键应用图标 → 打开;或终端执行 xattr -cr /Applications/CleanYourWechatTool.app。

提示"未找到微信数据":打开 系统设置 → 隐私与安全性 → 完全磁盘访问权限,
将本应用加入列表后重启。


🔒 安全修复

  1. WebUI CSRF 防护:POST 端点此前不校验来源,本机任意网页可静默触发清理类
    写操作;现强制校验 Host/Origin 为本机回环地址。
  2. 存储型 XSS 修复:白名单名称/微信ID/关键词与历史备注等用户可控字段在
    WebUI 渲染前全部 HTML 转义;移除按钮改用事件委托,消除属性注入。
  3. 配置原子写:状态统计与白名单配置改为临时文件 + fsync + 原子替换;
    损坏时自动备份为 *.corrupted-<时间戳> 并提示,不再静默归零——
    白名单是防删保护的唯一数据源,此前损坏会静默失效导致误删风险。
  4. 白名单结构校验:解析结果缺少已知结构键时按损坏处理并备份,
    不再被 or {} 静默吞掉。

🛠 引擎与体验

  • 去重联动白名单:重复文件查重与去重全程跳过白名单命中文件
    (此前去重会触碰受保护文件,违背防删承诺);
  • 归档同名冲突:归档目录已存在同名文件时自动加 _2 后缀并记审计日志,
    不再静默覆盖旧归档;
  • 确认前展示文件清单:CLI 与 GUI 一致,清理/演练前列出全部命中文件
    (大小降序),用户逐个可见"将动哪些文件";
  • 微信运行检测:清理/去重前检测微信进程并提醒。

质量与测试

  • 61 项单元与端到端测试全绿(新增 7 项:CSRF/XSS 相关、去重白名单联动、
    归档冲突、原子写一致性/损坏备份);
  • CI: Python 3.8–3.12 × macOS/Ubuntu 矩阵 + flake8 + mypy + bandit + pip-audit 全绿;
  • GUI .app 已在本机实测启动;.dmg 由 CI 双架构构建。

CleanYourWechatTool v1.0.0 · 微信智能瘦身(安全无损)

Choose a tag to compare

@LuckTerence LuckTerence released this 07 Sep 08:43

Release Notes - CleanYourWechatTool v1.0.0 (Official MVP)

发布日期: 2026-09-08
适用平台: macOS (Apple Silicon & Intel x86_64),微信 4.0+(3.x 目录结构已兼容识别)
Python 要求: Python >= 3.8(零第三方运行时依赖)


亮点 (Key Highlights)

1. 微信存储空间透视 (cleanyourwechat scan)

  • 自动发现本机全部微信账号,按 db_storage / video / file / attach / cache 分类统计空间占用。
  • 实测:本机微信 5.6 GB 中,核心文字与数据库仅占约 2.9%(166 MB),97% 的空间是可安全瘦身的媒体与附件。

2. 废纸篓安全清理 (cleanyourwechat clean)

  • 所有清理默认通过 macOS Finder 移入系统废纸篓(非 rm),可随时"放回原处"。
  • 支持 --days / --min-size / --types 组合过滤与 --dry-run 演练模式。
  • --archive-to 将陈年大文件无损迁移至外接 SSD / NAS,原始目录结构完整保留。

3. 多群重复文件去重 (cleanyourwechat dedup)

  • 解决"同一文件转发到 N 个群占用 N 份磁盘"的痛点。
  • 三级指纹(大小分桶 → 稀疏采样 → 全量哈希)快速识别重复文件。
  • --action hardlink 通过 APFS 硬链接合并重复副本:微信各会话点击原样打开,物理磁盘只占一份。

4. 防删白名单 (cleanyourwechat tag)

  • 支持文件名关键词(如"合同、报价、委托书")与精确路径规则的绝对豁免,命中文件绝不进废纸篓。
  • 清理与去重全程一票否决,并在报告中统计保护量。
  • 能力边界:微信 4.0 数据库为 WCDB/SQLCipher 加密,未提供解密密钥时无法按"发送者/会话"维度保护文件(详见 §8 已知限制)。

5. 数据库绝对防护

  • db_storage/ 下的 SQLite/WCDB 库在扫描、清理、归档、去重全程被物理隔离,100% 不触碰。

6. 本地可视化大盘 (cleanyourwechat web)

  • 零第三方依赖的内置 WebUI:资产分布、条件瘦身、白名单管理、历史统计与审计日志可视化。

7. 统计与审计 (cleanyourwechat stats)

  • 累计运行/释放/保护量与最近 50 条操作记录持久化到 ~/.wechat_slim/,全操作写入审计日志。

质量与测试

  • 自动化测试: 54 项单元与端到端测试全绿。
  • CI: GitHub Actions 矩阵(Python 3.8–3.12 × macOS / Ubuntu)+ flake8 + mypy + bandit + pip-audit 全绿。
  • 真实验证: 在开发者本机真实微信 4.0 数据(15,000+ 文件 / 5.6 GB)上完成 scan / clean --dry-run / 白名单命中的端到端验证。

安装

# 从源码安装
git clone https://github.com/LuckTerence/CleanYourWechatTool.git
cd CleanYourWechatTool
pip install .

# 验证
cleanyourwechat --help

# 或免安装直接运行
python3 clean_wechat.py scan

已知限制(诚实声明)

详见 docs/wechat-storage-slimming-prd.md §8:

  1. 微信 4.0 数据库加密,未提供密钥时无法实现"按联系人/发送者防删",白名单按文件名关键词生效;
  2. msg/video/、msg/attach/ 为哈希命名,无语义信息,只能按时间/大小/类型处理;
  3. 本工具不修改、不恢复任何微信聊天内容;清理的是本地媒体文件缓存,请先自行确认。

规划中(v1.1+)

  • AI Agent Skill 包(skills/)随正式版发布(开发分支已验证)。
  • 解密数据库(需用户密钥)后的"文件 → 发送者"映射,实现真正的联系人级白名单。