chore(deps): update and align supported Pi baseline to 0.84.4 (#328) - #330
chore(deps): update and align supported Pi baseline to 0.84.4 (#328)#330hasak21 wants to merge 2 commits into
Conversation
tt-a1i
left a comment
There was a problem hiding this comment.
复审 exact head eae25844f02dec3a372852ff042757ed5b933e6d。这个 PR 解决的是 Pi 版本基线漂移,价值在于让 provider 直接依赖 Pi 原生 compaction;方法是同步 devDependencies、lockfile、README 和 Decision。方向成立,但当前“enforce 0.84.3+”尚未被证据和发布合同证明。
Standards
2 项:Decision 仍是 proposed,却已经作为官方约束实施;适用范围又追溯到未被本 PR 改变的 OpenPI 0.1.0+。
Spec
2 项:发布包的 Pi peers 仍为 *,Pi managed install 还会 omit/忽略 peer 约束,因此旧 host 仍能安装加载;CI 只验证 lockfile 的 0.84.4,没有验证所声明的最低 0.84.3。
最小处理建议:先准确区分“声明/开发验证的支持下限”和“安装时强制拒绝旧宿主”;若没有 Pi-native 的宿主版本门,不要为了标题临时造一层。另补一个有界的 0.84.3 验证,或把已验证下限写成 0.84.4。当前 CI 全绿只能证明锁定版本 0.84.4。
| "@earendil-works/pi-ai": "^0.84.1", | ||
| "@earendil-works/pi-coding-agent": "^0.84.1", | ||
| "@earendil-works/pi-tui": "^0.84.1", | ||
| "@earendil-works/pi-ai": "^0.84.3", |
There was a problem hiding this comment.
[P1] 这里只提高 devDependency,三个 Pi peer 仍是 *,现有 package-contract test 也固定了这个合同。当前 PR 因而只约束开发/CI;消费者使用 Pi 0.84.1 仍可安装和加载。Pi 的 managed npm 安装还使用 --omit=peer / --legacy-peer-deps,所以不要仅靠 peer range 就声称运行时拒绝。请把“enforce / published packages coherent”收窄为真实可证明的支持边界;只有存在受支持的 Pi-native 版本门时才声称强制。
| @@ -0,0 +1,58 @@ | |||
| --- | |||
| decision-status: proposed | |||
There was a problem hiding this comment.
[P2] 本记录仍是 proposed,但同一 PR 已修改 README、manifest 和 lockfile 来执行它。docs/decisions/README.md 明确 proposed 不具权威性、accepted 才采用。合并采用时应标为 accepted;否则保持 proposed 并拆开实施。
| decision-status: proposed | ||
| created: 2026-09-01 | ||
| last-reviewed: 2026-09-01 | ||
| applies-to: Pi 0.84.3+; OpenPI 0.1.0+ |
There was a problem hiding this comment.
[P2] OpenPI 0.1.0+ 会把新下限追溯到已经发布、当时仍宣称支持 Pi 0.84.1 的历史版本。请把适用边界限定到本次实际发布版本或精确 source revision,避免静默改写历史承诺。
|
Thanks for the thorough review and clear boundary guidance! @tt-a1i I have updated the branch with commit
Please take another look when convenient! |
Problem
Closes #328. Relates to #269.
OpenPI previously expressed conflicting compatibility boundaries across repository assets:
README.mddocumented support for Pi 0.84.1+;package.jsonspecified^0.84.1for Pi devDependencies;bun.locklocked development and CI test environments to0.84.1, whilepeerDependenciespermitted any compatible version via*.This baseline drift created behavioral divergence between fresh installations and frozen-lock CI environments. Specifically, upstream Pi introduced critical lifecycle fixes in
v0.84.3(compaction without token usage) andv0.84.4(tool choice).Value
Approach
@earendil-works/pi-ai,@earendil-works/pi-coding-agent, and@earendil-works/pi-tuidevDependencies inpackage.jsonfrom^0.84.1to^0.84.4, withbun.locklocked to the verified release@0.84.4.peerDependencies: { ...: "*" }as standard for Pi packages without introducing an artificial runtime host-rejection layer.README.mdtoPi 0.84.4+.docs/decisions/0003-supported-pi-baseline.md(status:accepted, applies from this Decision forward) documenting the baseline decision, factual boundaries, and rejected alternatives.Validation
bun run check:config-contract-> passed (14 persisted fields)bun run check:discipline-> passed (12 append-only rows)bun run format:check-> 280 files checked, no fixes neededbun run lint-> 280 files checked, 0 errors, 0 warningsbun run typecheck-> passed (tsc --noEmit)bun run test(Node 22) -> 1108 passed, 1 platform skip; Vitest 30/30 passed (total 1138 passed tests, 0 failures)Impact