Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,11 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]

### Fixed

- The canonical `@deepseek-ai/dsh-*` peer range now admits the `0.1.6-alpha.2` tuple (`|| >=0.1.6-0 <0.2.0`). The `peer-range` tripwire has been failing on `master` since that tuple was published, because semver's prerelease rule gives every new tuple its own clause; the three peers this package declares are re-pinned in the same commit, the lockfile's specifiers follow, and the `sync-peer-range` fixture's "higher-floor" example was raised above the new floor.
## [0.1.9] - 2026-09-12

### Added
Expand Down
4 changes: 2 additions & 2 deletions data/peer-range.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"canonicalRange": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0",
"updatedAt": "2026-09-10",
"canonicalRange": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0",
"updatedAt": "2026-09-19",
"note": "Canonical peerDependencies range for @deepseek-ai/dsh-* across the ecosystem. The OR form is required by semver's prerelease rule: a prerelease version only satisfies a comparator set when a comparator in the same [major, minor, patch] tuple carries a prerelease, so 0.1.5-rc.1 is NOT admitted by the bare '>=0.1.2-rc.1 <0.2.0'. Every new upstream prerelease tuple needs its own clause - run `node scripts/check-peer-range-latest.mjs` to detect a missing one (it reads the published dist-tags and prints the clause to append). Run `node scripts/sync-peer-range.mjs --dir <reposDir> --write` after updating this file to re-pin every repo, then let the shared Renovate preset open the update PRs."
}
6 changes: 3 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -84,9 +84,9 @@
"packageManager": "pnpm@11.7.0",
"peerDependencies": {
"@deepseek-ai/cordis": "^4.0.2",
"@deepseek-ai/dsh-session": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0",
"@deepseek-ai/dsh-tools": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0",
"@deepseek-ai/dsh-user-approval": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0",
"@deepseek-ai/dsh-session": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0",
"@deepseek-ai/dsh-tools": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0",
"@deepseek-ai/dsh-user-approval": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0",
"@deepseek-ai/schemastery": "^3.18.2"
},
"peerDependenciesMeta": {
Expand Down
6 changes: 3 additions & 3 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion scripts/sync-peer-range.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ const CLAUSE_RE = /^>=(\S+)\s+<(\S+)$/
*
* Both shapes occur in this ecosystem:
* - single clause: `>=0.1.2-rc.1 <0.2.0`
* - OR form: `>=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0`
* - OR form: `>=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0`
*
* The OR form exists because of semver's prerelease rule: a prerelease version
* only satisfies a comparator set when a comparator in the *same*
Expand Down
3 changes: 2 additions & 1 deletion test/sync-peer-range.test.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,8 @@ describe('CLI end-to-end', () => {
await readFile(resolve(import.meta.dirname, '..', 'data', 'peer-range.json'), 'utf8'),
).canonicalRange
// above every canonical floor: a real per-package requirement, left alone
const highFloor = '>=0.1.5-rc.1 <0.2.0'
// (raised together with canonicalRange's newest tuple, 2026-09-19)
const highFloor = '>=0.1.6-rc.1 <0.2.0'
const repoDir = join(dir, 'cli-repo')
await mkdir(repoDir, { recursive: true })
const pkg = join(repoDir, 'package.json')
Expand Down
Loading