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

@hasak21hasak21 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-actionsgithub-actionsBot added the documentation Improvements or additions to documentation label Sep 1, 2026

@tt-a1itt-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 threadpackage.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,避免静默改写历史承诺。

@hasak21hasak21 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

Copy link
Copy Markdown
ContributorAuthor

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 freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentationImprovements 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

@hasak21@tt-a1i
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
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

@hasak21hasak21 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-actionsgithub-actionsBot added the documentation Improvements or additions to documentation label Sep 1, 2026

@tt-a1itt-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 threadpackage.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,避免静默改写历史承诺。

@hasak21hasak21 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

Copy link
Copy Markdown
ContributorAuthor

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 freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentationImprovements 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

@hasak21@tt-a1i
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
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

@hasak21hasak21 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-actionsgithub-actionsBot added the documentation Improvements or additions to documentation label Sep 1, 2026

@tt-a1itt-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 threadpackage.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,避免静默改写历史承诺。

@hasak21hasak21 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

Copy link
Copy Markdown
ContributorAuthor

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 freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentationImprovements 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

@hasak21@tt-a1i
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
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

@hasak21hasak21 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-actionsgithub-actionsBot added the documentation Improvements or additions to documentation label Sep 1, 2026

@tt-a1itt-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 threadpackage.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,避免静默改写历史承诺。

@hasak21hasak21 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

Copy link
Copy Markdown
ContributorAuthor

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 freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentationImprovements 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

@hasak21@tt-a1i
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
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

@hasak21hasak21 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-actionsgithub-actionsBot added the documentation Improvements or additions to documentation label Sep 1, 2026

@tt-a1itt-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 threadpackage.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,避免静默改写历史承诺。

@hasak21hasak21 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

Copy link
Copy Markdown
ContributorAuthor

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 freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentationImprovements 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

@hasak21@tt-a1i
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
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

@hasak21hasak21 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-actionsgithub-actionsBot added the documentation Improvements or additions to documentation label Sep 1, 2026

@tt-a1itt-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 threadpackage.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,避免静默改写历史承诺。

@hasak21hasak21 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

Copy link
Copy Markdown
ContributorAuthor

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 freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentationImprovements 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

@hasak21@tt-a1i
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
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

@hasak21hasak21 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-actionsgithub-actionsBot added the documentation Improvements or additions to documentation label Sep 1, 2026

@tt-a1itt-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 threadpackage.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,避免静默改写历史承诺。

@hasak21hasak21 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

Copy link
Copy Markdown
ContributorAuthor

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 freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentationImprovements 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

@hasak21@tt-a1i
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
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

@hasak21hasak21 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-actionsgithub-actionsBot added the documentation Improvements or additions to documentation label Sep 1, 2026

@tt-a1itt-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 threadpackage.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,避免静默改写历史承诺。

@hasak21hasak21 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

Copy link
Copy Markdown
ContributorAuthor

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 freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentationImprovements 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

@hasak21@tt-a1i