diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index f037920..033a99d 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -19,7 +19,7 @@ jobs: - uses: actions/checkout@v7 - name: Check the DeeSeek Harness plugin - # `alpha` = the newest published generation (0.1.7-alpha.1), whose npm + # `next` = the newest published generation (0.1.7-rc.1), whose npm # dependency closure is complete. The 0.1.5-rc `latest` line is # transitively broken on npm right now: web-app 0.1.5-rc.3 was # published without the dsh-client-ui-sidebar-documentpreview rc.3 it @@ -27,7 +27,7 @@ jobs: # upstream republishes a complete stable closure. uses: bowenliang123/dsh-plugin-checker@v1 with: - dshVersion: alpha + dshVersion: next # Reads the pinned pnpm version from `packageManager` in package.json. - uses: pnpm/action-setup@v6 @@ -65,7 +65,7 @@ jobs: refs/tags/dsh-v0.1.2-rc.1:refs/tags/dsh-v0.1.2-rc.1 \ refs/tags/dsh-v0.1.3-alpha.2:refs/tags/dsh-v0.1.3-alpha.2 \ refs/tags/dsh-v0.1.5-rc.1:refs/tags/dsh-v0.1.5-rc.1 \ - refs/tags/dsh-v0.1.7-alpha.2:refs/tags/dsh-v0.1.7-alpha.2 + refs/tags/dsh-v0.1.7-rc.1:refs/tags/dsh-v0.1.7-rc.1 - name: Test run: DSH_REPO="$PWD/.tmp/dsh-repo" pnpm test diff --git a/docs/compatibility.md b/docs/compatibility.md index 5c78a9e..0158e0d 100644 --- a/docs/compatibility.md +++ b/docs/compatibility.md @@ -2,7 +2,7 @@ dsh-context declares per-release compatibility with `@deepseek-ai/dsh` in its package manifest (`dsh.compatibility.dshReleases`). This page records what is actually verified for each declared release, and how. -Last verified: **2026-09-23** (plugin `dsh-context@0.55.0` source tree, dsh `0.1.7-alpha.2`). +Last verified: **2026-09-24** (plugin `dsh-context@0.55.0` source tree, dsh `0.1.7-rc.1`). ## Supported dsh releases @@ -11,11 +11,15 @@ Last verified: **2026-09-23** (plugin `dsh-context@0.55.0` source tree, dsh `0.1 | `0.1.2-rc.1` | V0 | compatible | ✅ baseline `v0.1.2-rc.1` | ✅ install OK → 1 composed row → uninstall OK → 0 rows (verified 2026-09-05) | | `0.1.3-alpha.2` | V2 | compatible | ✅ baseline `v0.1.3-alpha.2` | ✅ install OK → 1 composed row → uninstall OK → 0 rows (verified 2026-09-09) | | `0.1.5-rc.1` | V3 | compatible | ✅ baseline `v0.1.5-rc.1` | ✅ install OK → 1 composed row → uninstall OK → 0 rows (verified 2026-09-10) | -| `0.1.7-alpha.2` | V4 | compatible | ✅ baseline `v0.1.7-alpha.2` | — (not yet performed manually) | +| `0.1.7-rc.1` | V4 | compatible | ✅ baseline `v0.1.7-rc.1` | — (not yet performed manually) | The automated seam matrix runs for every row on every `pnpm test`. The disposable-profile column is a manual, per-release check: each release's CLI was installed from npm into a temporary `DSH_HOME` (the real `~/.dsh` is never touched) — `0.1.2-rc.1` on 2026-09-05, `0.1.3-alpha.2` on 2026-09-09, and `0.1.5-rc.1` on 2026-09-10, against the official npm registry (a stale mirror can 404 the harness's own dependency closure before the plugin is even considered). -Releases older than `0.1.2-rc.1` — the `0.1.1` line and the `0.1.2-alpha.*` previews — were supported and verified through `dsh-context@0.41.x` and are no longer in the support matrix. +Releases older than `0.1.2-rc.1` — the `0.1.1` line and the `0.1.2-alpha.*` previews — were supported and verified through `dsh-context@0.41.x` and are no longer in the support matrix. The `0.1.7-alpha.*` previews are likewise out: they carried the V4 generation into the matrix through `0.1.7-alpha.2`, and the supported V4 line is now `0.1.7-rc.1`. + +## Harness-side compatibility admission (0.1.7-rc.1+) + +From `0.1.7-rc.1` the harness enforces a plugin's own `peerDependencies` at startup and install: a bundle whose `@deepseek-ai/dsh*` peer ranges do not satisfy the running version (semver, `includePrerelease: true`) is skipped at composition, refused at install, and only loads with an exact-version exemption (`dsh plugin allow-version`). This plugin's dsh peers are all `>=0.1.2-rc.1`, which every supported release — including every prerelease line — satisfies, so the plugin composes normally with no exemption. ## Baseline gate diff --git a/package.json b/package.json index f0acf50..7314a7b 100644 --- a/package.json +++ b/package.json @@ -71,7 +71,7 @@ "0.1.2-rc.1": "compatible", "0.1.3-alpha.2": "compatible", "0.1.5-rc.1": "compatible", - "0.1.7-alpha.2": "compatible" + "0.1.7-rc.1": "compatible" } } }, diff --git a/tests/baselines.ts b/tests/baselines.ts index e38cdcb..9b330f5 100644 --- a/tests/baselines.ts +++ b/tests/baselines.ts @@ -16,7 +16,7 @@ */ /** The supported dsh tags, in lockstep with the BASELINES entries below. */ -export type BaselineId = 'v0.1.2-rc.1' | 'v0.1.3-alpha.2' | 'v0.1.5-rc.1' | 'v0.1.7-alpha.2' +export type BaselineId = 'v0.1.2-rc.1' | 'v0.1.3-alpha.2' | 'v0.1.5-rc.1' | 'v0.1.7-rc.1' /** The harness web half's client faces, as far as the compat probes consume them. */ export interface ClientSeam { @@ -330,10 +330,14 @@ export const BASELINES: readonly Baseline[] = [ // the Plugins page's keyed `plugins.bundle.config` slot there, keeping the // old registration for the V0–V3 lines (each slot exists on exactly one // side, so the deferred injects pick their generation and never pend). - id: 'v0.1.7-alpha.2', - tag: 'dsh-v0.1.7-alpha.2', + // 0.1.7-rc.1 additionally enforces plugin dsh-peer compatibility at + // startup and install (evaluatePluginCompatibility); this plugin's + // `>=0.1.2-rc.1` dsh peers satisfy every supported line under the gate's + // includePrerelease check. + id: 'v0.1.7-rc.1', + tag: 'dsh-v0.1.7-rc.1', cordis: '4.0.4', - session: '0.1.7-alpha.2', + session: '0.1.7-rc.1', foldEventTypes: [ 'request/header', 'request/context', 'step/start', 'step/end', 'user/message', 'tool/call', 'tool/result', 'assistant/message', 'assistant/attempt',