Commit 83ec7ea
committed
fix(cli): treat non-numeric version cores as not comparable, never "ahead"
Copilot review catch on #669: compareVersions parsed core segments with
Number.parseInt and NaN !== NaN made any malformed version (v1.0.0, 1.0.x,
garbage from a corrupt manifest) deterministically compare as GREATER —
classifying it 'ahead' and suppressing the align/reinstall guidance exactly
where it's needed. Guard the parse: either side with a NaN core returns 0
(not comparable), which callers classify as 'behind' — the safe direction.
Tests at both layers (comparator + versionSkew classification).
Claude-Session: https://claude.ai/code/session_01MxTTPaPP16m6br7Hoab94w1 parent d803914 commit 83ec7ea
3 files changed
Lines changed: 32 additions & 0 deletions
File tree
- packages/cli/src
- __tests__
- commands/init/steps/__tests__
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
116 | 116 | | |
117 | 117 | | |
118 | 118 | | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
119 | 127 | | |
120 | 128 | | |
121 | 129 | | |
| |||
Lines changed: 17 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
316 | 316 | | |
317 | 317 | | |
318 | 318 | | |
| 319 | + | |
| 320 | + | |
| 321 | + | |
| 322 | + | |
| 323 | + | |
| 324 | + | |
| 325 | + | |
| 326 | + | |
| 327 | + | |
| 328 | + | |
| 329 | + | |
| 330 | + | |
| 331 | + | |
| 332 | + | |
| 333 | + | |
| 334 | + | |
| 335 | + | |
319 | 336 | | |
320 | 337 | | |
321 | 338 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
103 | 103 | | |
104 | 104 | | |
105 | 105 | | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
106 | 112 | | |
107 | 113 | | |
108 | 114 | | |
| |||
114 | 120 | | |
115 | 121 | | |
116 | 122 | | |
| 123 | + | |
117 | 124 | | |
118 | 125 | | |
119 | 126 | | |
| |||
0 commit comments