Repository navigation
Update Pi CLI default to 1.4.0 - #71899
Conversation
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
There was a problem hiding this comment.
🔵 Needs a closer look
The available evidence does not independently establish Pi 1.4.0 CLI, SDK, and extension compatibility across the workflow rollout.
1 open issue
What changed in this PR
Updates gh-aw’s default Pi runtime from 1.3.0 to 1.4.0, while retaining the existing Copilot version and checksum pending independent authentication.
Changes:
- Bumps the Pi default and its expected-version test.
- Adds regression assertions for the installation pin and 1.4.0 runtime acceptance, including maximum effort.
- Refreshes Pi installation pins and version metadata in generated workflow locks.
| File | Description |
|---|---|
pkg/workflow/pi_engine_test.go |
Asserts installation uses the default Pi pin. |
pkg/constants/version_constants.go |
Sets the Pi default to 1.4.0. |
pkg/constants/version_constants_test.go |
Updates the expected Pi default. |
actions/setup/js/pi_runtime.test.cjs |
Adds 1.4.0 version and maximum-effort cases. |
.github/workflows/weekly-safe-outputs-spec-review.lock.yml |
Updates Pi installation and metadata. |
.github/workflows/weekly-network-domains-audit.lock.yml |
Updates Pi installation and metadata. |
.github/workflows/weekly-issue-summary.lock.yml |
Updates Pi installation and metadata. |
.github/workflows/video-analyzer.lock.yml |
Updates Pi installation and metadata. |
.github/workflows/terminal-stylist.lock.yml |
Updates Pi installation and metadata. |
.github/workflows/super-linter.lock.yml |
Updates Pi while retaining the Copilot detection pin. |
.github/workflows/sub-issue-closer.lock.yml |
Updates Pi installations and metadata. |
.github/workflows/smoke-test-tools.lock.yml |
Uses Pi 1.4.0 for container smoke testing. |
.github/workflows/smoke-service-ports.lock.yml |
Uses Pi 1.4.0 for service-port smoke testing. |
.github/workflows/smoke-pi.lock.yml |
Uses Pi 1.4.0 for the main Pi smoke test. |
.github/workflows/smoke-pi-sub-agents.lock.yml |
Uses Pi 1.4.0 for sub-agent smoke testing. |
.github/workflows/smoke-pi-routed.lock.yml |
Uses Pi 1.4.0 for routed smoke testing. |
.github/workflows/smoke-pi-routed-claude.lock.yml |
Uses Pi 1.4.0 for routed Claude smoke testing. |
.github/workflows/smoke-pi-auto.lock.yml |
Uses Pi 1.4.0 for automatic-model smoke testing. |
.github/workflows/smoke-azure-pi.lock.yml |
Uses Pi 1.4.0 for Azure smoke testing. |
.github/workflows/research.lock.yml |
Updates Pi installations and metadata. |
.github/workflows/repo-tree-map.lock.yml |
Updates Pi installation and metadata. |
.github/workflows/refactoring-cadence.lock.yml |
Updates Pi installation and metadata. |
.github/workflows/pr-sous-chef.lock.yml |
Updates Pi installations and metadata. |
.github/workflows/necromancer.lock.yml |
Updates Pi installations and metadata. |
.github/workflows/issue-monster.lock.yml |
Updates Pi installations and metadata. |
.github/workflows/hippo-embed.lock.yml |
Updates Pi installation and metadata. |
.github/workflows/engine-conformance-pi.lock.yml |
Uses Pi 1.4.0 for engine conformance checks. |
.github/workflows/duplicate-code-detector.lock.yml |
Updates Pi installations and metadata. |
.github/workflows/dev.lock.yml |
Uses Pi 1.4.0 for development smoke testing. |
.github/workflows/design-decision-gate.lock.yml |
Updates Pi installations and metadata. |
.github/workflows/daily-multi-device-docs-tester.lock.yml |
Updates Pi installations and metadata. |
.github/workflows/daily-credit-limit-test.lock.yml |
Uses Pi 1.4.0 for credit-limit testing. |
.github/workflows/cli-version-checker.lock.yml |
Updates Pi installations and metadata. |
.github/workflows/ai-moderator.lock.yml |
Updates Pi installations and metadata. |
Review effort: Max
|
|
||
| // DefaultPiVersion is the default version of the Pi CLI | ||
| const DefaultPiVersion Version = "1.3.0" | ||
| const DefaultPiVersion Version = "1.4.0" |
|
/smoke-pi |
|
🚀 Smoke Pi MISSION COMPLETE! Pi delivered. 🥧 Smoke PiOutcome: The agent completed and reported no action. A no-op output alone does not verify that all required work was completed or that publication was possible. Agent messages are omitted from this comment. The category uses structured run status, not interpretation of agent prose.
|
|
✅ Test Quality Sentinel completed test quality analysis. Test Quality SentinelOutcome: The agent completed and reported no action. A no-op output alone does not verify that all required work was completed or that publication was possible. Agent messages are omitted from this comment. The category uses structured run status, not interpretation of agent prose.
|
|
✅ Ponytail Reviewer completed successfully! Ponytail ReviewerOutcome: The agent completed and reported no action. A no-op output alone does not verify that all required work was completed or that publication was possible. Agent messages are omitted from this comment. The category uses structured run status, not interpretation of agent prose.
|
|
✅ PR Code Quality Reviewer completed the code quality review.
|
|
✅ Design Decision Gate 🏗️ completed the design decision gate check. See the comment below for the result and any generated ADR draft. Design Decision Gate 🏗️Outcome: The agent completed and reported no action. A no-op output alone does not verify that all required work was completed or that publication was possible. Agent messages are omitted from this comment. The category uses structured run status, not interpretation of agent prose.
|
|
🧠 Matt Pocock Skills Reviewer has completed the skills-based review. ✅
|
There was a problem hiding this comment.
Skills-Based Review ð�§
Applied /diagnosing-bugs and /grill-with-docs to this version-bump PR — no blocking issues, one doc follow-up already flagged.
� Key Themes & Highlights
Key Themes
- Regression coverage (
/diagnosing-bugs): Good —pi_runtime.test.cjsnow asserts1.4.0is accepted for both the min-version and max-effort checks, andpi_engine_test.goasserts the installed npm package pin matchesDefaultPiVersion. This directly covers the regression surface the version bump touches. - Docs consistency (
/grill-with-docs):docs/src/content/docs/reference/engines/pi.md:17still states the default Pi version is 1.3.0, which is now stale relative to the new 1.4.0 default. This was already flagged by an existing review comment onpkg/constants/version_constants.go— not duplicating it here, but it should be addressed before merge since it is user-facing documentation that will mislead readers about the installed default. - Scope: The 38 regenerated
.lock.ymlfiles are mechanical output ofgh aw compiledriven by the constant bump — no manual review needed there, consistent with the PR description.
Positive Highlights
- Constant, version-constants test, and runtime-check test all updated together — no partial or inconsistent bump.
- Copilot CLI version was correctly left untouched since its new pin could not be independently authenticated, per the PR description — good discipline not to bundle an unverified change.
Note: skill selection followed the standard mapping for a version-bump/config-change PR; no pr-triage call was needed given the narrow, well-defined diff.
🧠 Reviewed using Matt Pocock's skills by Matt Pocock Skills Reviewer · copilot · sonnet50 · ~18 AIC · ⌖ ~15 AIC · ⊞ 10.2K
Comment /matt to run again
Comment MemoryPeek at saved memory (pr-code-quality-reviewer)Note This comment is managed by comment memory.Expand the saved memory block to view or edit the persistent context for this thread.
|
There was a problem hiding this comment.
Request changes
The default pin is inconsistent with the checked-in compiled workflows: locks still install Pi 1.3.0 while the compiler constant is 1.4.0. This must be regenerated and verified before merge. The added installation test also shares the production constant, so it cannot independently catch pin drift.
Details
- Posted an inline comment on
pkg/constants/version_constants.go:66for the stale lock files. - Posted an inline comment on
pkg/workflow/pi_engine_test.go:236for the non-independent assertion. - Review was static; no tests or builds were run.
🔎 Code quality review by PR Code Quality Reviewer · copilot · gpt50 · ~3 AIC · ⌖ ~1 AIC · ⊞ 1.6K
Comment /review to run again
|
|
||
| // DefaultPiVersion is the default version of the Pi CLI | ||
| const DefaultPiVersion Version = "1.3.0" | ||
| const DefaultPiVersion Version = "1.4.0" |
There was a problem hiding this comment.
Changing the default to 1.4.0 without updating the generated workflow locks leaves the repositorys checked-in workflows installing Pi 1.3.0, so users running those locks do not receive the version this constant promises.
💡 Why this blocks the upgrade
The checked-in .lock.yml files still contain @earendil-works/pi-coding-agent@1.3.0 (for example smoke-pi.lock.yml), while the compiler now emits 1.4.0. Regenerate and commit all affected locks, then verify no Pi lock retains 1.3.0; otherwise compiled-workflow drift and inconsistent runtime behavior are guaranteed.
| rendered.WriteString(strings.Join(step, "\n")) | ||
| rendered.WriteString("\n") | ||
| } | ||
| assert.Contains(t, rendered.String(), "npm install --ignore-scripts -g @earendil-works/pi-coding-agent@"+string(constants.DefaultPiVersion)) |
There was a problem hiding this comment.
This assertion derives the expected version from constants.DefaultPiVersion, so it cannot detect a mismatched installation pin: any implementation that changes the constant and the emitted command together will still pass.
💡 Make the regression test independent
The new test is supposed to protect the generated install command during a version bump, but it only verifies that the command agrees with the same constant used to generate it. Assert the reviewed literal @earendil-works/pi-coding-agent@1.4.0 (and deliberately update it when reviewing a future release), or add a fixture that verifies compiled output, so lock/compiler drift cannot be masked by a shared source of truth.
|
🎉 This pull request is included in a new release. Release: |

The CLI pin check identified Copilot 1.0.103 and Pi 1.4.0, requiring independent checksum authentication for Copilot and compatibility review for Pi.