Files
clawpanel/docs/ROADMAP-v0.9.md

3.1 KiB
Raw Blame History

ClawPanel v0.9.0 规划

命令执行权限管理 (Issue #55)

需求

AI 助手执行终端命令时,允许用户配置白名单/黑名单规则,控制哪些命令可以执行。

规则类型

类型 示例 说明
精确匹配 go run main.go 只允许/禁止这一条完整命令
前缀通配 go * 允许/禁止所有 go 开头的命令
全局 * 允许/禁止所有命令

配置模式

  • 确认模式(默认)— 每条命令都弹窗确认
  • 白名单模式 — 匹配白名单的命令自动执行,其余弹窗确认
  • 黑名单模式 — 匹配黑名单的命令直接拒绝,其余弹窗确认
  • 无限模式 — 所有命令自动执行(当前已有的 unlimited 模式)

存储位置

~/.openclaw/clawpanel.jsoncommandRules 字段:

{
  "commandRules": {
    "mode": "whitelist",
    "rules": [
      { "pattern": "go run *", "action": "allow" },
      { "pattern": "npm *", "action": "allow" },
      { "pattern": "rm -rf /", "action": "deny" },
      { "pattern": "git *", "action": "allow" }
    ]
  }
}

实现方案

  1. 设置页面 UI — 安全设置页面新增「命令规则」区域

    • 规则列表(增删改)
    • 模式切换(确认/白名单/黑名单/无限)
    • 预设模板(开发者常用、安全最小权限等)
  2. 存储 — 读写 clawpanel.jsoncommandRules

  3. 拦截逻辑assistant.jsassistant_exec 调用前

    • 解析命令字符串
    • 按规则列表逐条匹配(支持 glob 通配符)
    • 匹配到 allow → 自动执行
    • 匹配到 deny → 直接拒绝并提示
    • 无匹配 → 按模式决定(弹窗确认或拒绝)
  4. Rust 后端assistant_exec 命令增加规则检查

    • clawpanel.json 读取规则
    • glob 匹配逻辑
    • 返回 { allowed: bool, rule: string } 给前端

优先级

中等。当前 AI 助手已有 4 种模式(聊天/规划/执行/无限),命令规则是对「执行」模式的细化增强。


安装体验优化

默认安装原版包

当前版本选择器默认选中「汉化版」改为默认「原版」official。用户可切换。

安装页面环境检测实时生效

保存自定义 Node.js 路径后检查是否需要重启才生效。v0.8.0 已改用 RwLock 支持运行时刷新,需验证是否完全生效。

Linux Web 版后台更新机制

Linux Web 版检测到新版本后,目前只能手动 git pull。需要实现:

  • 面板内一键更新按钮(自动 git pull + npm install + 重启服务)
  • 或者 systemd 服务自动拉取更新

其他待规划功能

  • 消息渠道:渠道级别的消息统计(收发量、响应时间)
  • 模型配置:支持更多服务商预设(硅基流动、智谱、百川、通义千问等国内模型)
  • Docker 桌面版Rust 原生 Docker APIbollard crate替代 Node.js 后端
  • 前端热更新增量包:只下载变更文件,减小更新包体积
  • 多语言支持i18n 框架(中/英双语)