# 健康中心 呈现炼境核心功能的运行状态与质量分析。分两层:代码层做客观健康检查,Claude 层做质量推断与优化建议。 ## 设计思路 ``` Tauri 命令层(客观检测) ├─ Git 仓库路径有效性 ├─ 项目本地路径存在性 ├─ GitHub Token 有效性 ├─ 编辑器路径可用性 └─ SQLite 读写延迟 ↓ 聚合为 HealthReport 前端健康中心页面(展示 + 交互) ├─ 每项检查:绿/黄/红状态指示 ├─ 质量指标:休眠项目、孤立项目、注入异常组 └─ "生成诊断报告" → 复制结构化 Markdown ↓ 用户粘贴给 Claude / 未来 in-app API Claude 分析层(推断 + 建议) └─ 读数据 → 识别模式 → 给出优化建议 ``` MCP 路径同步增强:扩展已有 `get_diagnostics` 工具,覆盖全部检查项,让 Claude Code 用户无需打开页面即可获得完整诊断。 ## 任务卡 ### ✅ T1 · Backend 健康检查聚合命令 - status: done - complexity: M - files: src-tauri/src/commands/settings.rs, src-tauri/src/lib.rs, src/lib/commands.ts - acceptance: - 新增 `run_health_check` Tauri command,无必填参数 - 检查项(全部并行执行,超时 5s): - `git_repos`:遍历所有注册仓库,验证 `win_path` 是否为有效 git 目录(`.git` 存在) - `project_paths`:遍历所有项目,检查 `win_path` / `wsl_path` 是否存在于文件系统 - `github_token`:若 settings 中有 token,调 `https://api.github.com/user` 验证有效性 - `editor_paths`:读取 settings 中配置的编辑器路径,验证文件是否存在 - `db_latency`:计时一次简单写入+删除,返回 ms 数 - 返回结构:`HealthReport { checked_at, items: Vec }` - `status` 枚举:`ok / warn / error / skip`(skip 表示未配置该项,不算失败) ### ✅ T2 · 质量指标聚合 - status: done - complexity: S - files: src-tauri/src/commands/settings.rs, src/lib/commands.ts - depends: T1 - acceptance: - `run_health_check` 返回值中追加 `quality: QualityMetrics` - 指标: - `dormant_projects`:`last_push_at` 超过 30 天且有 repo_url 的项目列表(id + name + days) - `orphaned_projects`:未加入任何产品组且无 repo_url 的项目列表 - `groups_with_inject_warn`:runtime_logs 中最近有 error/warn 的产品组列表 - `projects_without_path`:win_path 和 wsl_path 均为空的项目数 - 所有指标从已有 SQLite 数据计算,无需新表 ### ✅ T3 · 前端健康中心页面 - status: done - complexity: M - files: src/components/health/HealthPage.tsx, src/components/layout/Sidebar.tsx, src/lib/commands.ts - depends: T1, T2 - acceptance: - 侧边栏新增"健康中心"入口(脉搏图标),路由到 HealthPage - 页面布局:顶部"上次检查时间 + 刷新",下方两列 - 左列:健康检查项列表,每项显示状态图标 + 名称 + 详情文字 - 右列:质量指标卡片(休眠项目数、孤立项目数、注入异常组数) - 每项 `error` 状态展开显示具体失败原因 - "生成诊断报告"按钮:将 HealthReport 格式化为 Markdown 复制到剪贴板 - 页面挂载时自动执行一次检查,支持手动刷新 ### ✅ T4 · 扩展 MCP get_diagnostics - status: done - complexity: S - files: src-tauri/src/mcp_server.rs - depends: T1, T2 - acceptance: - `get_diagnostics` MCP 工具调用 `run_health_check` 聚合数据(复用逻辑,不重复实现) - 返回 Markdown 追加"系统健康"和"质量指标"两节 - Claude Code 用户对话"帮我看下炼境状态"时可直接获得完整报告 ## 决策记录 - 不在应用内直接调用 Anthropic API(需要用户填 API Key,增加配置成本),优先做"复制报告"路径,让用户自行粘贴给 Claude - `run_health_check` 独立于 `check_mcp_health`,后者只查 MCP,前者是全局聚合 - 所有检查并行执行(tokio::join!),单项超时 5s,不阻塞整体 - 质量指标从已有数据计算,不引入新的数据采集,保持实现简单