upgrade-dependencieslisted
Install: claude install-skill maguowei/code-manager
# Upgrade Dependencies
为 Code Manager 仓库执行依赖检查、升级规划、分批实施和复盘。**事实源永远是当前命令输出**——本文档列出的历史版本号会过时,不能当作未来升级的依据。
## 工作流速览
1. **前置检查**:工作区状态 + 工具链版本 + 命中规则。
2. **抓事实**:用当前命令输出,不读历史版本数字。
3. **拆批**:按"安全→Tauri→前端→breaking"四批,每批独立验证、独立回滚。
4. **逐批实施 + 验证**:跑对应验证矩阵。
5. **收口**:汇报实际改动、未尽项、风险。
方向偏离(lockfile 漂移、跨批升级、build 红)→ 停下重新规划,不要硬扛。
## 前置检查
读 `CLAUDE.md` 后,按改动范围读对应规则:
| 改动范围 | 必读规则 |
| --- | --- |
| `package.json`、`vite.config.ts`、`vitest.config.ts`、`tsconfig*.json` | `.claude/rules/frontend-ui.md` |
| `src-tauri/Cargo.toml`、`Cargo.lock`、Rust schema 测试 | `.claude/rules/tauri-backend.md` |
| Memory / Skills schema、契约测试 | `.claude/rules/memory-and-skills.md` |
环境快照(事后排查依赖):
```bash
git status --short
pnpm --version
node --version
rustc --version
```
工作区已有无关 tracked 改动时**叠加**变更,不顺手回退或格式化——那可能是另一条工作线。
## 事实源
依赖结论只能来自当前输出,**不能引用本文档下方"已知陷阱"里的版本号**:
```bash
pnpm outdated --format json
pnpm audit --json
cd src-tauri && cargo update --dry-run --locked --verbose
```
深挖单个包时:
```bash
pnpm view <package>@<version> # 候选版本与 peer deps
cd src-tauri && cargo info <crate> # 最新版本与 features
cd src-tauri && cargo tree -i <crate>@<version> # 反查谁依赖某版本
```
**为什么强调当前输出**:上游随时可能发新版本或撤回(yank)某版本;照抄旧记忆推进升级会让 lockfile 与 registry 实际状态错位,后续 CI 才暴露。
**环境限制识别**:sandbox 下 `pnpm install` / `pnpm audit` 网络可能失败;`make build` 的 DMG bundling 可能因 `hdiutil` 挂载权限挂——这些是环境问题,需要按权限流程提权重跑,不要为了绕过它们弱化测试、删除 audit 项或手改 lockfile。
## 分批策略
默认 4 批,按风险递增;除非用户明确要求合并,否则不合并。每批独立提交,便于定位和回滚