mirror of
https://github.com/awesome-dsh-plugin/dsh-find-plugin.git
synced 2026-09-28 13:12:54 +08:00
`@deepseek-ai/dsh-tools: ^0.1.0-rc.6` only ever matched `0.1.0-rc.6/7/8`, yet it is the range that shipped as the 0.3.7 fix for #4. Node-semver lets a prerelease satisfy a range only when a comparator in that range carries a prerelease on the *same* major.minor.patch, so pinning one prerelease line excludes every later one — and every DSH release is a prerelease. Hosts ship lockstep (`dsh@0.1.5-rc.1` → `dsh-base` → `dsh-tools@^0.1.5-rc.1`), so the declared range has matched no host since 0.1.1, including both the current `latest` and `next`. The range now names each shipped host line through 0.1.7, and `scripts/check-peer-range.mjs` resolves `latest`/`next` from the registry, finds the dsh-tools version each installs, and fails when the declared range does not accept it — so the next host line is caught the day it ships instead of in a user's bug report. CI runs it, and a second job typechecks against `dsh-tools@next`.