npm-installed wp-studio silently shadows the app's studio shim, allowing indefinite version drift
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 45/100
- Issue type
- Bug
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- electron, nodejs, typescript
Research direction
Start by comparing the npm studio entry in the Node bin directory with /usr/local/bin/studio, ~/.local/bin/studio, and the app's studio-cli.sh. Review the Settings → Studio CLI for terminal toggle and the npm installation path. Done means app-managed shims are not silently shadowed, or a clear version-conflict warning is shown.
Written by the indexing model from the issue text.
Description
Studio.app installs a studio shim at /usr/local/bin/studio and ~/.local/bin/studio, both pointing at Studio.app/Contents/Resources/bin/studio-cli.sh. That shim uses the app's bundled Node and CLI, so it tracks the app automatically.
Installing the CLI from npm instead puts studio in the Node bin directory, which typically sits earlier on PATH (nvm, Homebrew). From then on, studio in a terminal is the npm copy — and the npm copy does not auto-update. It only prints an "Update available" banner.
I hit this with the npm CLI at 1.11.0 while Studio.app had reached 1.21.0 — ten minor versions apart, with no indication that the studio I was typing wasn't the one the app maintains.
Why this matters beyond tidiness: each install bundles its own PHP runtime and its own copy of sqlite-database-integration (~25 sqlite-related paths and ~30 PHP artifacts in each). Both drive the same site directories and the same .ht.sqlite files. A user in this state has two different SQLite drivers writing the same databases, depending on whether they clicked in the app or typed in a terminal.
Reproduce
- Install Studio.app.
npm install -g wp-studiowhich -a studio— the npm path wins:
~/.nvm/versions/node/v24.14.0/bin/studio -> npm wp-studio
~/.local/bin/studio -> Studio.app/.../studio-cli.sh
/usr/local/bin/studio -> Studio.app/.../studio-cli.sh
- Let Studio.app auto-update. The npm copy stays behind indefinitely.
Expected
Either the npm package refuses to shadow an app-managed shim, or studio warns when the CLI and app versions differ, or the Settings → Studio CLI for terminal toggle detects and reports the conflict.
Actual
Silent shadowing and unbounded version drift.
Environment
macOS on Apple M2, Studio.app 1.21.0, wp-studio 1.11.0 from npm, sqlite-database-integration 3.0.0-rc.8.
- Dominant language
- TypeScript
- Stars
- 523
- Forks
- 99
- Avg merge
- 1d 22h
- Merged PRs (30d)
- 165
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from Automattic/studio
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Automattic/studio#4908 ·
-
Customer Report > Indirect Enhancement Quality Sprint: Week 2
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
Automattic/studio#4683 ·
-
[Status] Auto-allocated Bug YOLO
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Automattic/studio#3386 · 1 comment ·
-
Enhancement
Difficulty 1/5 Under an hour Newbie friendliness 75/100
Automattic/studio#3017 · 4 comments ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
Automattic/studio#2868 · 2 comments ·
All issues in Automattic/studio
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
Eynzof/Hermes-CN-Desktop#610 ·
-
bug clawsweeper:linked-pr-open clawsweeper:needs-live-repro clawsweeper:no-new-fix-pr impact:message-loss issue-rating: 🐚 platinum hermit P2 regression
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
-
calcite-components needs triage refactor
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
Esri/calcite-design-system#15203 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 90/100
danielmiessler/LifeOS#2218 ·