feat: 新增 Claude 自主性状态面板,炼境感知 Beast 运行状态
- 新增 get_beast_global_status 命令读取全局 Beast 状态(安装情况、当前模式、bash 规则)
- ClaudeConfigModal 改为只读状态展示 + CLI 操作引导,炼境不再写入任何 Claude 配置
- 项目卡片新增 🤖 按钮,对所有项目可见(Beast 是全局状态)
- .claude/settings.json 补充 permissions.defaultMode: acceptEdits
This commit is contained in:
parent
8d646c6cbb
commit
b6e4fbe3fa
@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
version: 1.4.2
|
version: 1.4.3
|
||||||
updated: 2026-04-08
|
updated: 2026-04-10
|
||||||
source: dev-manager-tauri
|
source: dev-manager-tauri
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ description: >
|
|||||||
成为每个项目的贴身导师。炼境本身亦被纳入其中,
|
成为每个项目的贴身导师。炼境本身亦被纳入其中,
|
||||||
形成可自我进化的开发智能闭环。
|
形成可自我进化的开发智能闭环。
|
||||||
iteration: 1
|
iteration: 1
|
||||||
updated: 2026-04-08
|
updated: 2026-04-10
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -258,6 +258,13 @@ modules:
|
|||||||
progress: 100
|
progress: 100
|
||||||
position: [2250, 0]
|
position: [2250, 0]
|
||||||
|
|
||||||
|
- id: claude-autonomy-config
|
||||||
|
name: Claude 自主性配置
|
||||||
|
area: backend
|
||||||
|
status: done
|
||||||
|
progress: 100
|
||||||
|
position: [2500, 0]
|
||||||
|
|
||||||
edges:
|
edges:
|
||||||
# 前端依赖
|
# 前端依赖
|
||||||
- from: workspace-mgmt
|
- from: workspace-mgmt
|
||||||
|
|||||||
@ -90,6 +90,650 @@
|
|||||||
"todo": 1,
|
"todo": 1,
|
||||||
"total": 135
|
"total": 135
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"at": "2026-04-08T14:49:16Z",
|
||||||
|
"blocked_reasons": [],
|
||||||
|
"conventions_version": "1.4.2",
|
||||||
|
"delta": {
|
||||||
|
"newly_blocked": [],
|
||||||
|
"newly_done": [
|
||||||
|
"auto-update/Capabilities 权限配置",
|
||||||
|
"auto-update/下载 & 安装",
|
||||||
|
"auto-update/更新检测",
|
||||||
|
"auto-update/自动检查更新",
|
||||||
|
"auto-update/错误提示",
|
||||||
|
"blueprint-buff/BlueprintView 跨项目切换",
|
||||||
|
"blueprint-buff/Buff 生命周期 Rust 命令",
|
||||||
|
"blueprint-buff/blueprint_buffs 数据表",
|
||||||
|
"blueprint-buff/git watcher + 任务匹配写回 + 飞轮快照",
|
||||||
|
"blueprint-buff/前端 Buff 管理 UI",
|
||||||
|
"blueprint-buff/前端实时刷新",
|
||||||
|
"blueprint-feedback/归档 command",
|
||||||
|
"blueprint-feedback/归档候选展示",
|
||||||
|
"blueprint-feedback/梦核分析入口(蓝图弹窗)",
|
||||||
|
"blueprint-feedback/梦核提示词增加停滞模块数据",
|
||||||
|
"blueprint-flywheel/get_flywheel_stats command",
|
||||||
|
"blueprint-flywheel/get_flywheel_stats 支持迭代感知",
|
||||||
|
"blueprint-flywheel/usage.json 埋点写入",
|
||||||
|
"blueprint-flywheel/梦核提示词生成 command",
|
||||||
|
"blueprint-flywheel/飞轮健康面板",
|
||||||
|
"blueprint-governance/CLAUDE.md 模板定义",
|
||||||
|
"blueprint-governance/CONVENTIONS.md 版本化",
|
||||||
|
"blueprint-governance/GovernancePanel 规则编辑器 UI",
|
||||||
|
"blueprint-governance/get_blueprint_status command",
|
||||||
|
"blueprint-governance/sync/梦核/summary 切换为 effective 内容",
|
||||||
|
"blueprint-governance/sync_blueprint_rules command",
|
||||||
|
"blueprint-governance/批量同步所有项目规则",
|
||||||
|
"blueprint-governance/用户版 CONVENTIONS 存储层初始化",
|
||||||
|
"blueprint-governance/用户版 CONVENTIONS 读写 command",
|
||||||
|
"blueprint-onboarding/generate_blueprint_prompt command",
|
||||||
|
"blueprint-onboarding/蓝图操作弹窗",
|
||||||
|
"blueprint-onboarding/项目列表蓝图状态徽章",
|
||||||
|
"blueprint-reader/合并返回完整蓝图数据",
|
||||||
|
"blueprint-reader/读取 manifest.yaml",
|
||||||
|
"blueprint-reader/读取 modules/*.md",
|
||||||
|
"blueprint-view/.blueprint/ 数据结构设计",
|
||||||
|
"blueprint-view/React Flow 节点图渲染",
|
||||||
|
"blueprint-view/blocked 状态支持",
|
||||||
|
"blueprint-view/下一步汇总面板",
|
||||||
|
"blueprint-view/任务卡复制派发",
|
||||||
|
"blueprint-view/批量执行提示词入口",
|
||||||
|
"blueprint-view/智能连线路由",
|
||||||
|
"blueprint-view/模块详情面板",
|
||||||
|
"blueprint-view/统计汇总条",
|
||||||
|
"blueprint-view/蓝图治理面板",
|
||||||
|
"blueprint-view/蓝图读取 Command",
|
||||||
|
"blueprint-view/边高亮与模块聚焦",
|
||||||
|
"blueprint-view/顶部状态行扩展",
|
||||||
|
"blueprint-view/项目卡片蓝图入口",
|
||||||
|
"cicd-workflow/Actions 运行历史",
|
||||||
|
"cicd-workflow/CI/CD 配置 CRUD",
|
||||||
|
"cicd-workflow/Tauri OSS 分发模板",
|
||||||
|
"cicd-workflow/Web SSH 部署模板",
|
||||||
|
"cicd-workflow/Workflow 文件生成",
|
||||||
|
"devtools-scan/WSL 工具扫描",
|
||||||
|
"devtools-scan/Windows 工具扫描",
|
||||||
|
"devtools-scan/工具信息持久化",
|
||||||
|
"git-ops/上游状态检测",
|
||||||
|
"git-ops/分支管理",
|
||||||
|
"git-ops/基础操作",
|
||||||
|
"github-auth/OAuth Device Flow",
|
||||||
|
"github-auth/Token 管理",
|
||||||
|
"github-publish/.gitignore 生成",
|
||||||
|
"github-publish/Git 初始化 & 首次推送",
|
||||||
|
"github-publish/创建 GitHub 仓库",
|
||||||
|
"github-publish/扫描本地 Git 状态",
|
||||||
|
"health-center/T1 · Backend 健康检查聚合命令",
|
||||||
|
"health-center/T2 · 质量指标聚合",
|
||||||
|
"health-center/T3 · 前端健康中心页面",
|
||||||
|
"health-center/T4 · 扩展 MCP get_diagnostics",
|
||||||
|
"mcp-config-inject/加入产品组时注入配置",
|
||||||
|
"mcp-config-inject/端口变更时重新注入所有配置",
|
||||||
|
"mcp-config-inject/退出产品组时清除配置",
|
||||||
|
"mcp-server/MCP 端口可配置(Rust 侧)",
|
||||||
|
"mcp-server/启动时绑定 HTTP 端口",
|
||||||
|
"mcp-server/实现 MCP JSON-RPC 基础协议",
|
||||||
|
"mcp-server/实现产品组上下文工具",
|
||||||
|
"product-group-mcp/产品组详情显示 MCP 注入状态",
|
||||||
|
"product-group-mcp/设置页添加 MCP 端口配置",
|
||||||
|
"project-dashboard/分组画布",
|
||||||
|
"project-dashboard/项目卡片列表",
|
||||||
|
"project-dashboard/项目发现面板",
|
||||||
|
"project-dashboard/项目快捷操作",
|
||||||
|
"project-env-scan/环境信息持久化",
|
||||||
|
"project-env-scan/项目环境检测",
|
||||||
|
"project-mentor/T1 · 后端聚合 command(MentorContext)",
|
||||||
|
"project-mentor/T10 · 启动健康扫描 + 前端 Alert Banner",
|
||||||
|
"project-mentor/T11 · 项目历史快照",
|
||||||
|
"project-mentor/T2 · MCP 项目导师查询接口",
|
||||||
|
"project-mentor/T3 · 前端导师面板",
|
||||||
|
"project-mentor/T4 · 炼境自指接入",
|
||||||
|
"project-mentor/T5 · project_notes 数据层 + 后端命令",
|
||||||
|
"project-mentor/T6 · MCP append_project_note 工具",
|
||||||
|
"project-mentor/T7 · MentorPanel 展示 AI 笔记",
|
||||||
|
"project-mentor/T8 · 后端全组巡检命令",
|
||||||
|
"project-mentor/T9 · 前端全组巡检按钮",
|
||||||
|
"project-mgmt/子文件夹扫描",
|
||||||
|
"project-mgmt/批量导入项目",
|
||||||
|
"project-mgmt/项目 CRUD",
|
||||||
|
"project-mgmt/项目档案(Profile)",
|
||||||
|
"project-templates/从模板创建项目",
|
||||||
|
"project-templates/内置模板种植",
|
||||||
|
"project-templates/模板 CRUD",
|
||||||
|
"project-tools/工具 CRUD",
|
||||||
|
"project-tools/工具启动",
|
||||||
|
"repo-registry/仓库导入",
|
||||||
|
"repo-registry/仓库挂载",
|
||||||
|
"repo-registry/仓库注册表管理",
|
||||||
|
"runtime-diagnostics/T1 · SQLite runtime_logs 表",
|
||||||
|
"runtime-diagnostics/T2 · 替换 eprintln! 为结构化日志",
|
||||||
|
"runtime-diagnostics/T3 · MCP Server 新增 get_diagnostics 工具",
|
||||||
|
"runtime-diagnostics/T4 · 注入失败结果返回前端",
|
||||||
|
"runtime-diagnostics/T5 · 设置页 MCP 真实健康检查",
|
||||||
|
"settings-page/WSL 发行版选择",
|
||||||
|
"settings-page/关于 & 更新",
|
||||||
|
"settings-page/终端配置",
|
||||||
|
"settings-page/编辑器检测",
|
||||||
|
"shell-launch/打开终端",
|
||||||
|
"shell-launch/打开编辑器",
|
||||||
|
"sqlite-db/数据库迁移",
|
||||||
|
"sqlite-db/连接池初始化",
|
||||||
|
"tags-groups/分组管理",
|
||||||
|
"tags-groups/标签管理",
|
||||||
|
"tray-service/关闭窗口最小化到托盘",
|
||||||
|
"tray-service/系统托盘图标与菜单",
|
||||||
|
"tray-service/集成 tauri-plugin-single-instance",
|
||||||
|
"v2rayn-import/当前节点读取",
|
||||||
|
"v2rayn-import/数据库路径检测",
|
||||||
|
"v2rayn-import/节点列表扫描",
|
||||||
|
"workspace-mgmt/空间 CRUD",
|
||||||
|
"workspace-mgmt/空间级设置",
|
||||||
|
"workspace-mgmt/部署命令管理",
|
||||||
|
"wsl-proxy/代理一致性测试",
|
||||||
|
"wsl-proxy/代理同步",
|
||||||
|
"wsl-proxy/代理清除",
|
||||||
|
"wsl-proxy/代理状态检测"
|
||||||
|
],
|
||||||
|
"unblocked": []
|
||||||
|
},
|
||||||
|
"iteration": 1,
|
||||||
|
"modules": {
|
||||||
|
"blocked": 0,
|
||||||
|
"concept": 0,
|
||||||
|
"done": 33,
|
||||||
|
"in_progress": 0,
|
||||||
|
"planned": 0,
|
||||||
|
"stalled": [],
|
||||||
|
"total": 33
|
||||||
|
},
|
||||||
|
"task_ids": {
|
||||||
|
"blocked": [],
|
||||||
|
"done": [
|
||||||
|
"auto-update/Capabilities 权限配置",
|
||||||
|
"auto-update/下载 & 安装",
|
||||||
|
"auto-update/更新检测",
|
||||||
|
"auto-update/自动检查更新",
|
||||||
|
"auto-update/错误提示",
|
||||||
|
"blueprint-buff/BlueprintView 跨项目切换",
|
||||||
|
"blueprint-buff/Buff 生命周期 Rust 命令",
|
||||||
|
"blueprint-buff/blueprint_buffs 数据表",
|
||||||
|
"blueprint-buff/git watcher + 任务匹配写回 + 飞轮快照",
|
||||||
|
"blueprint-buff/前端 Buff 管理 UI",
|
||||||
|
"blueprint-buff/前端实时刷新",
|
||||||
|
"blueprint-feedback/归档 command",
|
||||||
|
"blueprint-feedback/归档候选展示",
|
||||||
|
"blueprint-feedback/梦核分析入口(蓝图弹窗)",
|
||||||
|
"blueprint-feedback/梦核提示词增加停滞模块数据",
|
||||||
|
"blueprint-flywheel/get_flywheel_stats command",
|
||||||
|
"blueprint-flywheel/get_flywheel_stats 支持迭代感知",
|
||||||
|
"blueprint-flywheel/usage.json 埋点写入",
|
||||||
|
"blueprint-flywheel/梦核提示词生成 command",
|
||||||
|
"blueprint-flywheel/飞轮健康面板",
|
||||||
|
"blueprint-governance/CLAUDE.md 模板定义",
|
||||||
|
"blueprint-governance/CONVENTIONS.md 版本化",
|
||||||
|
"blueprint-governance/GovernancePanel 规则编辑器 UI",
|
||||||
|
"blueprint-governance/get_blueprint_status command",
|
||||||
|
"blueprint-governance/sync/梦核/summary 切换为 effective 内容",
|
||||||
|
"blueprint-governance/sync_blueprint_rules command",
|
||||||
|
"blueprint-governance/批量同步所有项目规则",
|
||||||
|
"blueprint-governance/用户版 CONVENTIONS 存储层初始化",
|
||||||
|
"blueprint-governance/用户版 CONVENTIONS 读写 command",
|
||||||
|
"blueprint-onboarding/generate_blueprint_prompt command",
|
||||||
|
"blueprint-onboarding/蓝图操作弹窗",
|
||||||
|
"blueprint-onboarding/项目列表蓝图状态徽章",
|
||||||
|
"blueprint-reader/合并返回完整蓝图数据",
|
||||||
|
"blueprint-reader/读取 manifest.yaml",
|
||||||
|
"blueprint-reader/读取 modules/*.md",
|
||||||
|
"blueprint-view/.blueprint/ 数据结构设计",
|
||||||
|
"blueprint-view/React Flow 节点图渲染",
|
||||||
|
"blueprint-view/blocked 状态支持",
|
||||||
|
"blueprint-view/下一步汇总面板",
|
||||||
|
"blueprint-view/任务卡复制派发",
|
||||||
|
"blueprint-view/批量执行提示词入口",
|
||||||
|
"blueprint-view/智能连线路由",
|
||||||
|
"blueprint-view/模块详情面板",
|
||||||
|
"blueprint-view/统计汇总条",
|
||||||
|
"blueprint-view/蓝图治理面板",
|
||||||
|
"blueprint-view/蓝图读取 Command",
|
||||||
|
"blueprint-view/边高亮与模块聚焦",
|
||||||
|
"blueprint-view/顶部状态行扩展",
|
||||||
|
"blueprint-view/项目卡片蓝图入口",
|
||||||
|
"cicd-workflow/Actions 运行历史",
|
||||||
|
"cicd-workflow/CI/CD 配置 CRUD",
|
||||||
|
"cicd-workflow/Tauri OSS 分发模板",
|
||||||
|
"cicd-workflow/Web SSH 部署模板",
|
||||||
|
"cicd-workflow/Workflow 文件生成",
|
||||||
|
"devtools-scan/WSL 工具扫描",
|
||||||
|
"devtools-scan/Windows 工具扫描",
|
||||||
|
"devtools-scan/工具信息持久化",
|
||||||
|
"git-ops/上游状态检测",
|
||||||
|
"git-ops/分支管理",
|
||||||
|
"git-ops/基础操作",
|
||||||
|
"github-auth/OAuth Device Flow",
|
||||||
|
"github-auth/Token 管理",
|
||||||
|
"github-publish/.gitignore 生成",
|
||||||
|
"github-publish/Git 初始化 & 首次推送",
|
||||||
|
"github-publish/创建 GitHub 仓库",
|
||||||
|
"github-publish/扫描本地 Git 状态",
|
||||||
|
"health-center/T1 · Backend 健康检查聚合命令",
|
||||||
|
"health-center/T2 · 质量指标聚合",
|
||||||
|
"health-center/T3 · 前端健康中心页面",
|
||||||
|
"health-center/T4 · 扩展 MCP get_diagnostics",
|
||||||
|
"mcp-config-inject/加入产品组时注入配置",
|
||||||
|
"mcp-config-inject/端口变更时重新注入所有配置",
|
||||||
|
"mcp-config-inject/退出产品组时清除配置",
|
||||||
|
"mcp-server/MCP 端口可配置(Rust 侧)",
|
||||||
|
"mcp-server/启动时绑定 HTTP 端口",
|
||||||
|
"mcp-server/实现 MCP JSON-RPC 基础协议",
|
||||||
|
"mcp-server/实现产品组上下文工具",
|
||||||
|
"product-group-mcp/产品组详情显示 MCP 注入状态",
|
||||||
|
"product-group-mcp/设置页添加 MCP 端口配置",
|
||||||
|
"project-dashboard/分组画布",
|
||||||
|
"project-dashboard/项目卡片列表",
|
||||||
|
"project-dashboard/项目发现面板",
|
||||||
|
"project-dashboard/项目快捷操作",
|
||||||
|
"project-env-scan/环境信息持久化",
|
||||||
|
"project-env-scan/项目环境检测",
|
||||||
|
"project-mentor/T1 · 后端聚合 command(MentorContext)",
|
||||||
|
"project-mentor/T10 · 启动健康扫描 + 前端 Alert Banner",
|
||||||
|
"project-mentor/T11 · 项目历史快照",
|
||||||
|
"project-mentor/T2 · MCP 项目导师查询接口",
|
||||||
|
"project-mentor/T3 · 前端导师面板",
|
||||||
|
"project-mentor/T4 · 炼境自指接入",
|
||||||
|
"project-mentor/T5 · project_notes 数据层 + 后端命令",
|
||||||
|
"project-mentor/T6 · MCP append_project_note 工具",
|
||||||
|
"project-mentor/T7 · MentorPanel 展示 AI 笔记",
|
||||||
|
"project-mentor/T8 · 后端全组巡检命令",
|
||||||
|
"project-mentor/T9 · 前端全组巡检按钮",
|
||||||
|
"project-mgmt/子文件夹扫描",
|
||||||
|
"project-mgmt/批量导入项目",
|
||||||
|
"project-mgmt/项目 CRUD",
|
||||||
|
"project-mgmt/项目档案(Profile)",
|
||||||
|
"project-templates/从模板创建项目",
|
||||||
|
"project-templates/内置模板种植",
|
||||||
|
"project-templates/模板 CRUD",
|
||||||
|
"project-tools/工具 CRUD",
|
||||||
|
"project-tools/工具启动",
|
||||||
|
"repo-registry/仓库导入",
|
||||||
|
"repo-registry/仓库挂载",
|
||||||
|
"repo-registry/仓库注册表管理",
|
||||||
|
"runtime-diagnostics/T1 · SQLite runtime_logs 表",
|
||||||
|
"runtime-diagnostics/T2 · 替换 eprintln! 为结构化日志",
|
||||||
|
"runtime-diagnostics/T3 · MCP Server 新增 get_diagnostics 工具",
|
||||||
|
"runtime-diagnostics/T4 · 注入失败结果返回前端",
|
||||||
|
"runtime-diagnostics/T5 · 设置页 MCP 真实健康检查",
|
||||||
|
"settings-page/WSL 发行版选择",
|
||||||
|
"settings-page/关于 & 更新",
|
||||||
|
"settings-page/终端配置",
|
||||||
|
"settings-page/编辑器检测",
|
||||||
|
"shell-launch/打开终端",
|
||||||
|
"shell-launch/打开编辑器",
|
||||||
|
"sqlite-db/数据库迁移",
|
||||||
|
"sqlite-db/连接池初始化",
|
||||||
|
"tags-groups/分组管理",
|
||||||
|
"tags-groups/标签管理",
|
||||||
|
"tray-service/关闭窗口最小化到托盘",
|
||||||
|
"tray-service/系统托盘图标与菜单",
|
||||||
|
"tray-service/集成 tauri-plugin-single-instance",
|
||||||
|
"v2rayn-import/当前节点读取",
|
||||||
|
"v2rayn-import/数据库路径检测",
|
||||||
|
"v2rayn-import/节点列表扫描",
|
||||||
|
"workspace-mgmt/空间 CRUD",
|
||||||
|
"workspace-mgmt/空间级设置",
|
||||||
|
"workspace-mgmt/部署命令管理",
|
||||||
|
"wsl-proxy/代理一致性测试",
|
||||||
|
"wsl-proxy/代理同步",
|
||||||
|
"wsl-proxy/代理清除",
|
||||||
|
"wsl-proxy/代理状态检测"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"tasks": {
|
||||||
|
"blocked": 0,
|
||||||
|
"dispatched": 0,
|
||||||
|
"done": 136,
|
||||||
|
"in_progress": 0,
|
||||||
|
"todo": 0,
|
||||||
|
"total": 140
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"at": "2026-04-09T00:19:55Z",
|
||||||
|
"blocked_reasons": [],
|
||||||
|
"conventions_version": "1.4.2",
|
||||||
|
"delta": {
|
||||||
|
"newly_blocked": [],
|
||||||
|
"newly_done": [],
|
||||||
|
"unblocked": []
|
||||||
|
},
|
||||||
|
"iteration": 1,
|
||||||
|
"modules": {
|
||||||
|
"blocked": 0,
|
||||||
|
"concept": 0,
|
||||||
|
"done": 33,
|
||||||
|
"in_progress": 0,
|
||||||
|
"planned": 0,
|
||||||
|
"stalled": [],
|
||||||
|
"total": 33
|
||||||
|
},
|
||||||
|
"task_ids": {
|
||||||
|
"blocked": [],
|
||||||
|
"done": [
|
||||||
|
"auto-update/Capabilities 权限配置",
|
||||||
|
"auto-update/下载 & 安装",
|
||||||
|
"auto-update/更新检测",
|
||||||
|
"auto-update/自动检查更新",
|
||||||
|
"auto-update/错误提示",
|
||||||
|
"blueprint-buff/BlueprintView 跨项目切换",
|
||||||
|
"blueprint-buff/Buff 生命周期 Rust 命令",
|
||||||
|
"blueprint-buff/blueprint_buffs 数据表",
|
||||||
|
"blueprint-buff/git watcher + 任务匹配写回 + 飞轮快照",
|
||||||
|
"blueprint-buff/前端 Buff 管理 UI",
|
||||||
|
"blueprint-buff/前端实时刷新",
|
||||||
|
"blueprint-feedback/归档 command",
|
||||||
|
"blueprint-feedback/归档候选展示",
|
||||||
|
"blueprint-feedback/梦核分析入口(蓝图弹窗)",
|
||||||
|
"blueprint-feedback/梦核提示词增加停滞模块数据",
|
||||||
|
"blueprint-flywheel/get_flywheel_stats command",
|
||||||
|
"blueprint-flywheel/get_flywheel_stats 支持迭代感知",
|
||||||
|
"blueprint-flywheel/usage.json 埋点写入",
|
||||||
|
"blueprint-flywheel/梦核提示词生成 command",
|
||||||
|
"blueprint-flywheel/飞轮健康面板",
|
||||||
|
"blueprint-governance/CLAUDE.md 模板定义",
|
||||||
|
"blueprint-governance/CONVENTIONS.md 版本化",
|
||||||
|
"blueprint-governance/GovernancePanel 规则编辑器 UI",
|
||||||
|
"blueprint-governance/get_blueprint_status command",
|
||||||
|
"blueprint-governance/sync/梦核/summary 切换为 effective 内容",
|
||||||
|
"blueprint-governance/sync_blueprint_rules command",
|
||||||
|
"blueprint-governance/批量同步所有项目规则",
|
||||||
|
"blueprint-governance/用户版 CONVENTIONS 存储层初始化",
|
||||||
|
"blueprint-governance/用户版 CONVENTIONS 读写 command",
|
||||||
|
"blueprint-onboarding/generate_blueprint_prompt command",
|
||||||
|
"blueprint-onboarding/蓝图操作弹窗",
|
||||||
|
"blueprint-onboarding/项目列表蓝图状态徽章",
|
||||||
|
"blueprint-reader/合并返回完整蓝图数据",
|
||||||
|
"blueprint-reader/读取 manifest.yaml",
|
||||||
|
"blueprint-reader/读取 modules/*.md",
|
||||||
|
"blueprint-view/.blueprint/ 数据结构设计",
|
||||||
|
"blueprint-view/React Flow 节点图渲染",
|
||||||
|
"blueprint-view/blocked 状态支持",
|
||||||
|
"blueprint-view/下一步汇总面板",
|
||||||
|
"blueprint-view/任务卡复制派发",
|
||||||
|
"blueprint-view/批量执行提示词入口",
|
||||||
|
"blueprint-view/智能连线路由",
|
||||||
|
"blueprint-view/模块详情面板",
|
||||||
|
"blueprint-view/统计汇总条",
|
||||||
|
"blueprint-view/蓝图治理面板",
|
||||||
|
"blueprint-view/蓝图读取 Command",
|
||||||
|
"blueprint-view/边高亮与模块聚焦",
|
||||||
|
"blueprint-view/顶部状态行扩展",
|
||||||
|
"blueprint-view/项目卡片蓝图入口",
|
||||||
|
"cicd-workflow/Actions 运行历史",
|
||||||
|
"cicd-workflow/CI/CD 配置 CRUD",
|
||||||
|
"cicd-workflow/Tauri OSS 分发模板",
|
||||||
|
"cicd-workflow/Web SSH 部署模板",
|
||||||
|
"cicd-workflow/Workflow 文件生成",
|
||||||
|
"devtools-scan/WSL 工具扫描",
|
||||||
|
"devtools-scan/Windows 工具扫描",
|
||||||
|
"devtools-scan/工具信息持久化",
|
||||||
|
"git-ops/上游状态检测",
|
||||||
|
"git-ops/分支管理",
|
||||||
|
"git-ops/基础操作",
|
||||||
|
"github-auth/OAuth Device Flow",
|
||||||
|
"github-auth/Token 管理",
|
||||||
|
"github-publish/.gitignore 生成",
|
||||||
|
"github-publish/Git 初始化 & 首次推送",
|
||||||
|
"github-publish/创建 GitHub 仓库",
|
||||||
|
"github-publish/扫描本地 Git 状态",
|
||||||
|
"health-center/T1 · Backend 健康检查聚合命令",
|
||||||
|
"health-center/T2 · 质量指标聚合",
|
||||||
|
"health-center/T3 · 前端健康中心页面",
|
||||||
|
"health-center/T4 · 扩展 MCP get_diagnostics",
|
||||||
|
"mcp-config-inject/加入产品组时注入配置",
|
||||||
|
"mcp-config-inject/端口变更时重新注入所有配置",
|
||||||
|
"mcp-config-inject/退出产品组时清除配置",
|
||||||
|
"mcp-server/MCP 端口可配置(Rust 侧)",
|
||||||
|
"mcp-server/启动时绑定 HTTP 端口",
|
||||||
|
"mcp-server/实现 MCP JSON-RPC 基础协议",
|
||||||
|
"mcp-server/实现产品组上下文工具",
|
||||||
|
"product-group-mcp/产品组详情显示 MCP 注入状态",
|
||||||
|
"product-group-mcp/设置页添加 MCP 端口配置",
|
||||||
|
"project-dashboard/分组画布",
|
||||||
|
"project-dashboard/项目卡片列表",
|
||||||
|
"project-dashboard/项目发现面板",
|
||||||
|
"project-dashboard/项目快捷操作",
|
||||||
|
"project-env-scan/环境信息持久化",
|
||||||
|
"project-env-scan/项目环境检测",
|
||||||
|
"project-mentor/T1 · 后端聚合 command(MentorContext)",
|
||||||
|
"project-mentor/T10 · 启动健康扫描 + 前端 Alert Banner",
|
||||||
|
"project-mentor/T11 · 项目历史快照",
|
||||||
|
"project-mentor/T2 · MCP 项目导师查询接口",
|
||||||
|
"project-mentor/T3 · 前端导师面板",
|
||||||
|
"project-mentor/T4 · 炼境自指接入",
|
||||||
|
"project-mentor/T5 · project_notes 数据层 + 后端命令",
|
||||||
|
"project-mentor/T6 · MCP append_project_note 工具",
|
||||||
|
"project-mentor/T7 · MentorPanel 展示 AI 笔记",
|
||||||
|
"project-mentor/T8 · 后端全组巡检命令",
|
||||||
|
"project-mentor/T9 · 前端全组巡检按钮",
|
||||||
|
"project-mgmt/子文件夹扫描",
|
||||||
|
"project-mgmt/批量导入项目",
|
||||||
|
"project-mgmt/项目 CRUD",
|
||||||
|
"project-mgmt/项目档案(Profile)",
|
||||||
|
"project-templates/从模板创建项目",
|
||||||
|
"project-templates/内置模板种植",
|
||||||
|
"project-templates/模板 CRUD",
|
||||||
|
"project-tools/工具 CRUD",
|
||||||
|
"project-tools/工具启动",
|
||||||
|
"repo-registry/仓库导入",
|
||||||
|
"repo-registry/仓库挂载",
|
||||||
|
"repo-registry/仓库注册表管理",
|
||||||
|
"runtime-diagnostics/T1 · SQLite runtime_logs 表",
|
||||||
|
"runtime-diagnostics/T2 · 替换 eprintln! 为结构化日志",
|
||||||
|
"runtime-diagnostics/T3 · MCP Server 新增 get_diagnostics 工具",
|
||||||
|
"runtime-diagnostics/T4 · 注入失败结果返回前端",
|
||||||
|
"runtime-diagnostics/T5 · 设置页 MCP 真实健康检查",
|
||||||
|
"settings-page/WSL 发行版选择",
|
||||||
|
"settings-page/关于 & 更新",
|
||||||
|
"settings-page/终端配置",
|
||||||
|
"settings-page/编辑器检测",
|
||||||
|
"shell-launch/打开终端",
|
||||||
|
"shell-launch/打开编辑器",
|
||||||
|
"sqlite-db/数据库迁移",
|
||||||
|
"sqlite-db/连接池初始化",
|
||||||
|
"tags-groups/分组管理",
|
||||||
|
"tags-groups/标签管理",
|
||||||
|
"tray-service/关闭窗口最小化到托盘",
|
||||||
|
"tray-service/系统托盘图标与菜单",
|
||||||
|
"tray-service/集成 tauri-plugin-single-instance",
|
||||||
|
"v2rayn-import/当前节点读取",
|
||||||
|
"v2rayn-import/数据库路径检测",
|
||||||
|
"v2rayn-import/节点列表扫描",
|
||||||
|
"workspace-mgmt/空间 CRUD",
|
||||||
|
"workspace-mgmt/空间级设置",
|
||||||
|
"workspace-mgmt/部署命令管理",
|
||||||
|
"wsl-proxy/代理一致性测试",
|
||||||
|
"wsl-proxy/代理同步",
|
||||||
|
"wsl-proxy/代理清除",
|
||||||
|
"wsl-proxy/代理状态检测"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"tasks": {
|
||||||
|
"blocked": 0,
|
||||||
|
"dispatched": 0,
|
||||||
|
"done": 136,
|
||||||
|
"in_progress": 0,
|
||||||
|
"todo": 0,
|
||||||
|
"total": 140
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"at": "2026-04-10T12:52:42Z",
|
||||||
|
"blocked_reasons": [],
|
||||||
|
"conventions_version": "1.4.3",
|
||||||
|
"delta": {
|
||||||
|
"newly_blocked": [],
|
||||||
|
"newly_done": [],
|
||||||
|
"unblocked": []
|
||||||
|
},
|
||||||
|
"iteration": 1,
|
||||||
|
"modules": {
|
||||||
|
"blocked": 0,
|
||||||
|
"concept": 0,
|
||||||
|
"done": 33,
|
||||||
|
"in_progress": 0,
|
||||||
|
"planned": 0,
|
||||||
|
"stalled": [],
|
||||||
|
"total": 33
|
||||||
|
},
|
||||||
|
"task_ids": {
|
||||||
|
"blocked": [],
|
||||||
|
"done": [
|
||||||
|
"auto-update/Capabilities 权限配置",
|
||||||
|
"auto-update/下载 & 安装",
|
||||||
|
"auto-update/更新检测",
|
||||||
|
"auto-update/自动检查更新",
|
||||||
|
"auto-update/错误提示",
|
||||||
|
"blueprint-buff/BlueprintView 跨项目切换",
|
||||||
|
"blueprint-buff/Buff 生命周期 Rust 命令",
|
||||||
|
"blueprint-buff/blueprint_buffs 数据表",
|
||||||
|
"blueprint-buff/git watcher + 任务匹配写回 + 飞轮快照",
|
||||||
|
"blueprint-buff/前端 Buff 管理 UI",
|
||||||
|
"blueprint-buff/前端实时刷新",
|
||||||
|
"blueprint-feedback/归档 command",
|
||||||
|
"blueprint-feedback/归档候选展示",
|
||||||
|
"blueprint-feedback/梦核分析入口(蓝图弹窗)",
|
||||||
|
"blueprint-feedback/梦核提示词增加停滞模块数据",
|
||||||
|
"blueprint-flywheel/get_flywheel_stats command",
|
||||||
|
"blueprint-flywheel/get_flywheel_stats 支持迭代感知",
|
||||||
|
"blueprint-flywheel/usage.json 埋点写入",
|
||||||
|
"blueprint-flywheel/梦核提示词生成 command",
|
||||||
|
"blueprint-flywheel/飞轮健康面板",
|
||||||
|
"blueprint-governance/CLAUDE.md 模板定义",
|
||||||
|
"blueprint-governance/CONVENTIONS.md 版本化",
|
||||||
|
"blueprint-governance/GovernancePanel 规则编辑器 UI",
|
||||||
|
"blueprint-governance/get_blueprint_status command",
|
||||||
|
"blueprint-governance/sync/梦核/summary 切换为 effective 内容",
|
||||||
|
"blueprint-governance/sync_blueprint_rules command",
|
||||||
|
"blueprint-governance/批量同步所有项目规则",
|
||||||
|
"blueprint-governance/用户版 CONVENTIONS 存储层初始化",
|
||||||
|
"blueprint-governance/用户版 CONVENTIONS 读写 command",
|
||||||
|
"blueprint-onboarding/generate_blueprint_prompt command",
|
||||||
|
"blueprint-onboarding/蓝图操作弹窗",
|
||||||
|
"blueprint-onboarding/项目列表蓝图状态徽章",
|
||||||
|
"blueprint-reader/合并返回完整蓝图数据",
|
||||||
|
"blueprint-reader/读取 manifest.yaml",
|
||||||
|
"blueprint-reader/读取 modules/*.md",
|
||||||
|
"blueprint-view/.blueprint/ 数据结构设计",
|
||||||
|
"blueprint-view/React Flow 节点图渲染",
|
||||||
|
"blueprint-view/blocked 状态支持",
|
||||||
|
"blueprint-view/下一步汇总面板",
|
||||||
|
"blueprint-view/任务卡复制派发",
|
||||||
|
"blueprint-view/批量执行提示词入口",
|
||||||
|
"blueprint-view/智能连线路由",
|
||||||
|
"blueprint-view/模块详情面板",
|
||||||
|
"blueprint-view/统计汇总条",
|
||||||
|
"blueprint-view/蓝图治理面板",
|
||||||
|
"blueprint-view/蓝图读取 Command",
|
||||||
|
"blueprint-view/边高亮与模块聚焦",
|
||||||
|
"blueprint-view/顶部状态行扩展",
|
||||||
|
"blueprint-view/项目卡片蓝图入口",
|
||||||
|
"cicd-workflow/Actions 运行历史",
|
||||||
|
"cicd-workflow/CI/CD 配置 CRUD",
|
||||||
|
"cicd-workflow/Tauri OSS 分发模板",
|
||||||
|
"cicd-workflow/Web SSH 部署模板",
|
||||||
|
"cicd-workflow/Workflow 文件生成",
|
||||||
|
"devtools-scan/WSL 工具扫描",
|
||||||
|
"devtools-scan/Windows 工具扫描",
|
||||||
|
"devtools-scan/工具信息持久化",
|
||||||
|
"git-ops/上游状态检测",
|
||||||
|
"git-ops/分支管理",
|
||||||
|
"git-ops/基础操作",
|
||||||
|
"github-auth/OAuth Device Flow",
|
||||||
|
"github-auth/Token 管理",
|
||||||
|
"github-publish/.gitignore 生成",
|
||||||
|
"github-publish/Git 初始化 & 首次推送",
|
||||||
|
"github-publish/创建 GitHub 仓库",
|
||||||
|
"github-publish/扫描本地 Git 状态",
|
||||||
|
"health-center/T1 · Backend 健康检查聚合命令",
|
||||||
|
"health-center/T2 · 质量指标聚合",
|
||||||
|
"health-center/T3 · 前端健康中心页面",
|
||||||
|
"health-center/T4 · 扩展 MCP get_diagnostics",
|
||||||
|
"mcp-config-inject/加入产品组时注入配置",
|
||||||
|
"mcp-config-inject/端口变更时重新注入所有配置",
|
||||||
|
"mcp-config-inject/退出产品组时清除配置",
|
||||||
|
"mcp-server/MCP 端口可配置(Rust 侧)",
|
||||||
|
"mcp-server/启动时绑定 HTTP 端口",
|
||||||
|
"mcp-server/实现 MCP JSON-RPC 基础协议",
|
||||||
|
"mcp-server/实现产品组上下文工具",
|
||||||
|
"product-group-mcp/产品组详情显示 MCP 注入状态",
|
||||||
|
"product-group-mcp/设置页添加 MCP 端口配置",
|
||||||
|
"project-dashboard/分组画布",
|
||||||
|
"project-dashboard/项目卡片列表",
|
||||||
|
"project-dashboard/项目发现面板",
|
||||||
|
"project-dashboard/项目快捷操作",
|
||||||
|
"project-env-scan/环境信息持久化",
|
||||||
|
"project-env-scan/项目环境检测",
|
||||||
|
"project-mentor/T1 · 后端聚合 command(MentorContext)",
|
||||||
|
"project-mentor/T10 · 启动健康扫描 + 前端 Alert Banner",
|
||||||
|
"project-mentor/T11 · 项目历史快照",
|
||||||
|
"project-mentor/T2 · MCP 项目导师查询接口",
|
||||||
|
"project-mentor/T3 · 前端导师面板",
|
||||||
|
"project-mentor/T4 · 炼境自指接入",
|
||||||
|
"project-mentor/T5 · project_notes 数据层 + 后端命令",
|
||||||
|
"project-mentor/T6 · MCP append_project_note 工具",
|
||||||
|
"project-mentor/T7 · MentorPanel 展示 AI 笔记",
|
||||||
|
"project-mentor/T8 · 后端全组巡检命令",
|
||||||
|
"project-mentor/T9 · 前端全组巡检按钮",
|
||||||
|
"project-mgmt/子文件夹扫描",
|
||||||
|
"project-mgmt/批量导入项目",
|
||||||
|
"project-mgmt/项目 CRUD",
|
||||||
|
"project-mgmt/项目档案(Profile)",
|
||||||
|
"project-templates/从模板创建项目",
|
||||||
|
"project-templates/内置模板种植",
|
||||||
|
"project-templates/模板 CRUD",
|
||||||
|
"project-tools/工具 CRUD",
|
||||||
|
"project-tools/工具启动",
|
||||||
|
"repo-registry/仓库导入",
|
||||||
|
"repo-registry/仓库挂载",
|
||||||
|
"repo-registry/仓库注册表管理",
|
||||||
|
"runtime-diagnostics/T1 · SQLite runtime_logs 表",
|
||||||
|
"runtime-diagnostics/T2 · 替换 eprintln! 为结构化日志",
|
||||||
|
"runtime-diagnostics/T3 · MCP Server 新增 get_diagnostics 工具",
|
||||||
|
"runtime-diagnostics/T4 · 注入失败结果返回前端",
|
||||||
|
"runtime-diagnostics/T5 · 设置页 MCP 真实健康检查",
|
||||||
|
"settings-page/WSL 发行版选择",
|
||||||
|
"settings-page/关于 & 更新",
|
||||||
|
"settings-page/终端配置",
|
||||||
|
"settings-page/编辑器检测",
|
||||||
|
"shell-launch/打开终端",
|
||||||
|
"shell-launch/打开编辑器",
|
||||||
|
"sqlite-db/数据库迁移",
|
||||||
|
"sqlite-db/连接池初始化",
|
||||||
|
"tags-groups/分组管理",
|
||||||
|
"tags-groups/标签管理",
|
||||||
|
"tray-service/关闭窗口最小化到托盘",
|
||||||
|
"tray-service/系统托盘图标与菜单",
|
||||||
|
"tray-service/集成 tauri-plugin-single-instance",
|
||||||
|
"v2rayn-import/当前节点读取",
|
||||||
|
"v2rayn-import/数据库路径检测",
|
||||||
|
"v2rayn-import/节点列表扫描",
|
||||||
|
"workspace-mgmt/空间 CRUD",
|
||||||
|
"workspace-mgmt/空间级设置",
|
||||||
|
"workspace-mgmt/部署命令管理",
|
||||||
|
"wsl-proxy/代理一致性测试",
|
||||||
|
"wsl-proxy/代理同步",
|
||||||
|
"wsl-proxy/代理清除",
|
||||||
|
"wsl-proxy/代理状态检测"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"tasks": {
|
||||||
|
"blocked": 0,
|
||||||
|
"dispatched": 0,
|
||||||
|
"done": 136,
|
||||||
|
"in_progress": 0,
|
||||||
|
"todo": 0,
|
||||||
|
"total": 140
|
||||||
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@ -2,14 +2,17 @@
|
|||||||
"hooks": {
|
"hooks": {
|
||||||
"PreToolUse": [
|
"PreToolUse": [
|
||||||
{
|
{
|
||||||
"matcher": "Bash",
|
|
||||||
"hooks": [
|
"hooks": [
|
||||||
{
|
{
|
||||||
"type": "command",
|
"command": "node -e \"let d='';process.stdin.on('data',c=>d+=c);process.stdin.on('end',()=>{try{const i=JSON.parse(d);const cmd=(i.tool_input||{}).command||'';if(cmd.includes('git commit')){process.stderr.write('\\n📋 提交前检查清单:\\n complexity S → /code-review\\n complexity M → /Dev-edge-case → /code-review\\n\\n');}}catch(e){}});\"",
|
||||||
"command": "node -e \"let d='';process.stdin.on('data',c=>d+=c);process.stdin.on('end',()=>{try{const i=JSON.parse(d);const cmd=(i.tool_input||{}).command||'';if(cmd.includes('git commit')){process.stderr.write('\\n📋 提交前检查清单:\\n complexity S → /code-review\\n complexity M → /Dev-edge-case → /code-review\\n\\n');}}catch(e){}});\""
|
"type": "command"
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
"matcher": "Bash"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
"permissions": {
|
||||||
|
"defaultMode": "acceptEdits"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2,7 +2,7 @@ use serde::{Deserialize, Serialize};
|
|||||||
use std::path::Path;
|
use std::path::Path;
|
||||||
|
|
||||||
// ── 主节点:master CONVENTIONS.md 内容和版本(编译时嵌入)────────────────────
|
// ── 主节点:master CONVENTIONS.md 内容和版本(编译时嵌入)────────────────────
|
||||||
|
// CONVENTIONS v1.4.3:claude_managed_template 加入需求讨论表、复杂度决策表、两阶段提交规则
|
||||||
const MASTER_CONVENTIONS: &str = include_str!("../../../.blueprint/CONVENTIONS.md");
|
const MASTER_CONVENTIONS: &str = include_str!("../../../.blueprint/CONVENTIONS.md");
|
||||||
|
|
||||||
/// 从 MASTER_CONVENTIONS frontmatter 自动解析版本号(内置基线版本,不随用户版变化)。
|
/// 从 MASTER_CONVENTIONS frontmatter 自动解析版本号(内置基线版本,不随用户版变化)。
|
||||||
@ -92,24 +92,36 @@ fn claude_managed_template() -> String {
|
|||||||
|
|
||||||
本项目使用 `.blueprint/` 目录维护项目全景架构图,驱动需求讨论和任务管理。
|
本项目使用 `.blueprint/` 目录维护项目全景架构图,驱动需求讨论和任务管理。
|
||||||
|
|
||||||
**每次对话都应遵循以下流程:**
|
### 对话开始时必须执行
|
||||||
|
|
||||||
### 1. 了解当前状态
|
1. 读取 `.blueprint/manifest.yaml` 了解项目全景和当前状态
|
||||||
对话开始时,先读取 `.blueprint/manifest.yaml` 了解项目模块和状态。
|
2. 读取 `.blueprint/CONVENTIONS.md` 了解完整工作流规则
|
||||||
|
|
||||||
### 2. 讨论需求时更新蓝图
|
### 需求讨论 → 蓝图同步规则
|
||||||
- 确认了新需求 → 在 manifest.yaml 新增模块,创建 `.blueprint/modules/<id>.md`
|
|
||||||
- 拆分了大需求 → 在模块文件中添加任务卡
|
|
||||||
- 调整了方向 → 更新模块关系(edges)
|
|
||||||
|
|
||||||
### 3. 完成实现后标记蓝图
|
| 用户说的 | Claude 应做的 |
|
||||||
- 完成了功能 → 更新对应任务卡状态为 `done`(前缀改为 ✅)
|
|----------|--------------|
|
||||||
- 更新 manifest.yaml 顶部的 `updated` 日期
|
| "我想加个 XX 功能" | 确认需求后:manifest 新增模块(status: concept),创建 `.blueprint/modules/<id>.md` |
|
||||||
|
| "XX 功能需要 A、B、C" | 在模块文件中拆分为任务卡 |
|
||||||
|
| "这个方案确定了" | 模块 status → planned,补充任务卡 files/acceptance |
|
||||||
|
| "开始做 XX" | 模块 status → in_progress |
|
||||||
|
| 没提蓝图但在讨论功能 | 主动提议更新蓝图 |
|
||||||
|
|
||||||
### 4. 任务卡规范
|
### 复杂度决策(讨论新功能 / 拆解需求时)
|
||||||
详见 `.blueprint/CONVENTIONS.md`,核心规则:
|
|
||||||
- 任务卡同时具备 `files` + `acceptance` + complexity `S/M` → 标记为 📋 可派发
|
| complexity | 执行流程 |
|
||||||
- 可派发的任务卡可以直接交给 Claude Agent 独立完成
|
|-----------|---------|
|
||||||
|
| S / M | 直接拆任务卡,确保每张卡有 `files` + `acceptance` + `complexity` → 标记 📋 |
|
||||||
|
| L(复杂系统设计) | 先 `/architect` 输出设计文档,用户确认后 `/splitter` 拆成 S/M 任务卡 |
|
||||||
|
|
||||||
|
> L 级任务禁止直接写代码,必须先经过 `/architect` → `/splitter` 流程。
|
||||||
|
|
||||||
|
### 任务执行两阶段提交
|
||||||
|
|
||||||
|
- **开始写代码前**:任务卡前缀改为 🔵,status → in_progress
|
||||||
|
- **完成验收后**:任务卡前缀改为 ✅,status → done,更新 manifest `updated` 日期
|
||||||
|
|
||||||
|
完整规则(迭代管理、阻塞处理、复盘笔记等)详见 `.blueprint/CONVENTIONS.md`。
|
||||||
<!-- BLUEPRINT_MANAGED_END -->"#)
|
<!-- BLUEPRINT_MANAGED_END -->"#)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
71
src-tauri/src/commands/claude_config.rs
Normal file
71
src-tauri/src/commands/claude_config.rs
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
use serde::{Deserialize, Serialize};
|
||||||
|
|
||||||
|
const BASH_RULES_MARKER: &str = "<!-- beast:bash-rules:start -->";
|
||||||
|
|
||||||
|
#[derive(Debug, Serialize, Deserialize)]
|
||||||
|
pub struct BeastGlobalStatus {
|
||||||
|
/// Beast 是否已安装(settings.manifest.json 中存在 beast-mode 记录)
|
||||||
|
pub installed: bool,
|
||||||
|
/// 当前是否处于狂暴模式(permissions.allow 包含 Bash(*))
|
||||||
|
pub active: bool,
|
||||||
|
/// ~/.claude/CLAUDE.md 是否已含 Beast 注入的 bash 规则
|
||||||
|
pub has_bash_rules: bool,
|
||||||
|
}
|
||||||
|
|
||||||
|
fn claude_home_dir() -> Option<std::path::PathBuf> {
|
||||||
|
let home = std::env::var("USERPROFILE")
|
||||||
|
.or_else(|_| std::env::var("HOME"))
|
||||||
|
.ok()?;
|
||||||
|
Some(std::path::Path::new(&home).join(".claude"))
|
||||||
|
}
|
||||||
|
|
||||||
|
/// 读取全局 Beast 安装状态(只读,不修改任何文件)。
|
||||||
|
#[tauri::command]
|
||||||
|
pub async fn get_beast_global_status() -> Result<BeastGlobalStatus, String> {
|
||||||
|
let claude_dir = match claude_home_dir() {
|
||||||
|
Some(d) => d,
|
||||||
|
None => return Ok(BeastGlobalStatus { installed: false, active: false, has_bash_rules: false }),
|
||||||
|
};
|
||||||
|
|
||||||
|
// 检查安装状态(manifest)
|
||||||
|
let installed = {
|
||||||
|
let manifest_path = claude_dir.join("settings.manifest.json");
|
||||||
|
if manifest_path.exists() {
|
||||||
|
let content = std::fs::read_to_string(&manifest_path).unwrap_or_default();
|
||||||
|
let json: serde_json::Value = serde_json::from_str(&content)
|
||||||
|
.unwrap_or(serde_json::Value::Object(Default::default()));
|
||||||
|
json.get("beast-mode").is_some()
|
||||||
|
} else {
|
||||||
|
false
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
// 检查当前模式(settings.json 中 allow 是否包含 Bash(*))
|
||||||
|
let active = {
|
||||||
|
let settings_path = claude_dir.join("settings.json");
|
||||||
|
if settings_path.exists() {
|
||||||
|
let content = std::fs::read_to_string(&settings_path).unwrap_or_default();
|
||||||
|
let json: serde_json::Value = serde_json::from_str(&content)
|
||||||
|
.unwrap_or(serde_json::Value::Object(Default::default()));
|
||||||
|
json["permissions"]["allow"]
|
||||||
|
.as_array()
|
||||||
|
.map(|arr| arr.iter().any(|v| v.as_str() == Some("Bash(*)")))
|
||||||
|
.unwrap_or(false)
|
||||||
|
} else {
|
||||||
|
false
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
// 检查 bash 规则是否已注入 ~/.claude/CLAUDE.md
|
||||||
|
let has_bash_rules = {
|
||||||
|
let claude_md = claude_dir.join("CLAUDE.md");
|
||||||
|
if claude_md.exists() {
|
||||||
|
let content = std::fs::read_to_string(&claude_md).unwrap_or_default();
|
||||||
|
content.contains(BASH_RULES_MARKER)
|
||||||
|
} else {
|
||||||
|
false
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
Ok(BeastGlobalStatus { installed, active, has_bash_rules })
|
||||||
|
}
|
||||||
@ -19,4 +19,5 @@ pub mod cicd;
|
|||||||
pub mod blueprint;
|
pub mod blueprint;
|
||||||
pub mod buff;
|
pub mod buff;
|
||||||
pub mod canvas;
|
pub mod canvas;
|
||||||
|
pub mod claude_config;
|
||||||
pub mod mentor;
|
pub mod mentor;
|
||||||
|
|||||||
@ -18,7 +18,7 @@ pub(crate) fn silent_cmd(program: &str) -> std::process::Command {
|
|||||||
cmd
|
cmd
|
||||||
}
|
}
|
||||||
|
|
||||||
use commands::{activity::*, blueprint::*, buff::{apply_blueprint_buff, remove_blueprint_buff, get_buff_status, list_buffed_projects}, canvas::*, cicd::*, devtools::*, git_ops::*, git_repos::*, github::*, groups::*, mentor::{add_project_note, get_group_mentor_report, get_mentor_context, get_project_notes, get_startup_alerts, run_startup_health_scan}, network::{get_wsl_ip, sync_wsl_proxy, get_wsl_proxy_status, clear_wsl_proxy, test_wsl_proxy_ip, test_win_proxy_ip}, project_scan::*, project_tools::*, projects::{batch_create_projects, create_project, delete_project, get_project, get_projects, scan_subfolders, update_project, update_project_tags}, proxy::*, publish::*, settings::{check_mcp_health, detect_editors, get_settings, run_health_check, search_editor_path, update_settings}, shell::*, spaces::*, tags::*, templates::*};
|
use commands::{activity::*, blueprint::*, buff::{apply_blueprint_buff, remove_blueprint_buff, get_buff_status, list_buffed_projects}, canvas::*, cicd::*, claude_config::get_beast_global_status, devtools::*, git_ops::*, git_repos::*, github::*, groups::*, mentor::{add_project_note, get_group_mentor_report, get_mentor_context, get_project_notes, get_startup_alerts, run_startup_health_scan}, network::{get_wsl_ip, sync_wsl_proxy, get_wsl_proxy_status, clear_wsl_proxy, test_wsl_proxy_ip, test_win_proxy_ip}, project_scan::*, project_tools::*, projects::{batch_create_projects, create_project, delete_project, get_project, get_projects, scan_subfolders, update_project, update_project_tags}, proxy::*, publish::*, settings::{check_mcp_health, detect_editors, get_settings, run_health_check, search_editor_path, update_settings}, shell::*, spaces::*, tags::*, templates::*};
|
||||||
|
|
||||||
#[cfg_attr(mobile, tauri::mobile_entry_point)]
|
#[cfg_attr(mobile, tauri::mobile_entry_point)]
|
||||||
pub fn run() {
|
pub fn run() {
|
||||||
@ -271,6 +271,8 @@ pub fn run() {
|
|||||||
add_project_note,
|
add_project_note,
|
||||||
get_group_mentor_report,
|
get_group_mentor_report,
|
||||||
get_startup_alerts,
|
get_startup_alerts,
|
||||||
|
// beast status (read-only)
|
||||||
|
get_beast_global_status,
|
||||||
])
|
])
|
||||||
.run(tauri::generate_context!())
|
.run(tauri::generate_context!())
|
||||||
.expect("error while running tauri application");
|
.expect("error while running tauri application");
|
||||||
|
|||||||
104
src/components/dashboard/ClaudeConfigModal.tsx
Normal file
104
src/components/dashboard/ClaudeConfigModal.tsx
Normal file
@ -0,0 +1,104 @@
|
|||||||
|
import { useQuery } from "@tanstack/react-query";
|
||||||
|
import { getBeastGlobalStatus } from "../../lib/commands";
|
||||||
|
import { Dialog } from "../ui/Dialog";
|
||||||
|
|
||||||
|
interface Props {
|
||||||
|
projectName: string;
|
||||||
|
onClose: () => void;
|
||||||
|
}
|
||||||
|
|
||||||
|
export function ClaudeConfigModal({ projectName, onClose }: Props) {
|
||||||
|
const { data: beast, isLoading } = useQuery({
|
||||||
|
queryKey: ["beastGlobalStatus"],
|
||||||
|
queryFn: getBeastGlobalStatus,
|
||||||
|
staleTime: 10000,
|
||||||
|
});
|
||||||
|
|
||||||
|
const modeLabel = beast?.active ? "🔥 狂暴模式" : "🛡️ 普通模式";
|
||||||
|
const modeBg = beast?.active
|
||||||
|
? "bg-orange-50 border-orange-200 text-orange-700"
|
||||||
|
: "bg-gray-50 border-gray-200 text-gray-600";
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Dialog title={`Claude 自主性 · ${projectName}`} onClose={onClose} size="sm">
|
||||||
|
<div className="px-6 py-5 space-y-5">
|
||||||
|
|
||||||
|
{isLoading ? (
|
||||||
|
<p className="text-sm text-gray-400 text-center py-4">读取中…</p>
|
||||||
|
) : (
|
||||||
|
<>
|
||||||
|
{/* Beast 安装状态 */}
|
||||||
|
<div className="flex items-center justify-between">
|
||||||
|
<span className="text-sm font-semibold text-gray-700">Beast</span>
|
||||||
|
{beast?.installed ? (
|
||||||
|
<span className="text-xs text-green-600 bg-green-50 border border-green-200 rounded-full px-2.5 py-0.5">
|
||||||
|
● 已安装
|
||||||
|
</span>
|
||||||
|
) : (
|
||||||
|
<span className="text-xs text-gray-400 bg-gray-50 border border-gray-200 rounded-full px-2.5 py-0.5">
|
||||||
|
○ 未安装
|
||||||
|
</span>
|
||||||
|
)}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{/* 当前模式 */}
|
||||||
|
<div className={`rounded-xl border px-4 py-3 ${modeBg}`}>
|
||||||
|
<p className="text-sm font-semibold">{beast?.installed ? modeLabel : "— 未启用"}</p>
|
||||||
|
<p className="text-xs mt-0.5 opacity-70">
|
||||||
|
{beast?.active
|
||||||
|
? "权限全开,危险操作已拦截"
|
||||||
|
: beast?.installed
|
||||||
|
? "文件修改需确认,Bash 需确认"
|
||||||
|
: "Beast 未安装,使用 Claude Code 默认权限"}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{/* Bash 规则状态 */}
|
||||||
|
<div className="flex items-center justify-between">
|
||||||
|
<div>
|
||||||
|
<p className="text-sm font-semibold text-gray-700">Bash 自主性规则</p>
|
||||||
|
<p className="text-xs text-gray-400 mt-0.5">~/.claude/CLAUDE.md</p>
|
||||||
|
</div>
|
||||||
|
{beast?.has_bash_rules ? (
|
||||||
|
<span className="text-xs text-green-600 bg-green-50 border border-green-200 rounded-full px-2.5 py-0.5">
|
||||||
|
● 已注入
|
||||||
|
</span>
|
||||||
|
) : (
|
||||||
|
<span className="text-xs text-gray-400 bg-gray-50 border border-gray-200 rounded-full px-2.5 py-0.5">
|
||||||
|
○ 未注入
|
||||||
|
</span>
|
||||||
|
)}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{/* CLI 操作提示 */}
|
||||||
|
<div className="rounded-xl bg-gray-50 border border-gray-100 px-4 py-3 space-y-1.5">
|
||||||
|
<p className="text-xs font-semibold text-gray-500 mb-2">在终端管理</p>
|
||||||
|
{[
|
||||||
|
{ cmd: "beast i", desc: "安装 Beast" },
|
||||||
|
{ cmd: "beast on", desc: "开启狂暴模式 + 注入 Bash 规则" },
|
||||||
|
{ cmd: "beast off", desc: "切回普通模式 + 移除 Bash 规则" },
|
||||||
|
{ cmd: "beast s", desc: "查看当前状态" },
|
||||||
|
].map(({ cmd, desc }) => (
|
||||||
|
<div key={cmd} className="flex items-center gap-3">
|
||||||
|
<code className="text-xs font-mono text-blue-600 bg-blue-50 rounded px-1.5 py-0.5 shrink-0">
|
||||||
|
{cmd}
|
||||||
|
</code>
|
||||||
|
<span className="text-xs text-gray-400">{desc}</span>
|
||||||
|
</div>
|
||||||
|
))}
|
||||||
|
</div>
|
||||||
|
</>
|
||||||
|
)}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div className="flex justify-end px-6 py-4 border-t border-gray-100">
|
||||||
|
<button
|
||||||
|
onClick={onClose}
|
||||||
|
className="px-4 py-2 rounded-lg text-sm border border-gray-200 text-gray-600 hover:bg-gray-50"
|
||||||
|
>
|
||||||
|
关闭
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</Dialog>
|
||||||
|
);
|
||||||
|
}
|
||||||
@ -10,6 +10,7 @@ import { PublishModal } from "./PublishModal";
|
|||||||
import { BlueprintModal } from "./BlueprintModal";
|
import { BlueprintModal } from "./BlueprintModal";
|
||||||
import { BlueprintPromptModal } from "./BlueprintPromptModal";
|
import { BlueprintPromptModal } from "./BlueprintPromptModal";
|
||||||
import { MentorPanel } from "../mentor/MentorPanel";
|
import { MentorPanel } from "../mentor/MentorPanel";
|
||||||
|
import { ClaudeConfigModal } from "./ClaudeConfigModal";
|
||||||
import { getOtherSpacesInfo, recordPushToRemote, formatRelativeTime, type SpacesJson } from "../../lib/spacesSync";
|
import { getOtherSpacesInfo, recordPushToRemote, formatRelativeTime, type SpacesJson } from "../../lib/spacesSync";
|
||||||
import { openUrl } from "@tauri-apps/plugin-opener";
|
import { openUrl } from "@tauri-apps/plugin-opener";
|
||||||
|
|
||||||
@ -67,6 +68,7 @@ export function ProjectCard({ project: p, role, spacesJson }: Props) {
|
|||||||
const [showBlueprint, setShowBlueprint] = useState(false);
|
const [showBlueprint, setShowBlueprint] = useState(false);
|
||||||
const [showBlueprintPrompt, setShowBlueprintPrompt] = useState(false);
|
const [showBlueprintPrompt, setShowBlueprintPrompt] = useState(false);
|
||||||
const [showMentor, setShowMentor] = useState(false);
|
const [showMentor, setShowMentor] = useState(false);
|
||||||
|
const [showClaudeConfig, setShowClaudeConfig] = useState(false);
|
||||||
const [showBranchMenu, setShowBranchMenu] = useState(false);
|
const [showBranchMenu, setShowBranchMenu] = useState(false);
|
||||||
const [newBranchName, setNewBranchName] = useState("");
|
const [newBranchName, setNewBranchName] = useState("");
|
||||||
const [creatingBranch, setCreatingBranch] = useState(false);
|
const [creatingBranch, setCreatingBranch] = useState(false);
|
||||||
@ -721,6 +723,10 @@ export function ProjectCard({ project: p, role, spacesJson }: Props) {
|
|||||||
<div className="border-t border-gray-100 px-5 py-2.5 flex items-center justify-between">
|
<div className="border-t border-gray-100 px-5 py-2.5 flex items-center justify-between">
|
||||||
<span className="text-[11px] text-gray-300">{(p.updated_at ?? "").slice(0, 10)}</span>
|
<span className="text-[11px] text-gray-300">{(p.updated_at ?? "").slice(0, 10)}</span>
|
||||||
<div className="flex items-center gap-1.5">
|
<div className="flex items-center gap-1.5">
|
||||||
|
<button onClick={() => setShowClaudeConfig(true)}
|
||||||
|
className="px-2.5 py-1.5 rounded-md text-xs border border-gray-200 text-gray-500 hover:bg-gray-50 transition-colors" title="Claude 自主性状态">
|
||||||
|
🤖
|
||||||
|
</button>
|
||||||
<button onClick={() => setShowMentor(true)}
|
<button onClick={() => setShowMentor(true)}
|
||||||
className="px-2.5 py-1.5 rounded-md text-xs border border-gray-200 text-gray-500 hover:bg-gray-50 transition-colors" title="项目导师">
|
className="px-2.5 py-1.5 rounded-md text-xs border border-gray-200 text-gray-500 hover:bg-gray-50 transition-colors" title="项目导师">
|
||||||
🎓
|
🎓
|
||||||
@ -822,6 +828,13 @@ export function ProjectCard({ project: p, role, spacesJson }: Props) {
|
|||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
|
{showClaudeConfig && (
|
||||||
|
<ClaudeConfigModal
|
||||||
|
projectName={p.name}
|
||||||
|
onClose={() => setShowClaudeConfig(false)}
|
||||||
|
/>
|
||||||
|
)}
|
||||||
|
|
||||||
{/* Expanded activity */}
|
{/* Expanded activity */}
|
||||||
{expanded && (
|
{expanded && (
|
||||||
<div className="border-t border-gray-50 pt-3">
|
<div className="border-t border-gray-50 pt-3">
|
||||||
|
|||||||
@ -1180,3 +1180,17 @@ export const getBuffStatus = (projectPath: string) =>
|
|||||||
export const listBuffedProjects = () =>
|
export const listBuffedProjects = () =>
|
||||||
invoke<BuffStatus[]>("list_buffed_projects");
|
invoke<BuffStatus[]>("list_buffed_projects");
|
||||||
|
|
||||||
|
// ── Beast Global Status (read-only) ───────────────────────────────────────────
|
||||||
|
|
||||||
|
export interface BeastGlobalStatus {
|
||||||
|
/** Beast 是否已安装 */
|
||||||
|
installed: boolean;
|
||||||
|
/** 当前是否处于狂暴模式 */
|
||||||
|
active: boolean;
|
||||||
|
/** ~/.claude/CLAUDE.md 是否含 Beast 注入的 bash 规则 */
|
||||||
|
has_bash_rules: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
export const getBeastGlobalStatus = () =>
|
||||||
|
invoke<BeastGlobalStatus>("get_beast_global_status");
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user