运行时可观测性:
- 新增 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 补充蓝图驱动开发规范
4.1 KiB
4.1 KiB
健康中心
呈现炼境核心功能的运行状态与质量分析。分两层:代码层做客观健康检查,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_checkTauri 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<HealthItem { id, name, status, detail }> } 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_diagnosticsMCP 工具调用run_health_check聚合数据(复用逻辑,不重复实现)- 返回 Markdown 追加"系统健康"和"质量指标"两节
- Claude Code 用户对话"帮我看下炼境状态"时可直接获得完整报告
决策记录
- 不在应用内直接调用 Anthropic API(需要用户填 API Key,增加配置成本),优先做"复制报告"路径,让用户自行粘贴给 Claude
run_health_check独立于check_mcp_health,后者只查 MCP,前者是全局聚合- 所有检查并行执行(tokio::join!),单项超时 5s,不阻塞整体
- 质量指标从已有数据计算,不引入新的数据采集,保持实现简单