Skip to content

use pnpm for Desktop Electron App#7679

Merged
lifeizhou-ap merged 9 commits intomainfrom
lifei/pnpm
Mar 11, 2026
Merged

use pnpm for Desktop Electron App#7679
lifeizhou-ap merged 9 commits intomainfrom
lifei/pnpm

Conversation

@lifeizhou-ap
Copy link
Copy Markdown
Collaborator

@lifeizhou-ap lifeizhou-ap commented Mar 5, 2026

Summary

Followup PR for #7676

This is an existing npm bug that it does not include the cross platform packages with npm install.

With pnpm, it supports the cross platform packages.

Note: I found acp and text in ui now is a workspace. Maybe we can move the desktop in the workspace later and use pnpm for the workspace too

Type of Change

  • Feature
  • Bug fix
  • Refactor / Code quality
  • Performance improvement
  • Documentation
  • Tests
  • Security fix
  • Build / Release
  • Other (specify below)

AI Assistance

  • This PR was created or reviewed with AI assistance

Testing

Testing the scripts in justfile. Will also check the binary generated by canary workflow after merging to main

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 2ffef053ee

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

# Update version in package.json
cd ui/desktop
npm version ${{ inputs.version }} --no-git-tag-version --allow-same-version
pnpm version ${{ inputs.version }} --no-git-tag-version --allow-same-version
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Activate Hermit before running pnpm in version bump step

When inputs.version is provided, this step calls pnpm version before the workflow activates Hermit (the toolchain setup happens later in the Activate hermit and set CARGO_HOME step), so release/tag builds can fail immediately with pnpm: command not found on runners that do not have pnpm preinstalled. This makes the Linux desktop bundle path depend on runner image state instead of the repo-managed toolchain.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

added source ./bin/activate-hermit

* main:
  chore(deps): bump svgo from 3.3.2 to 3.3.3 in /documentation (#7667)
  fix: only add viewable channels to bot context (#7678)
  chore: added a recipe to help identify high risk change prs for testing (#7651)
  fix: make sure platform binary exists (#7676)
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 227e9cf082

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread .github/workflows/ci.yml

- name: Install Dependencies
run: source ../../bin/activate-hermit && npm ci
run: source ../../bin/activate-hermit && pnpm install --frozen-lockfile
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Validate the pnpm lockfile in desktop CI

The desktop-lint job now installs dependencies from pnpm-lock.yaml (pnpm install --frozen-lockfile), but the guard step still runs check-lockfile-platforms.sh, which is hardcoded to inspect package-lock.json and npm-specific paths (ui/desktop/scripts/check-lockfile-platforms.sh:2-26). This means CI can report the lockfile check as healthy while the actual lockfile used in builds (pnpm-lock.yaml) is never validated, so cross-platform dependency regressions can slip through until later platform-specific bundle jobs fail.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

removed ui/desktop/scripts/check-lockfile-platforms.sh as it is no longer required

@lifeizhou-ap lifeizhou-ap marked this pull request as draft March 11, 2026 07:46
* main: (45 commits)
  fix: resolve {{ recipe_dir }} in nested sub-recipe paths during secret discovery (#7797)
  Add @DOsinga as CODEOWNER for documentation (#7799)
  feat: Add summarize tool for deterministic reads (#7054)
  fix(api): use camelCase in CallToolResponse and add type discriminators to ContentBlock (#7487)
  feat: ACP providers for claude code and codex (#6605)
  chore(deps): bump express-rate-limit from 8.2.1 to 8.3.0 in /evals/open-model-gym/mcp-harness (#7703)
  feat(openai): capture reasoning summaries from responses API (#7375)
  Fix some dependencies (#7794)
  fix: improve keyring availability error detection (#7766)
  feat: add MiniMax provider with Anthropic-compatible API (#7640)
  feat: add Tensorix as a declarative provider (#7712)
  fix(security): remove insecure default secret from GOOSE_EXTERNAL_BACKEND (#7783)
  refactor: Convert Tanzu provider to declarative JSON config (#7124)
  replaces https://github.com/block/goose/pull/7340/changes (#7786)
  feat(summon): make skill supporting files individually loadable via load() (#7583)
  Keep toast open on failed extension (#7771)
  fix(ui-desktop): unify path resolution around GOOSE_PATH_ROOT (#7335)
  fix: pass OAuth scopes to DCR and extract granted_scopes from token response (#7571)
  fix: write to real file if config.yaml is symlink (#7669)
  fix: preserve pairings when stopping gateway (#7733)
  ...
@lifeizhou-ap lifeizhou-ap changed the title use pnpm use pnpm for Desktop Electron App Mar 11, 2026
@lifeizhou-ap lifeizhou-ap marked this pull request as ready for review March 11, 2026 09:15
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 9b0f3a65fb

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread ui/desktop/package.json
"engines": {
"node": "^24.10.0",
"npm": "^11.6.1"
"pnpm": ">=10.30.0"
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Align pnpm engine floor with provisioned pnpm version

After this change all desktop workflows and local commands run pnpm install --frozen-lockfile, and pnpm hard-fails when engines.pnpm is unmet (ERR_PNPM_UNSUPPORTED_ENGINE). Setting the floor to >=10.30.0 here can break installs on environments that still resolve an older pnpm@10.x (for example via existing tool caches), turning previously-working build/lint/test paths into immediate failures. Please either pin/provision pnpm to a guaranteed >=10.30.0 everywhere or lower this constraint to match the actual toolchain you ship.

Useful? React with 👍 / 👎.

@alexhancock
Copy link
Copy Markdown
Collaborator

I found acp and text in ui now is a workspace. Maybe we can move the desktop in the workspace later and use pnpm for the workspace too

yes! I had imagined we'd do something like this as well. the desktop will soon depend on the ui/acp package for accessing goose-acp

@alexhancock alexhancock self-requested a review March 11, 2026 11:06
@lifeizhou-ap lifeizhou-ap added this pull request to the merge queue Mar 11, 2026
Merged via the queue into main with commit 02bc7ed Mar 11, 2026
27 of 28 checks passed
@lifeizhou-ap lifeizhou-ap deleted the lifei/pnpm branch March 11, 2026 12:52
lifeizhou-ap added a commit that referenced this pull request Mar 11, 2026
* main:
  use pnpm for Desktop Electron App (#7679)
  use constant-time comparison for auth token validation (#7730)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants