Skip to content

PI 0.1.0(pi 1.0.0)

Choose a tag to compare

@heikeyangle-code heikeyangle-code released this 01 Oct 15:24

引擎 pi 1.0.0(上游 2026-10-01),App 版本 0.1.0。

下载哪个

文件 targetSdk 说明
pi-android-0.1.0-sideload28-arm64.apk 28 默认选这个。 用 Android 10 以前那套沙箱规则,系统权限最少,行为最可预期
pi-android-0.1.0-modern36-arm64.apk 36 面向新系统行为变更的版本,需要真机验证;只在 28 那个装不上或行为异常时才试

两个包用同一套密钥签名,可以互相覆盖安装,升级不丢数据。要求 Android 8.0 (API 26) 以上,arm64。

首次启动

会解包约 117 MiB 的运行时(APK 本身约 136 MB,大部分就是这部分),比之后每次启动慢。
之后只在载荷真的变化时才重新解包。/root/.pi/agent(会话、凭证、settings)与工作区不在载荷里,升级保留。

校验

0847f020c2688f7cedb0c0a7871d8e886555e7d352628e9eaaaa0e3f64dfff63  pi-android-0.1.0-sideload28-arm64.apk
a15133ade5bead70a1ace0638e48b704702eb724b8b9602cc2420f9044549509  pi-android-0.1.0-modern36-arm64.apk

这一版有什么

引擎从 pi 0.87.1 一路到 1.0.0(中途 0.99.0 是一次性大版本:codemode、MCP、虚拟模型、主题系统重做)。
1.0.0 这一步对 App 几乎没提要求:RPC 线、内置主题色值、会话格式、模型目录格式、工具结果文本、
设置键集合、依赖集全部零变化。逐条判据在仓库 tools/fetch-runtime.mjs 的 PI_VERSION 上方那段
审计结论;tools/pi-contract.mjs 是 CI 的 pi contract job,每次对着钉住的引擎重新核一遍。

App 侧这一轮还修了三个:

  1. 升级不再必须「重建运行时」。 覆盖解压时如果某个路径在新载荷里必须是目录、旧树里却是文件或
    断掉的软链,mkdirs() 会静默失败、写文件报 ENOENT,重试永远停在同一处,只有重建能过(代价是
    删掉你装在客体里的东西)。现在解压器会先把这类节点清掉,再写。装上这个包之后,那一次升级应该
    直接过,不用再点重建。
  2. 没有解包可做的启动不再闪一块启动页。 以前「运行时已是最新」也会占满一屏,现在只有真要解包
    或出错时才出现。
  3. 「显示时间戳」真的管事了,且默认关。 以前它只管日期分隔,气泡右下角的时间是无条件画的,
    所以关了看着像没生效。现在它同时管气泡时间、通知行时间和日期分隔,默认关。