Skip to content

chore(scripts): sweep remaining yarn references to pnpm (post-#886 migration)#1872

Merged
senamakel merged 1 commit into
tinyhumansai:mainfrom
aregmii:chore/scripts-yarn-to-pnpm
May 15, 2026
Merged

chore(scripts): sweep remaining yarn references to pnpm (post-#886 migration)#1872
senamakel merged 1 commit into
tinyhumansai:mainfrom
aregmii:chore/scripts-yarn-to-pnpm

Conversation

@aregmii
Copy link
Copy Markdown
Contributor

@aregmii aregmii commented May 15, 2026

Summary

Replaces all twelve yarn substrings across six scripts under scripts/ with pnpm, so they actually run on a clean contributor machine (pnpm is the documented prereq; yarn isn't installed) and stop pointing new contributors at the wrong tool.

Problem

grep -rn "yarn" scripts/ returns twelve substrings across six files post-migration:

  • Active invocations (fail at runtime): scripts/worktree-bootstrap.sh (4), scripts/test-ci-local.sh (5), scripts/release/local-dmg-version-dry-run.sh (1).
  • Prose mentions (misleading): scripts/debug-composio-trigger.mjs (error message), scripts/tools-generator/openClaw-formatter.js (auto-generated doc footer), scripts/debug-agent-prompts.sh (header comment).

All flags and subcommands map 1:1 to pnpm (--frozen-lockfile, --target, --bundles, --config, tauri *, install, build, project scripts).

Solution

Single search-and-replace sed -i '' 's/yarn /pnpm /g' across the six files. Verified no yarn substring is immediately followed by a non-space character (which would mean yarn is part of a longer word that would get clobbered). Net diff: 6 files, +12 -12.

Submission Checklist

  • N/A: shell scripts; the existing tests are the scripts themselves running, which this change does not exercise in CI but is the entire point of the PR (they'd run on a contributor machine, where they previously failed at the yarn invocation).
  • N/A: shell scripts not covered by Vitest or cargo-llvm-cov.
  • N/A: no feature rows affected.
  • N/A: no feature IDs touched.
  • N/A: no external dependencies introduced; pnpm is already the required tool.
  • N/A: no release-cut surfaces touched (release builds use the macOS signing pipeline, separate from scripts/release/local-dmg-version-dry-run.sh which is a developer dry-run helper).
  • Linked issue closed via Closes #1871 in the ## Related section.

Impact

Fresh contributors who try bash scripts/worktree-bootstrap.sh or bash scripts/test-ci-local.sh --manual no longer hit yarn: command not found. The auto-generated tools.md footer (via scripts/tools-generator/openClaw-formatter.js) now points readers at the right command.

Related


AI Authored PR Metadata (required for Codex/Linear PRs)

N/A: Human-authored, AI-assisted drafting.

Linear Issue

  • Key: N/A
  • URL: N/A

Commit & Branch

  • Branch: chore/scripts-yarn-to-pnpm
  • Commit SHA: fa1628c7

Validation Run

  • N/A: no JS/TS changed (only shell scripts and a .mjs error-message string).
  • N/A: no TS types changed.
  • N/A: no TS to compile.
  • N/A: no Rust changed.
  • N/A: no Tauri code changed.

Validation Blocked

  • command: pre-push hook pnpm rust:check (cargo check --manifest-path src-tauri/Cargo.toml) may still exit 101 on upstream main (inherited failure documented in fix(scripts): codesign setup pops keychain dialog on every build + dr… #1786). This branch only edits shell scripts so the failure cannot be caused by this change.
  • error: (as above)
  • impact: Pushed with --no-verify per CLAUDE.md guidance for hook failures unrelated to the change.

Behavior Changes

  • Intended behavior change: the six scripts now invoke pnpm instead of yarn, so they run on a documented-prereq machine.
  • User-visible effect: developers running worktree-bootstrap.sh, test-ci-local.sh, or the local DMG dry-run no longer need a non-documented yarn install; the auto-generated tools.md footer no longer points readers at the wrong tool.

Parity Contract

  • Legacy behavior preserved: Yes for the side that worked. The pnpm invocations are 1:1 substitutes for the yarn invocations (same flags, same subcommands). The side that didn't work (anyone without yarn) now works.
  • Guard/fallback/dispatch parity checks: N/A: no dispatch path touched.

Duplicate / Superseded PR Handling

  • Duplicate PR(s): None. Verified at branch-push time via the GitHub API: 28 open PRs scanned, zero touch any of the six files in this diff.
  • Canonical PR: This one.
  • Resolution: N/A.

Summary by CodeRabbit

  • Chores
    • Updated build and development scripts to use pnpm as the package manager instead of yarn across multiple build workflows, including local development, CI testing, and release processes.

Review Change Stack

…nsai#886 migration)

The yarn → pnpm migration in tinyhumansai#886 left stale `yarn` invocations in six
scripts. Three actively shell out to `yarn`, which fails on every fresh
contributor's machine since `yarn` isn't part of the documented prereq
set (CONTRIBUTING.md only mentions pnpm). The other three are misleading
string mentions in error messages, comments, or auto-generated docs.

Active invocations (would fail at runtime):
- scripts/worktree-bootstrap.sh — 4 calls (install, core:stage,
  tauri:ensure, dev:app)
- scripts/test-ci-local.sh — 5 calls (install --frozen-lockfile ×2,
  build ×2, tauri build)
- scripts/release/local-dmg-version-dry-run.sh — 1 call (tauri build)

Prose mentions (misleading, point new contributors at the wrong tool):
- scripts/debug-composio-trigger.mjs — `yarn install` in the
  "socket.io-client missing" error hint.
- scripts/tools-generator/openClaw-formatter.js — `yarn tools:generate`
  in the auto-generated tools.md footer.
- scripts/debug-agent-prompts.sh — `yarn tauri dev` in a header comment.

All 12 substitutions are 1:1 pnpm-compatible (same flag names — pnpm
supports `--frozen-lockfile` — same subcommand structure for `tauri *`,
`install`, `build`, custom scripts like `core:stage` / `tauri:ensure` /
`dev:app` / `tools:generate`).

Net diff: 6 files, +12 −12.

No behavior change for the scripts that worked (they didn't, on a
pnpm-only machine). The active scripts now actually run; the prose
mentions now point at the right tool.
@aregmii aregmii requested a review from a team May 15, 2026 23:09
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 15, 2026

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 1f447a09-9b7f-409b-a1c0-ac8ed43b72eb

📥 Commits

Reviewing files that changed from the base of the PR and between 325a81b and fa1628c.

📒 Files selected for processing (6)
  • scripts/debug-agent-prompts.sh
  • scripts/debug-composio-trigger.mjs
  • scripts/release/local-dmg-version-dry-run.sh
  • scripts/test-ci-local.sh
  • scripts/tools-generator/openClaw-formatter.js
  • scripts/worktree-bootstrap.sh

📝 Walkthrough

Walkthrough

Six script files are updated to replace all yarn command invocations with pnpm equivalents. Changes span development setup, debugging, release builds, and CI workflows, with no logic or flag changes—only package manager substitution.

Changes

yarn to pnpm script migration

Layer / File(s) Summary
Informational string updates in debug and tools scripts
scripts/debug-agent-prompts.sh, scripts/debug-composio-trigger.mjs, scripts/tools-generator/openClaw-formatter.js, scripts/worktree-bootstrap.sh
Comments, error messages, and auto-generated footers reference pnpm instead of yarn to guide contributors and error reporters toward the correct package manager.
Development setup and bootstrap commands
scripts/worktree-bootstrap.sh
Core staging, Node dependency installation, and tauri-cli setup use pnpm in place of yarn commands, enabling the full bootstrap workflow on a pnpm-only system.
Release and CI build commands
scripts/release/local-dmg-version-dry-run.sh, scripts/test-ci-local.sh
DMG and aarch64 macOS builds invoke pnpm tauri build instead of yarn tauri build, with all flags (--bundles, --target) and context (subshell, temporary config) preserved.

🎯 1 (Trivial) | ⏱️ ~3 minutes

A rabbit hops through six scripts with care,
Where yarn once danced, pnpm thrives there.
Commands replace, yet logic stays true—
Build systems shine in a fresh pnpm hue. 🐰✨

Warning

There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.

🔧 ESLint

If the error stems from missing dependencies, add them to the package.json file. For unrecoverable errors (e.g., due to private dependencies), disable the tool in the CodeRabbit configuration.

ESLint skipped: no ESLint configuration detected in root package.json. To enable, add eslint to devDependencies.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@senamakel senamakel merged commit 3dfd2b2 into tinyhumansai:main May 15, 2026
17 of 19 checks passed
@senamakel
Copy link
Copy Markdown
Member

well done

@aregmii aregmii deleted the chore/scripts-yarn-to-pnpm branch May 16, 2026 02:19
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.

chore(scripts): six scripts still reference yarn after the pnpm migration (#886)

2 participants