Desktop app "Check for Updates" reports current when embedded Claude Code engine is stale, blocking Opus 5.5/Sonnet 5.5

Status Open
Reported on v2.1.287
Maintainer reply None cached
Activity 0 comments · opened Oct 2, 2026

Environment

  • Claude desktop app (macOS), app bundle version 1.52386.6
  • Standalone CLI (~/.local/bin/claude, native install): correctly updated to 2.1.287
  • Desktop app's embedded Claude Code engine (~/Library/Application Support/Claude/claude-code/): stuck at 2.1.270

Problem
The Code tab in the desktop app shows Opus 5.5 and Sonnet 5.5 as greyed out in the model picker, with the message "Update to 2.1.280+ to use Opus 5.5." However:

  • Running claude update on the standalone CLI successfully updates it to 2.1.287.
  • Using the desktop app's own in-app "Check for Updates," it reports "You're up to date — installed version 2.1.287 matches the latest published on npm" — in a separate session from the one with the greyed-out models.
  • Despite that, inspecting ~/Library/Application Support/Claude/claude-code/ shows only 2.1.266 and 2.1.270 ever downloaded, and ps aux confirms the actually-running Code tab sessions are spawned from the 2.1.270 embedded binary.

So the app's update-check appears to be validating against the standalone CLI's version (or npm registry metadata) rather than the embedded engine it actually uses to spawn Code sessions, leaving users stuck on an old embedded build while being told they're current — with no way to force the embedded engine to actually update.

Impact
Opus 5.5 / Sonnet 5.5 are permanently unavailable in the desktop app's Code tab until this is fixed, regardless of restarting the app or running CLI updates. Plain Opus 5 still works.

Expected behavior
"Check for Updates" should verify and update the actual embedded Claude Code engine used by Code tab sessions, not just the separately-installed CLI/npm package version.

🤖 Generated with Claude Code

View original on GitHub ↗