From d72b6f8d121cab72f283de81fcda930c5fd1e5be Mon Sep 17 00:00:00 2001 From: bowenliang123 Date: Thu, 24 Sep 2026 11:05:05 +0800 Subject: [PATCH] feat: support dsh 0.1.7-rc.1 as the supported V4 line Every runtime seam the plugin rides is source-identical from 0.1.7-alpha.2, so no code changes; the supported V4 baseline moves from 0.1.7-alpha.2 to 0.1.7-rc.1 (the alphas leave the matrix). rc.1 adds the harness-side plugin peer-compatibility admission gate (evaluatePluginCompatibility); the plugin's >=0.1.2-rc.1 dsh peers satisfy it under the gate's includePrerelease check, so the bundle composes with no exemption. The release workflow fetches the rc.1 tag for the compat matrix and points the plugin checker at the npm next dist-tag (0.1.7-rc.1). --- .github/workflows/release.yml | 6 +++--- docs/compatibility.md | 10 +++++++--- package.json | 2 +- tests/baselines.ts | 12 ++++++++---- 4 files changed, 19 insertions(+), 11 deletions(-) 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',