Skip to content

chore(deps): update and align supported Pi baseline to 0.84.4 (#328) - #330

Open
hasak21 wants to merge 2 commits into
openpi-dev:mainfrom
hasak21:chore/deps-supported-pi-baseline
Open

chore(deps): update and align supported Pi baseline to 0.84.4 (#328)#330
hasak21 wants to merge 2 commits into
openpi-dev:mainfrom
hasak21:chore/deps-supported-pi-baseline

Conversation

@hasak21

@hasak21 hasak21 commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Problem

Closes #328. Relates to #269.

OpenPI previously expressed conflicting compatibility boundaries across repository assets:

  • README.md documented support for Pi 0.84.1+;
  • package.json specified ^0.84.1 for Pi devDependencies;
  • bun.lock locked development and CI test environments to 0.84.1, while peerDependencies permitted 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) and v0.84.4 (tool choice).

Value

  • Unifies the verified development baseline and CI environment at Pi 0.84.4.
  • Unlocks downstream provider implementations (e.g. PR feat(ai-providers): add Antigravity and Cursor OAuth providers #269) by allowing them to rely directly on Pi 0.84.3+/0.84.4+ native message-history context estimation and compaction without inventing custom workarounds or falsifying token usage.
  • Retains OpenPI's core design stance: preserving Pi as the single source of truth for Session lifecycles.

Approach

  1. Manifest & Lockfile Floor: Updated @earendil-works/pi-ai, @earendil-works/pi-coding-agent, and @earendil-works/pi-tui devDependencies in package.json from ^0.84.1 to ^0.84.4, with bun.lock locked to the verified release @0.84.4.
  2. Published Peer Contract: Maintained peerDependencies: { ...: "*" } as standard for Pi packages without introducing an artificial runtime host-rejection layer.
  3. Documentation Sync: Updated the Pi version badge and requirements in README.md to Pi 0.84.4+.
  4. Decision Record: Added 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 needed
  • bun run lint -> 280 files checked, 0 errors, 0 warnings
  • bun 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

  • User-visible behavior: None directly. Users on Pi 0.84.4+ receive consistent native context estimation.
  • Model-visible context/tools: None.
  • Runtime/lifecycle: Enables Pi-native message-history compaction for providers with zero or output-only usage.
  • Persisted config/data: None. Backward compatible with existing session records.
  • Compatibility or risk: Low. Baseline aligned to verified Pi 0.84.4 release.

@github-actions github-actions Bot added the documentation Improvements or additions to documentation label Sep 1, 2026

@tt-a1i tt-a1i left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

复审 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。

Comment thread package.json Outdated
"@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",

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[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

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[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+

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[P2] OpenPI 0.1.0+ 会把新下限追溯到已经发布、当时仍宣称支持 Pi 0.84.1 的历史版本。请把适用边界限定到本次实际发布版本或精确 source revision,避免静默改写历史承诺。

@hasak21 hasak21 changed the title chore(deps): define and enforce the supported Pi baseline (#328) chore(deps): update and align supported Pi baseline to 0.84.4 (#328) Sep 1, 2026
@hasak21

hasak21 commented Sep 1, 2026

Copy link
Copy Markdown
Contributor Author

Thanks for the thorough review and clear boundary guidance! @tt-a1i

I have updated the branch with commit 4dabc1d, addressing all review items:

  1. Declared & Verified Baseline Alignment (0.84.4):
    • Aligned the manifest floor (package.json devDependencies to ^0.84.4), lockfile (bun.lock @ 0.84.4), README (Pi 0.84.4+), and Decision record to Pi 0.84.4+, ensuring the declared baseline matches our CI-verified lockfile evidence without unproven sub-version gaps.
  2. Published Peer Contract & Enforcement Boundary:
    • Clarified in Decision 0003 and PR metadata that published packages retain standard peerDependencies: { ...: "*" } without inventing an un-Pi-native runtime rejection gate.
    • Reframed the PR scope from "enforcement" to updating and aligning the verified development/CI baseline.
  3. Decision 0003 Metadata & Scope:
    • Updated decision-status: accepted to reflect adoption upon merge.
    • Constrained applies-to: OpenPI development and CI baseline from this Decision forward to avoid retroactively rewriting historical commitments.
  4. Validation:
    • bun run check (config-contract, discipline, format, lint, typecheck) -> passed.
    • bun run test (Node 22) -> 1108 Node tests passed, 1 platform skip; Vitest 30/30 passed (total 1138 passed tests, 0 failures).

Please take another look when convenient!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

chore(deps): define and enforce the supported Pi baseline

2 participants