Skip to content

chore: 删除无人调用的根目录脚本、数据库结构工具链与 tools/ 下的一次性脚本 - #181

Merged
2977094657 merged 5 commits into
LifeArchiveProject:mainfrom
Wynn-WUKO:chore/remove-unused-scripts
Oct 7, 2026
Merged

2977094657 merged 5 commits into
LifeArchiveProject:mainfrom
Wynn-WUKO:chore/remove-unused-scripts

Conversation

@Wynn-WUKO

@Wynn-WUKO Wynn-WUKO commented Oct 7, 2026 •

Copy link
Copy Markdown
Contributor

这个 PR 是什么

清理仓库里没有任何地方真正调用的脚本:删除 69 个文件(约 10200 行),另有 14 个文件做了配套的小改动。不改任何功能。

判断标准是「有没有东西真的用到它」,而不是「有没有被提到」。一个文件只要满足下面任意一条就保留:被 CI 步骤运行、被打包或发布脚本调用或打包、被测试导入或读取、被运行时代码加载、被另一个仍在用的工具调用、生成了被跟踪的资源。只在彼此之间互相引用、或只在当时的验收文档里被提到一句的,视为没人用。

提交清单

提交 内容
chore: 删除根目录无人调用的脚本与数据库结构工具链 scan.py、根目录 key_v4.py、test_databases.py,以及五个文件组成的数据库结构工具链
docs: 删除根目录的 design-qa.md 验收记录 design-qa.md 和三篇文档里指向它的句子
chore(sns): 删除多余的 tools/weflow_wasm_keystream.js 转发脚本及走不通的回退 两行的转发脚本,以及 sns_media.py 里不可能成功的回退、routers/sns.py 里没有调用方的函数
chore(tools): 删除无人调用的调试与验收脚本 tools/ 下 53 个脚本,加上 ai_acceptance_stream_proxy.cjs 和只测试它的那个测试文件
chore(tools): 删除剩余四个无人调用的验收与基准脚本 verify_deepagents_real.py、verify_deepagents_coverage.py、benchmark_local_search_reading.py、benchmark_ai_logging.py

前四个提交互不依赖,可以单独回退;第五个接在第四个之后。

各项依据

根目录脚本

  • scan.py:已被包内 dll_key_scan.py 取代,没有代码导入它,末尾写死了开发机路径。返回值里的 "scan.py" 来源标签是接口值,没有动。
  • key_v4.py:和包内 src/wechat_decrypt_tool/key_v4.py 只差一行,而且根目录这份用了不存在的 ctypes.LPVOID。应用和打包只用包内那份。tests/test_key_log_redaction.py 原来会读这两处源码,已改成只读包内那份。
  • test_databases.py:零引用,pytest 的 testpaths 也不收集它。

数据库结构工具链(analyze_wechat_databases.py、generate_config_template.py、tools/generate_wechat_db_config.py、tools/export_database_schema_json.py、tools/export_database_schema_markdown.py)

  • 五个文件只互相引用;所有产物要么被忽略、要么从未在任何分支提交过,仓库里没有代码读取它们。
  • 脚本本身没坏,只是没人用。README 在 2025-12-14 到 12-25 之间介绍过其中两个,之后删掉了说明。
  • 其中两个脚本会把每张表最新 10 行原始数据(含聊天内容)写进输出文档,而生成的 README 写着「已脱敏」,代码里并没有脱敏逻辑。
  • 会从工作树里消失的独有内容:tools/generate_wechat_db_config.py 里约 470 条手工整理的微信 4.x 字段、表和消息类型的中文含义。可以从 git 历史取回。
  • .gitignore 里对应的两条忽略规则保留:跑过这套脚本的检出目录里可能还留着由真实数据库生成的 wechat_db_config*.json,不能让它们变成会被误提交的未跟踪文件。

design-qa.md

  • 9 月几次 AI 界面改版的验收记录,9 月 15 日后没有再更新,没有程序读写它,它引用的截图和日志不在仓库里。

tools/ 下的脚本

  • 8 个 2025-12 至 2026-02 的一次性调试脚本(debug_*.py、extract_media_keys.py、test_image_api.py):写死了单台机器的路径和账号,extract_media_keys.py 自己已标注废弃。
  • 45 个 2026-09 AI 助手、本地检索、语音模型验收期间的一次性脚本:没有任何调用方,只在当时的验收文档里被提到。其中一部分已经跑不起来(依赖已不存在的接口,或没入库的私有样本)。
  • ai_acceptance_stream_proxy.cjs 与 desktop/tests/acceptance-stream-proxy.test.cjs:前者的两个使用方都在被删之列,后者不在任何工作流中运行。
  • verify_deepagents_real.py、verify_deepagents_coverage.py、benchmark_local_search_reading.py、benchmark_ai_logging.py:仍可独立运行,但同样没有任何调用方(benchmark_ai_logging.py 只导入 benchmark_local_search_reading.py,两者互为唯一引用)。

保留了什么

  • 被 CI、打包或测试调用的:verify_ai_runtime.py、build_ai_smoke.cjs、qwen_runtime_stdlib.py、rebuild_wcdb_release.py、smoke_native_core_real_database.py、audit_macos_key_capture_release.py、verify_deepagents_matrix.py。
  • 生成被跟踪资源的:build_local_search_catalog.py、build_local_search_gpu_manifest.py、generate_qwen_gpu_manifest.py、build_wce_integrity.ps1、verify_planned_work_cost.py。
  • tools/dev/snap.cjs、tools/key_wheels/。

文档怎么处理的

  • 文件名带日期的验收记录没有改。其中 10 篇共 24 行提到了已删除的脚本,它们记录的是当时跑过什么,脚本可以从 git 历史取回。
  • 六篇文件名不带日期的文档(ai-assistant-development-status.md、chat-agent.md、ai-macos-user-acceptance.md、local-semantic-search.md、ai-diagnostics.md、deepagents-acceptance.md)里提到已删脚本的地方,加了「已从仓库删除,可从 git 历史取回」的说明。
  • 指向 design-qa.md 的三句话直接删掉了,因为它们是让读者去看一个已经不存在的文件。

验证

全部在 macOS(Apple Silicon,Python 3.11.15)上完成,没有在 Windows 上运行过。

  • 后端测试:在 main(298cd87)和本分支上各逐文件跑了一遍全部 247 个测试文件,结果逐文件一致:都是 2512 通过 / 173 失败 / 9 错误,失败项是这台机器上 main 自身就有的。这一轮是在最后几处改动(恢复 verify_planned_work_cost.py、恢复两条忽略规则、改注释、加文档说明,以及第五个提交再删的四个脚本)之前跑的;这些改动之后重新确认了全量收集仍是 2695 个用例(与 main 相同),并重跑了密钥、朋友圈媒体和 AI 回归相关的测试文件,结果与之前一致。
  • 独立核查:tools/ 的每个文件先由一轮审计给出「谁在调用」的证据,删除候选再由另一轮独立尝试反驳;合并后的分支又过了两轮整体检查(是否删了仍被需要的东西、是否留下悬空引用)。结论:
    • 11 个工作流里的路径在本分支上全部能解析,desktop/package.json、frontend/package.json、electron-builder 配置、PyInstaller 参数、pyproject.toml 都没有提到被删文件。
    • 朋友圈两处运行时改动不改变任何可达行为:包内脚本存在时解析到同一个文件,包内脚本缺失时改动前后抛出的是同一个异常。
    • 保留下来的 Python 工具都能编译,带主入口保护的都能导入;JS 工具都通过了 node --check。

没有放进这个 PR 的

  • frontend/vite.acceptance.config.mjs 和 frontend/tests/fixtures/ 下的手动预览页:唯一的脚本使用方 tools/verify_ai_browser.cjs 已在本 PR 删除,现在没有代码引用它们,但可能仍有人当手动预览用,没有动。
  • tools/key_wheels/ 里的 cp310 wheel 实际用不上(项目要求 Python ≥ 3.11),但 Linux Adaptation #148 正在改这个目录,没有动。

🤖 Generated with Claude Code

2977094657 and others added 5 commits October 7, 2026 21:55
- scan.py:已被包内 dll_key_scan.py 取代,没有任何代码导入,末尾还写死了开发机路径。
  同步改掉仍把它当作现存文件的几处注释;返回值里的 "scan.py" 来源标签保持不变。
- key_v4.py:与包内 src/wechat_decrypt_tool/key_v4.py 只差一行,且根目录这份用了不存在的
  ctypes.LPVOID;应用与打包只用包内那份。同步改掉读取两处源码的日志脱敏测试。
- test_databases.py:零引用的一次性脚本,pytest 的 testpaths 也不收集它。
- analyze_wechat_databases.py、generate_config_template.py 与 tools/ 下的
  generate_wechat_db_config.py、export_database_schema_json.py、
  export_database_schema_markdown.py:五个文件只互相引用,后端、打包、前端、测试、CI、
  README 和 docs 都不调用它们,产物全部被忽略或从未提交。其中两个脚本还会把每张表最新
  10 行原始数据写进输出文档。

.gitignore 里对应的两条忽略规则保留:跑过这套脚本的检出目录里可能还留着由真实数据库
生成的 wechat_db_config*.json,不能让它们变成可被误提交的未跟踪文件。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
该文件是 9 月几次 AI 界面改版的验收记录,9 月 15 日之后没有再更新,没有任何程序读写它,
它引用的截图和日志也不在仓库里。同时去掉三篇文档里指向它的句子。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
该脚本只有两行,作用是转去加载包内的 native/weflow_wasm/weflow_wasm_keystream.js。
sns_media 只在包内脚本缺失时才回退到它,而那时它要加载的正是同一个缺失的文件,
这条回退不可能成功;routers/sns.py 里指向它的 _weflow_wxisaac64_script_path 没有调用方。
两处一并删除,实际使用的包内脚本路径不变。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
逐个核对了 tools/ 下的脚本:CI、打包与发布脚本、测试、运行时代码和仍被调用的其他工具
都不会用到下面这些文件,它们也不生成任何被跟踪的资源。

- 2025-12 至 2026-02 的一次性调试脚本 8 个(debug_*.py、extract_media_keys.py、
  test_image_api.py):写死了单台机器的路径和账号,extract_media_keys.py 自己已标注废弃。
- 2026-09 AI 助手、本地检索与语音模型验收期间的一次性脚本 45 个(verify_ai_*、
  verify_local_search_*、*_ai_real_*、seed/run/prepare/launch_ai_*acceptance*、
  serve_*、benchmark_stt_local.py 等):没有任何调用方,只在当时的验收文档里被提到;
  其中一部分依赖已不存在的接口或未入库的私有样本,现在已无法运行。
- tools/ai_acceptance_stream_proxy.cjs 及只测试它的
  desktop/tests/acceptance-stream-proxy.test.cjs:它的两个使用方都在上面的列表里,
  该测试也不在任何工作流中运行。

保留:被 CI、打包或测试调用的脚本,生成被跟踪资源的脚本(含生成
docs/ai-planned-work-cost-2026-09-14.json 的 verify_planned_work_cost.py),
tools/dev/snap.cjs,以及仍可独立运行的 verify_deepagents_real.py、
verify_deepagents_coverage.py、benchmark_local_search_reading.py、benchmark_ai_logging.py。

文档:文件名带日期的验收记录保持原样,其中提到的脚本可从 git 历史取回;四篇文件名不带
日期的文档(ai-assistant-development-status、chat-agent、ai-macos-user-acceptance、
local-semantic-search)里提到已删脚本的地方加了「已删除」的说明。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
verify_deepagents_real.py、verify_deepagents_coverage.py、
benchmark_local_search_reading.py、benchmark_ai_logging.py 上一个提交里因为仍可独立运行
而暂时保留,但同样没有任何 CI、打包、测试或运行时代码调用它们(benchmark_ai_logging.py
只导入 benchmark_local_search_reading.py,两者互为唯一引用),一并删除。

三篇文件名不带日期的文档(ai-diagnostics、deepagents-acceptance、local-semantic-search)
里提到它们的地方加了「已删除」的说明;带日期的验收记录保持原样。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@2977094657
2977094657 merged commit b02c569 into LifeArchiveProject:main Oct 7, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants