Skip to content

fix(ai): silence the auto-update error from the bundled Claude Code - #3225

Merged
abose merged 1 commit into
mainfrom
ai
Sep 27, 2026
Merged

abose merged 1 commit into
mainfrom
ai

Conversation

@abose

@abose abose commented Sep 27, 2026

Copy link
Copy Markdown
Member

The bundled Claude Code ships inside Phoenix and is replaced when Phoenix updates, so its own auto-updater has nothing useful to do — and it cannot do it anyway: it resolves the npm prefix of whatever install it thinks it is and tries to write there. It failed on every launch and said so in red across the CLI pane ("Auto-update failed: no write permission to npm prefix").

Set DISABLE_AUTOUPDATER for it, the supported way out (Anthropic set the same var for their own managed runs). Keyed on the locator's source, so a CLI the user installed keeps its updater: that copy is theirs to keep current, and it is how their version eventually overtakes the bundled one.

Both spawn paths carry it — the CLI pane's PTY and the SDK query, which runs the same executable. The SDK path now resolves through locateCli directly for the source, retiring the findGlobalClaudeCli wrapper.

Also includes the userInstalled field on locate results, reporting that the user has a Claude Code of their own even when the newer bundled copy is the one that runs.

The bundled Claude Code ships inside Phoenix and is replaced when Phoenix
updates, so its own auto-updater has nothing useful to do — and it cannot
do it anyway: it resolves the npm prefix of whatever install it thinks it
is and tries to write there. It failed on every launch and said so in red
across the CLI pane ("Auto-update failed: no write permission to npm
prefix").

Set DISABLE_AUTOUPDATER for it, the supported way out (Anthropic set the
same var for their own managed runs). Keyed on the locator's `source`, so
a CLI the user installed keeps its updater: that copy is theirs to keep
current, and it is how their version eventually overtakes the bundled one.

Both spawn paths carry it — the CLI pane's PTY and the SDK query, which
runs the same executable. The SDK path now resolves through locateCli
directly for the source, retiring the findGlobalClaudeCli wrapper.

Also includes the `userInstalled` field on locate results, reporting that
the user has a Claude Code of their own even when the newer bundled copy
is the one that runs.
@sonarqubecloud

Copy link
Copy Markdown

@abose
abose merged commit 670b9c7 into main Sep 27, 2026
14 of 21 checks passed
@abose
abose deleted the ai branch September 27, 2026 18:32
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.

1 participant