Skip to content

wanctl v0.10.0

Choose a tag to compare

@github-actions github-actions released this 17 Sep 14:51
· 11 commits to main since this release
74c8e65

v0.10.0 — wanctl 成为网页 AI 的外部 harness:原生 read / write / edit / screenshot,help 就是它的 system prompt

  • AI 看文件、改文件不再靠 cat 和 sed。 新增四个原生操作,设备端用 Go 直接做,不经过 shell,Linux、macOS、Windows、安卓行为完全一样:read 按行号分页(单次 256 KiB,永远在整行处截断并告诉你从第几行接着读),返回整个文件的 sha256;edit 把一段旧文本换成新文本,旧文本必须在文件里唯一,可以带上刚才 read 到的 sha256 做校验,改错了就整体拒绝、文件一个字节不动;一次调用可以带多处修改,网页 AI 少点几次授权;write 新建或整份覆盖文本文件,自动建父目录。二进制照旧走 push / pull。全部走设备原有的策略规则和审批,日志里记成文件事件。三个接入面都有:CLI(wanctl read / edit / write)、MCP(wanctl_read / wanctl_edit / wanctl_write,本机 stdio 和公网托管端点都有)、WebFetch(read_text 加了 offset / limit,新增 edit_text)。

  • 截图扩到桌面。 wanctl screenshotwanctl_screenshot 原来只支持安卓,现在 macOS、Windows、Linux 都能截,MCP 直接把图交给模型看。做界面、做游戏的时候,AI 终于能看到用户看到的东西,而不是只看文字状态。桌面截图和普通命令走同一道策略门,bypass 模式直接放行;安卓仍按提权命令管。

  • exec 输出太长时保留尾巴。 以前超过上限砍尾巴,报错恰恰都在尾巴上。现在保留最后一段,完整输出存在设备的临时目录里并告诉 AI 路径。

  • help 重写成「薄 MCP」。 光敲 wanctl 只出一页索引;wanctl help exec 给的是和 MCP 工具描述同一份文字:什么时候用、参数是什么、每条报错该怎么办。CLI、MCP、docs/contract.md 三处出自同一份目录,测试保证不会漂移。MCP 连上时还会带一段二十来行的 instructions,就是这个 harness 的 system prompt:有哪些原语、怎么配合(起 dev server 用后台任务、看文件用 read、改文件用 edit、进项目先读 AGENTS.md)。

  • WebFetch 按强模型重写。 只服务 Qwen 3.8-Max、ChatGPT 这一档的模型:用户贴一句话进去,剩下的由 AI 带着走,人只需要点两次——批准设备访问、批准配对。命令可以跑到 30 分钟(以前 60 秒,Blender 建模直接超时),轮询 next_url 拿结果。安全规则一条没减;重放丢失响应的链接沿用同一个 rid,只有明确「什么都没执行」时才换新 rid,409 表示同一个 rid 换了参数、必须停下。

  • 连接中途断了不再冤枉设备。 以前请求发出去之后连接断开,控制端一律报「设备版本太旧」;现在只有设备明确回「不认识这个操作」才这么说,其余情况报「结果未知,先 read 一遍比对 sha256 再决定要不要重试」,避免 AI 把已经写进去的修改再写一遍。

本次受控端要升级(新增了四种设备端操作)。开着自动更新的设备会自己升;没升的设备被 AI 调用 read / edit / write / screenshot 时会收到明确提示「请在设备上 wanctl update」,不会挂住。relay 和 portal 一起升级,无数据库迁移,没有新增环境变量。