- move self-hosted Convex infra and root placeholder into recycle - update architecture docs to remove active infra/convex deployment guidance - extend local-first Convex guard to block retired infra regressions
7.7 KiB
2026-05-20 项目清理总结
背景
本轮清理目标是为当前 MNote 主线实现收窄项目工作区,减少历史 AIChem / Wolai / Graphify / 构建缓存 / 本地沙箱残留对开发、索引和依赖判断的干扰。
清理过程中采用的核心规则:
.gitignore不等于无用;被 ignore 的内容可能仍是外部辅助功能或本地运行缓存。recycle/才按“确认无当前作用或待回收隔离”处理。- 对不确定内容优先移动到
/mnt/Data1T/mnote/recycle,不直接物理删除。 reference-code是参考代码,不进入 CodeGraph 主索引,但不代表可删除。.pnpm-store、.playwright-mcp等本地功能或缓存目录若曾被 Git 跟踪,处理重点是停止跟踪或替换本地缓存,不直接删除其功能。
已完成清理
1. Graphify 退役与 CodeGraph 接管
已卸载 / 隔离 Graphify 相关内容,并将历史 Graphify 目录移动到:
recycle/20260520-graphify-uninstall/recycle/20260520-graph-cleanup/
当前选择 CodeGraph 作为主代码图谱工具。原因是 CodeGraph 更适合开发态持续更新:有 MCP 工具、AST 结构化查询、索引状态检查和 symbol/caller/callee/impact 查询能力。
已完成 CodeGraph 配置与验证:
- Codex 已有
codegraph_*MCP 工具可用。 - Reasonix 已补充 CodeGraph MCP 使用指南。
- 项目
AGENTS.md/REASONIX.md已加入 CodeGraph 使用规则。 - 主索引继续排除
reference-code、tmp、test-results、recycle、.playwright-mcp、沙箱目录、生成缓存、spike 构建产物等。
最新验证:
codegraph status
结果:
- Files:
295 - Nodes:
8,035 - Edges:
24,035 - DB Size:
50.86 MB - Backend:
native - 状态:
Index is up to date
2. Convex 目录规范
已修正 scripts/run-convex-deploy.js:
- 不再 fallback 到
recycle/wolai-frontend/convex - 只从根
convex/部署 - 若 active deploy source 缺失,应显式失败,而不是静默回退到 recycle
已更新说明:
recycle/20260522-convex-runtime-retirement/infra/convex/README.mdAGENTS.mdREASONIX.md
当前约束:
- 根
convex/是 active functions deploy source。 recycle/wolai-frontend/convex不允许作为当前 fallback。- 若 runtime 仍需要旧 functions,应迁回 active 区或明确放入外部辅助区;不能从 recycle 继续运行。
3. package 依赖与历史 Electron 配置清理
已从根 package.json 清理历史 Electron 相关配置:
- 移除 Electron / electron-builder 相关依赖与配置。
- 移除
desktop-electron历史引用。 - 移除
appId=org.aichem.mnote旧 AIChem 命名残留。
已更新:
package.jsonpackage-lock.jsonpnpm-lock.yaml
当前根依赖验证:
npm ls --depth=0 --json
当前只保留:
@playwright/testconvexplaywright
另外,已清理 node_modules/.electron-alyHT01H 断开的 Electron 临时 symlink。
4. 本地 / 沙箱残留移动到 recycle
以下目录已按“本地残留候选”移动到:
recycle/20260520-local-sandbox-cleanup/
涉及内容包括:
home/.sandbox-home.sandbox-tmprecycle/20260522-convex-runtime-retirement/local-state/.convex-tmp
当前该回收目录体积约 912K。
5. 构建缓存与大目录移动到 recycle
以下构建缓存 / 依赖缓存已移动到:
recycle/20260520-build-cache-cleanup/
涉及内容包括:
rust/spikes/leptos-tiptap-spike/target- 根
rust/target test/agent-browser-lab/node_modulesreference-code下若干target/node_modules/.next构建缓存
当前该回收目录体积约 53G。
说明:
- 根
rust/target历史上存在被 Git 跟踪的构建产物,已先做停止跟踪处理,再移动。 - 这些内容是构建缓存或历史依赖缓存,不应进入 CodeGraph 主索引。
- 因为已移入
recycle,当前还没有物理删除;后续若确认无需回滚,可再删除该回收目录释放空间。
6. .pnpm-store 清理与替换
原 .pnpm-store 约 2.6G,包含大量历史前端依赖缓存,例如 Next、BlockNote、Tiptap、Supabase、Radix、Cloudflare / Wrangler 等。当前根锁文件已经不再引用这些历史包。
处理流程:
- 先用干净 store 目录
.pnpm-store-clean按当前pnpm-lock.yaml重新安装。 - 验证干净 store 可用。
- 将旧
.pnpm-store移动到recycle/20260520-pnpm-store-legacy/.pnpm-store。 - 将
.pnpm-store-clean切回标准路径.pnpm-store。 - 重新安装当前依赖,确保
node_modules指向标准.pnpm-store。 - 清理
node_modules/.electron-alyHT01H断链。
当前验证:
pnpm store status --store-dir .pnpm-store
结果:
Packages in the store are untouched
当前体积:
.pnpm-store:308Mnode_modules:2.0Mrecycle/20260520-pnpm-store-legacy:2.6G
7. .playwright-mcp 和 .pnpm-store 的 Git 跟踪问题
已按规则处理“停止跟踪”方向,而不是删除本地功能。
当前工作区仍会显示大量 .pnpm-store / .playwright-mcp 的删除状态,这是因为这些历史缓存文件曾被 Git 跟踪,而本轮清理目标是让缓存退出版本控制焦点。
后续提交时应确认:
.pnpm-store不应继续作为源码资产跟踪。.playwright-mcp不应继续作为源码资产跟踪。- 当前活跃
.pnpm-store是本地依赖缓存,可重建。 - 历史旧 store 已在
recycle/20260520-pnpm-store-legacy/中保留,便于回滚。
旧命名和历史配置处理
本轮还处理了以下历史残留:
- 根
package.json中org.aichem.mnote旧 appId 已移除。 desktop-electron历史配置已移除;当前桌面主路径是 Rust。scripts/cloudflared/config.yml.example中旧*.aichem.dpdns.org域名已作为旧域名残留识别并纳入清理检查范围。
当前保留但不进入主索引的内容
以下内容不应进入 CodeGraph 主索引,但不是“可删除”的含义:
design/05-editor-mainline/reference-code/tmp/test-results/recycle/.playwright-mcp/- 构建缓存、生成缓存、spike 输出目录
这符合当前规则:主索引只聚焦当前功能实现,参考代码和本地辅助内容不干扰结构分析。
验证记录
已执行并通过的关键验证:
codegraph status
pnpm store status --store-dir .pnpm-store
npm ls --depth=0 --json
find -L node_modules -maxdepth 2 -type l -printf 'BROKEN %p -> %l\n'
验证结论:
- CodeGraph 主索引可用且 up to date。
- 当前
.pnpm-store可用,且体积已收缩到308M。 - 当前
node_modules依赖树只包含当前根依赖。 node_modules不再存在断开的 Electron symlink。
后续建议
可在确认后物理删除的回收目录
以下目录已经移入 recycle,当前不再作为 active 实现路径使用。若后续运行一段时间确认无回滚需求,可以物理删除以释放空间:
recycle/20260520-build-cache-cleanup/,约53Grecycle/20260520-pnpm-store-legacy/,约2.6Grecycle/20260520-graphify-uninstall/,约433Mrecycle/20260520-local-sandbox-cleanup/,约912Krecycle/20260520-graph-cleanup/,约40K
仍需持续遵守的规则
- 不把
.gitignore内容直接等同于废弃内容。 - 不从
recycle中回退引用运行时代码。 - 新增 CodeGraph 主索引排除项时,应优先判断其是否属于参考代码、生成缓存、测试输出、回收区或本地辅助功能。
- 后续依赖变化后应重新运行
pnpm install,CodeGraph 在代码变化后需要重建或等待 watcher 更新;若排除规则变化,需显式重新初始化 / 重建索引。