2026-05-20 10:43:38 +08:00
|
|
|
|
# 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 构建产物等。
|
|
|
|
|
|
|
|
|
|
|
|
最新验证:
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
|
|
|
已更新说明:
|
|
|
|
|
|
|
2026-05-22 19:31:20 +08:00
|
|
|
|
- `recycle/20260522-convex-runtime-retirement/infra/convex/README.md`
|
2026-05-20 10:43:38 +08:00
|
|
|
|
- `AGENTS.md`
|
|
|
|
|
|
- `REASONIX.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.json`
|
|
|
|
|
|
- `package-lock.json`
|
|
|
|
|
|
- `pnpm-lock.yaml`
|
|
|
|
|
|
|
|
|
|
|
|
当前根依赖验证:
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
npm ls --depth=0 --json
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
当前只保留:
|
|
|
|
|
|
|
|
|
|
|
|
- `@playwright/test`
|
|
|
|
|
|
- `convex`
|
|
|
|
|
|
- `playwright`
|
|
|
|
|
|
|
|
|
|
|
|
另外,已清理 `node_modules/.electron-alyHT01H` 断开的 Electron 临时 symlink。
|
|
|
|
|
|
|
|
|
|
|
|
### 4. 本地 / 沙箱残留移动到 recycle
|
|
|
|
|
|
|
|
|
|
|
|
以下目录已按“本地残留候选”移动到:
|
|
|
|
|
|
|
|
|
|
|
|
- `recycle/20260520-local-sandbox-cleanup/`
|
|
|
|
|
|
|
|
|
|
|
|
涉及内容包括:
|
|
|
|
|
|
|
|
|
|
|
|
- `home/`
|
|
|
|
|
|
- `.sandbox-home`
|
|
|
|
|
|
- `.sandbox-tmp`
|
2026-05-22 19:31:20 +08:00
|
|
|
|
- `recycle/20260522-convex-runtime-retirement/local-state/.convex-tmp`
|
2026-05-20 10:43:38 +08:00
|
|
|
|
|
|
|
|
|
|
当前该回收目录体积约 `912K`。
|
|
|
|
|
|
|
|
|
|
|
|
### 5. 构建缓存与大目录移动到 recycle
|
|
|
|
|
|
|
|
|
|
|
|
以下构建缓存 / 依赖缓存已移动到:
|
|
|
|
|
|
|
|
|
|
|
|
- `recycle/20260520-build-cache-cleanup/`
|
|
|
|
|
|
|
|
|
|
|
|
涉及内容包括:
|
|
|
|
|
|
|
|
|
|
|
|
- `rust/spikes/leptos-tiptap-spike/target`
|
|
|
|
|
|
- 根 `rust/target`
|
|
|
|
|
|
- `test/agent-browser-lab/node_modules`
|
|
|
|
|
|
- `reference-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 等。当前根锁文件已经不再引用这些历史包。
|
|
|
|
|
|
|
|
|
|
|
|
处理流程:
|
|
|
|
|
|
|
|
|
|
|
|
1. 先用干净 store 目录 `.pnpm-store-clean` 按当前 `pnpm-lock.yaml` 重新安装。
|
|
|
|
|
|
2. 验证干净 store 可用。
|
|
|
|
|
|
3. 将旧 `.pnpm-store` 移动到 `recycle/20260520-pnpm-store-legacy/.pnpm-store`。
|
|
|
|
|
|
4. 将 `.pnpm-store-clean` 切回标准路径 `.pnpm-store`。
|
|
|
|
|
|
5. 重新安装当前依赖,确保 `node_modules` 指向标准 `.pnpm-store`。
|
|
|
|
|
|
6. 清理 `node_modules/.electron-alyHT01H` 断链。
|
|
|
|
|
|
|
|
|
|
|
|
当前验证:
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
pnpm store status --store-dir .pnpm-store
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
结果:
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
Packages in the store are untouched
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
当前体积:
|
|
|
|
|
|
|
|
|
|
|
|
- `.pnpm-store`: `308M`
|
|
|
|
|
|
- `node_modules`: `2.0M`
|
|
|
|
|
|
- `recycle/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 输出目录
|
|
|
|
|
|
|
|
|
|
|
|
这符合当前规则:主索引只聚焦当前功能实现,参考代码和本地辅助内容不干扰结构分析。
|
|
|
|
|
|
|
|
|
|
|
|
## 验证记录
|
|
|
|
|
|
|
|
|
|
|
|
已执行并通过的关键验证:
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
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/`,约 `53G`
|
|
|
|
|
|
- `recycle/20260520-pnpm-store-legacy/`,约 `2.6G`
|
|
|
|
|
|
- `recycle/20260520-graphify-uninstall/`,约 `433M`
|
|
|
|
|
|
- `recycle/20260520-local-sandbox-cleanup/`,约 `912K`
|
|
|
|
|
|
- `recycle/20260520-graph-cleanup/`,约 `40K`
|
|
|
|
|
|
|
|
|
|
|
|
### 仍需持续遵守的规则
|
|
|
|
|
|
|
|
|
|
|
|
- 不把 `.gitignore` 内容直接等同于废弃内容。
|
|
|
|
|
|
- 不从 `recycle` 中回退引用运行时代码。
|
|
|
|
|
|
- 新增 CodeGraph 主索引排除项时,应优先判断其是否属于参考代码、生成缓存、测试输出、回收区或本地辅助功能。
|
|
|
|
|
|
- 后续依赖变化后应重新运行 `pnpm install`,CodeGraph 在代码变化后需要重建或等待 watcher 更新;若排除规则变化,需显式重新初始化 / 重建索引。
|