Skip to content

PI 0.1.2(pi 1.3.0)

Choose a tag to compare

@heikeyangle-code heikeyangle-code released this 16 Oct 19:17

引擎:pi-coding-agent 1.0.1 → 1.3.0(Node 24.19 不变)。

从上一个包 v0.1.1 到这里共 130 笔提交。下面是这一版新增、修复与加强的全部内容,按面分组。


引擎与运行时

  • 引擎跨三个小版本:1.0.1 → 1.0.3 → 1.1.0 → 1.2.0 → 1.3.0,App 侧零代码改动接入
  • 引擎依赖树自己锁起来,钉住 1.3.0,构建不再受上游漂移影响
  • 官方厂商的连接字段改成「没意见就不写」——不再往配置里塞多余字段
  • provider id 列表跟上 pi 的改名(azure-openai-responses → azure)
  • 覆盖解压不再把软链写到自己目标上(修真机上的 ELOOP 死循环)
  • 升级不再必须重建运行时:覆盖解压前先清掉「占了目录位置」的旧节点
  • 覆盖解压去掉了那条空操作的 agent 目录迁移

设备能力(这一版改动最大的一块)

  • 设备 Shell 全放开:白名单取消,守卫只剩一个空黑名单
  • 闸门改为按不可逆命令审批,工具收敛为 6 个常驻
  • 审批补 3 项:pm/cmd uninstall 与 android_admin(wipe)
  • 接线第二轮能力:输入法 / 管理员 / 通知 / 自动化 / 网络 / 投屏 + 无障碍可靠性
  • 五组能力改为默认全关——要用自己去「设置 → 设备能力」开
  • 取消 deferred 与 tool_search 依赖,全部工具由能力开关控制
  • 提示词里 16 个「已被合并入口转交」的细粒度工具改为 hidden,提示词降 49%
  • 工具耗时改用 pi 1.1.0 记录的执行时间
  • ADB 那句给出明确触发条件,不再是含糊的 "when needed"

修掉的设备侧 bug

  • 输入法:切到 PI 后打不了字而且回不去 —— 加了一颗「切换输入法」,警告缩成一句
  • VPN 停不掉;投屏入口被误报为不存在
  • 广播的端点清单少了 11 个 —— 补上,并加一道检查让它不能再漂
  • 全链路审查:补上 2 个死端点,消掉 1 处能力/门禁错配
  • 把波 1 的可靠性函数接出来(此前根本够不到)
  • 诊断端点被自己要诊断的前置挡住;「激活设备管理器」的按钮指向一个已不存在的页面
  • 全关时技能仍在显示、环境段仍被注入 —— 两处「关了没关干净」
  • 删除「管理员」能力组时留下的两处语法残骸 —— 闸门因此早已加载不了
  • 审批弹窗两个真 bug:「记住」的作用域,以及超时被说成拒绝
  • 拦住「超时后盲目重试」这个坏指令,拦截消息说清是哪个操作
  • scroll 降级、apps 枚举取并集、无障碍被系统关掉时提醒
  • 扩展里一个反引号让扩展加载不了;「已失效机制」的残留说法清干净
  • 去掉每次启动都弹的「屏幕」能力失效提醒

外观与交互

  • 排版/行距/字号三行取代原来的字号微调与消息密度 —— 四档预设 + 一次性读时迁移
  • 紧凑/舒适/宽松重新定标,舒适与宽松不再松垮;按第三版修订校正预设数值
  • 转录的消息级间距 —— 换人时更大,同一条消息内部更小(舒适档 24 → 20)
  • 表格:字号跟排版档、表头一层极淡底、横滑时右缘渐隐;单元格不再无限折行
  • 段间距不再加在文档开头 —— 这是用户气泡文字偏下的根因
  • 启动图标换成用户定的 pi 字标(矢量化);启动页不要徽章、单色层 = 图标本身、通知栏用图标本身
  • 用户气泡时间戳移出气泡;错误卡只改外形;扩展三张卡对齐 24dp 模块
  • 工具卡:折叠态两行并一行、删掉执行轨道与节点、卡片变矮变宽(缩进 11dp、内边距纵 7、页脚条件化、读数并进头行),有图保留专属排版
  • 工具卡折叠态和官方不一致的地方对齐官方(折叠态冻结)
  • 思考行改版:颜色条随展开延伸到正文末行、改定宽格(消掉流式时整行每秒重测导致的整屏乱跳)

修掉的外观/交互 bug

  • 工具卡展开/收起乱跳这一串(根因排查后一次修到位):
    • 跟随的 pin 只由「内容真的变了」的帧付账
    • 收起卡片时钉住读者点的那一行,缺口用正好差额的底部空白兜底
    • 连着收起两张卡时不再丢上一次的底部空白(band 记的是总缺口,不是本次位移)
    • 收起后被推开的内容不再原地空一帧
    • 展开/收起不再把视口抢到列表底部;收回后整条内容跳到另外半屏
    • 展开过的卡片滚出窗口再回来不再自己收起来
    • 展开/折叠的点击与拖动同等对待
  • 被拒/失败的 grep、find、ls 整卡消失(回归修复)
  • EditBlock 页脚的 remember key 收窄得过头
  • codemode 的实时调用清单根本到不了卡片;脚本与调用行接上高亮与分段上色
  • 插话/排队按 pi 一比一:去掉乐观回显、判据用引擎事实、用词统一到「引导 / 后续」
  • 日期分隔行自己给下沿留白(新模型下唯一漏的一行)
  • 思考耗时改定宽格;run 中间行不再每次绘制都构造一个 Path(性能)

会话与工作区

  • 导出的 JSONL 改成「会话文件本身,逐字节复制」 —— 一次导出同时给 HTML 与会话文件
  • 带参数的 /export <名字> 回到 pi 的分派(一比一):后缀决定写哪一种、只写那一份
  • 排队消息不再冒充已发出的消息,并补上官方式的待发区
  • 工作区文件菜单补上「用其他应用打开」与「导出到 Download」
  • 修掉导出改成流式时写错的一个扩展函数(那一版 APK 编不过)

设置与提示词

  • 提示词改走 pi 的官方文件;紧急停止收拢到一处
  • 只读读数覆盖全部四份提示词文件,形状与用词沿用资源读数
  • pi 的路径列表落到只读行的证据块里,值不再被截断
  • 运行时占用按已分配块算(不再虚高)
  • 修掉一个让上一版 CI 判红的类型可见性问题

本机可跑的检查(不插设备)

  • 纯逻辑 harness 清单被多删的 224 行放回来
  • 钉住「收起这一拍跟随不该掉」以及下一个 token 会收回末端
  • tool-state 的断言改成对契约断言,不再钉调用写法(CI 曾 FAIL X3)
  • date-separator 的 harness 补上覆盖面断言

顺带

  • 文档全面对齐当前实现:过期说法按代码改对,统一「引导 / 后续」用词,能力面账本核到当前基线
  • 删掉三个没有生产调用者的旧函数(连带钉着它们的 6 条断言)
  • 修 5 个编译错误(一直没人验过,CI 挂了两次)

构建信息

引擎 @earendil-works/pi-coding-agent 1.3.0
变体 sideload28(targetSdk 28,默认选这个)
架构 arm64
安装包 142,202,286 字节(135.6 MiB)
sha256 ec39288a9415caf6f45a14f2cf88c9619600ea780c6b308f7b55b7ad06f1c4b4
来源 CI run #410,commit 93945ea

与上一版同一个密钥签名,可以覆盖安装,升级不丢数据(升级也不再必须重建运行时)。