Updater treats 2.1.209 as newer than 2.1.210 (lexical version compare, offers downgrade)
Summary
claude update (and the auto-updater) treats 2.1.209 as newer than 2.1.210, so it repeatedly offers/attempts to "update" a machine already on 2.1.210 down to 2.1.209. This looks like a lexical string comparison of version numbers instead of a numeric/semver comparison.
Why it happens
Comparing the patch segments as strings, "209" vs "210": at the third character 9 > 0, so "209" sorts greater than "210" lexically. A semver comparison parses the patch as an integer (209 < 210) and correctly treats 210 as newer. The updater appears to be using the string comparison, so it believes 2.1.209 is the latest and keeps prompting.
Steps to reproduce
- Be on version 2.1.210.
- Run
claude update(or wait for the auto-update prompt). - Observe it reports 2.1.209 as available/newer and offers to install it (a downgrade).
Expected
The updater recognizes 2.1.210 >= 2.1.209 and reports the installation is up to date. No downgrade is offered.
Actual
The updater claims 2.1.209 is newer and repeatedly offers/attempts to update to it.
Environment
- Version: 2.1.210 (Claude Code)
- Install method: native
- Platform: win32-x64
- Auto-update channel: latest
- Last update attempt: success → 2.1.208 (2026-07-13)
Notes
The false prompt will likely disappear once a version numerically higher than 2.1.210 ships, but the underlying comparison should be fixed to parse version segments numerically so it doesn't recur at future digit rollovers (e.g. 219→220, 2.1.9→2.1.10).