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

90 lines
3.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ClawPanel v0.9.0 规划
## 命令执行权限管理 (Issue #55)
### 需求
AI 助手执行终端命令时,允许用户配置白名单/黑名单规则,控制哪些命令可以执行。
### 规则类型
| 类型 | 示例 | 说明 |
|------|------|------|
| 精确匹配 | `go run main.go` | 只允许/禁止这一条完整命令 |
| 前缀通配 | `go *` | 允许/禁止所有 go 开头的命令 |
| 全局 | `*` | 允许/禁止所有命令 |
### 配置模式
- **确认模式**(默认)— 每条命令都弹窗确认
- **白名单模式** — 匹配白名单的命令自动执行,其余弹窗确认
- **黑名单模式** — 匹配黑名单的命令直接拒绝,其余弹窗确认
- **无限模式** — 所有命令自动执行(当前已有的 unlimited 模式)
### 存储位置
`~/.openclaw/clawpanel.json``commandRules` 字段:
```json
{
"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.json``commandRules`
3. **拦截逻辑**`assistant.js``assistant_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 框架(中/英双语)