自 ClawPanel 0.22.0 提供安装、模型配置及独立工作台,继续标记为实验版。完整 OpenClaw 操控对标仍分阶段推进,参见 复查记录。
@earendil-works/pi-coding-agent@1.1.0。Pi 独立于 OpenClaw Gateway。未安装 OpenClaw 或 Gateway 停止时,也可使用 Pi。 这不是 Pi 原生实验 Web Server 的 iframe:当前采用官方 JSONL RPC,面板提供原生工作台。
/v1 接口。models.json 只保存环境变量引用;凭据保存在受管私有目录,日志脱敏。read/grep/find/ls;启用写文件及命令后,edit/write/bash/powershell 每次都要确认。数据位于当前 OpenClaw 配置根目录下的 clawpanel/pi/,没有全局安装或改写已有 ~/.pi:
clawpanel/pi/
├── runtime/ # 独立 npm 包与依赖
├── agent/models.json # Provider、模型与环境变量引用
├── agent/settings.json # 默认 Provider / 模型,保留已有未知字段
├── agent/credentials.json # 私有凭据,不通过状态 API 返回
├── sessions/ # 官方 Pi JSONL 会话
├── sessions.json # 面板会话索引
├── config.json # 工作目录、工具授权
├── permission.mjs # 面板逐次确认守卫
├── runtime.log # 脱敏诊断
└── workspace/ # 默认工作目录
/__api/pi_call,不新增公开 Pi 端口。127.0.0.1 随机端口私有桥调用;父管道断开即回收进程。握手有 15 秒超时。sessionStorage,离开页面和刷新后恢复,关闭标签页后结束保存;不发送遥测。后台会话待审批时提供定位提醒。prompt 接受不代表任务完成;以 agent_settled 结束任务。最终消息覆盖流式增量,避免截断及首段重复。select/confirm/input/editor 请求按 ID 回传;任意自定义 TUI custom() 扩展不在本轮范围。安装和更新仅接受面板验证过的固定 Pi 版本(本版本为 1.1.0);检查上游更新由用户触发,未经兼容验收的新版仅提示、不自动切换。先在独立 staging 目录安装并执行版本核验,再切换受管运行时;切换后核验失败恢复旧版本。
管理操作互斥;任务执行中拒绝安装、更新、卸载、模型同步和工作目录变更。卸载只删除受管运行时,保留配置、凭据、会话和工作目录。模型同步写入失败恢复旧配置,并做文件回读;文件回读不是真实模型调用成功证明。
工作台使用全高聊天布局:窄会话栏可收起,手机上改为抽屉;仅消息区滚动,模型选择和输入区固定在底部。安装、更新与权限管理继续放在独立配置页。
模型下拉显示模型名称,内部 Provider ID 只保留在 RPC 参数中。重名模型用模型 ID、地址或序号区分。工具调用和历史结果合并到原调用位置,默认折叠诊断详情;拒绝审批显示“未执行”,主动停止显示“已停止生成”,实际错误仍保留。
流式刷新保留草稿、焦点、滚动位置及工具/思考展开状态,中文输入法合成期间暂缓重绘。快捷提示只填入草稿,不自动发送。
界面回归使用真实 Pi 1.1.0 和本地模拟模型,在 Web 生产服务器上检查亮/暗主题、390×844 与 320×568 小屏布局、模型切换、审批拒绝/允许、停止与刷新恢复。模拟模型响应不是收费 Provider 的真实调用证明。
本轮已在 Windows / Node.js 24.15.0 验证:
尚未完成:Tauri GUI 整体操作验收,Linux/macOS/ARM64 真机验收,收费 Provider 的真实 Responses/Anthropic/Google/Ollama 调用,任意项目扩展/MCP 和文件附件体验。不要把这些未验收项表述为完整兼容。
node --test tests/*.test.js
npm run build
cargo fmt --all --manifest-path src-tauri/Cargo.toml -- --check
cargo test --locked --manifest-path src-tauri/Cargo.toml
cargo clippy --locked --manifest-path src-tauri/Cargo.toml --all-targets -- -D warnings
可选真 Pi 测试使用已经安装 Pi 的隔离 .tmp 根目录,未设置环境变量时跳过:
$env:PI_REAL_RUNTIME_ROOT = Join-Path (Get-Location) '.tmp/pi-spike'
node --test tests/pi-real-runtime.test.js
该测试仅调用本地模拟 Provider,不访问真实收费模型。目录必须在 .tmp 中;测试会同步模拟模型、创建新工作目录和会话。
CI 与发布门禁执行下列命令,自动安装固定版本并运行上述测试。三平台 CI 会分别验证原生 RPC 启动,发布构建前再执行同一门禁:
node scripts/test-pi-runtime.mjs
跨平台 CI 不等于 Tauri GUI 真机验收或收费 Provider 的端到端验收。