* fix(hooks): use semver comparison for update check instead of inequality gsd-check-update.js used `installed !== latest` to determine if an update is available. This incorrectly flags an update when the installed version is NEWER than npm (e.g., installing from git ahead of a release). Replace with proper semver comparison: update_available is true only when the npm version is strictly newer than the installed version. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(hooks): use semver comparison for update check instead of inequality gsd-check-update.js used `installed !== latest` to determine if an update is available. This incorrectly flags an update when the installed version is NEWER than npm (e.g., installing from git ahead of a release). Fix: - Move isNewer() inside the spawned child process (was in parent scope, causing ReferenceError in production) - Strip pre-release suffixes before Number() to avoid NaN - Apply same semver comparison to stale hooks check (line 95) update_available is now true only when npm version is strictly newer. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * test: add semver comparison tests for gsd-check-update isNewer() 12 test cases covering: major/minor/patch comparison, equal versions, installed-ahead-of-npm scenario, pre-release suffix stripping, null/empty handling, two-segment versions. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * docs: explain why isNewer is duplicated in test file Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2.8 KiB
2.8 KiB