dev-manager-tauri/.blueprint/modules/health-center.md
lanrtop eb346ae1fd feat: add runtime diagnostics, health center, and project mentor
运行时可观测性:
- 新增 runtime_logs SQLite 表,提供全局 log_event 写入函数(保留最近 500 条)
- mcp_server/mcp_inject/groups 关键路径接入结构化日志
- MCP 新增 get_diagnostics 工具,返回注入摘要与近期错误
- add_group_member 注入失败时前端显示黄色 toast 警告

健康中心:
- 新增 run_health_check 命令(6 项并行检查:MCP/Git 路径/项目路径/GitHub Token/编辑器/DB 延迟)
- 新增质量指标聚合(休眠项目/孤立项目/注入异常组/无路径项目)
- 侧边栏新增健康中心页面,支持手动刷新和诊断报告复制
- 设置页 MCP 状态改为真实 HTTP ping 检测

项目导师:
- 新增 get_mentor_context 后端命令,聚合健康状态/蓝图摘要/近期错误
- MCP 新增 get_project_mentor_context 工具(含产品组归属校验)
- 项目卡片底部新增 🎓 导师按钮,面板支持复制结构化 Markdown 报告
- 修复 WSL 项目路径识别:wsl_path 存 UNC 格式时自动提取 distro 和 Linux 路径,改用 wsl 命令检查路径存在性(规避 Path::exists() 对 \wsl.localhost\... 不可靠的问题)

AI 工作流:
- 新增 AI-WORKFLOW.md、.claude/skills/ 技能体系配置
- 更新 CLAUDE.md 补充蓝图驱动开发规范
2026-04-04 19:58:49 +09:00

4.1 KiB
Raw Permalink Blame History

健康中心

呈现炼境核心功能的运行状态与质量分析。分两层代码层做客观健康检查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 中有 tokenhttps://api.github.com/user 验证有效性
      • editor_paths:读取 settings 中配置的编辑器路径,验证文件是否存在
      • db_latency:计时一次简单写入+删除,返回 ms 数
    • 返回结构:HealthReport { checked_at, items: Vec<HealthItem { id, name, status, detail }> }
    • status 枚举:ok / warn / error / skipskip 表示未配置该项,不算失败)

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_projectslast_push_at 超过 30 天且有 repo_url 的项目列表id + name + days
      • orphaned_projects:未加入任何产品组且无 repo_url 的项目列表
      • groups_with_inject_warnruntime_logs 中最近有 error/warn 的产品组列表
      • projects_without_pathwin_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不阻塞整体
  • 质量指标从已有数据计算,不引入新的数据采集,保持实现简单