feat: 新增 Claude 自主性状态面板,炼境感知 Beast 运行状态

- 新增 get_beast_global_status 命令读取全局 Beast 状态(安装情况、当前模式、bash 规则)
- ClaudeConfigModal 改为只读状态展示 + CLI 操作引导,炼境不再写入任何 Claude 配置
- 项目卡片新增 🤖 按钮,对所有项目可见(Beast 是全局状态)
- .claude/settings.json 补充 permissions.defaultMode: acceptEdits
This commit is contained in:
lanrtop 2026-04-11 00:32:07 +09:00
parent 8d646c6cbb
commit b6e4fbe3fa
11 changed files with 895 additions and 24 deletions

View File

@ -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
--- ---

View File

@ -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

View File

@ -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 · 后端聚合 commandMentorContext",
"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 · 后端聚合 commandMentorContext",
"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 · 后端聚合 commandMentorContext",
"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 · 后端聚合 commandMentorContext",
"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
}
} }
] ]
} }

View File

@ -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"
} }
} }

View File

@ -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.3claude_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 -->"#)
} }

View 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 })
}

View File

@ -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;

View File

@ -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");

View 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>
);
}

View File

@ -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">

View File

@ -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");