feat: adapt to DSH 0.1.2-alpha.2 (npm-published) and bump to v0.17.2
DSH 0.1.2-alpha.2 is on npm under the `alpha` dist-tag, so the CI mount pin and the @deepseek-ai/* devDependencies baseline move up from 0.1.1-rc.1/rc.2 (the dead dsh-client-runtime devDep goes away with them). Verified end-to-end against a real 0.1.2-alpha.2 host: full vitest suite (1106), typecheck, build/pack, consumer type surface, and the headless mount smoke 14/14 — the token URL, slash RPC and MarkdownText labels contracts are unchanged from alpha.1. - dsh-settings dropped the runtime `settingsNamespace` export: namespaces are validated at compile time (SettingsNamespaceInput), so the host passes the 'dsh-better-sidebar' constant directly and the fake settings service in smoke.spec casts to the branded type. - dsh-subagent bumped SUBAGENT_DESCRIPTOR_VERSION 2 -> 3: the version is stamped by the host package; the sidechat seed assertion now follows the constant instead of pinning a literal. - Restored SessionEvent.ignorable and the RemoteError wrapping were verified to have no impact on this plugin. - e2e scratch profiles (e2e-mount.sh / e2e-aggregate-mount.sh) add '@deepseek-ai/*' to minimumReleaseAgeExclude (mirroring the repo root): alpha releases are often <24h old when the lane runs, which pnpm 11's default minimumReleaseAge would refuse to install. - vitest excludes .worktrees/** — local task worktrees carried stale code against the shared node_modules and broke on the devDeps bump. - Version lockstep 0.17.2 (package.json, dsh.plugin.json, SIDEBAR_SERVICE_VERSION, README/AGENTS/guide docs).
This commit is contained in:
@@ -8,6 +8,7 @@
|
||||
* afterSeq deltas, tail cap, live/persisted sources).
|
||||
*/
|
||||
import { describe, expect, it, vi } from 'vitest'
|
||||
import { SUBAGENT_DESCRIPTOR_VERSION } from '@deepseek-ai/dsh-subagent'
|
||||
import { buildSidechatApi } from '../src/sidechat-routes.ts'
|
||||
import { SidebarError } from '../src/wire.ts'
|
||||
import { SIDE_BOUNDARY_PROMPT, SIDE_INJECTION_PLUGIN, SIDE_NEW_THREAD_TITLE, sideLabel } from '../src/sidechat-core.ts'
|
||||
@@ -134,7 +135,10 @@ describe('sidechat.start', () => {
|
||||
'subagent/descriptor',
|
||||
])
|
||||
expect(options.seed.at(-1)?.data).toMatchObject({
|
||||
version: 2,
|
||||
// The descriptor version is stamped by the host package's
|
||||
// snapshotSubagentDescriptor — follow it instead of pinning a literal
|
||||
// (bumped 2 → 3 in DSH 0.1.2-alpha.2).
|
||||
version: SUBAGENT_DESCRIPTOR_VERSION,
|
||||
mode: 'continuable',
|
||||
provider: 'sidechat',
|
||||
label: sideLabel('explain the event flow'),
|
||||
|
||||
+2
-2
@@ -8,7 +8,7 @@ import { spawnSync } from 'node:child_process'
|
||||
import { mkdirSync, mkdtempSync, readFileSync, rmSync, symlinkSync, writeFileSync } from 'node:fs'
|
||||
import { tmpdir } from 'node:os'
|
||||
import { join, resolve as resolvePath } from 'node:path'
|
||||
import { SettingsConflictError, settingsNamespace } from '@deepseek-ai/dsh-settings'
|
||||
import { SettingsConflictError, type SettingsNamespace } from '@deepseek-ai/dsh-settings'
|
||||
import { apply, mediaTypeForPath } from '../src/index.ts'
|
||||
import { encodeHtmlUrl } from '../src/html-route.ts'
|
||||
import * as git from '../src/git.ts'
|
||||
@@ -844,7 +844,7 @@ describe('side card settings routes', () => {
|
||||
const entry = namespaces.get(ns)
|
||||
if (entry === undefined) throw new Error(`settings namespace "${ns}" is not registered`)
|
||||
if (expectedRevision !== undefined && expectedRevision !== entry.revision) {
|
||||
throw new SettingsConflictError(settingsNamespace(ns), expectedRevision, entry.revision)
|
||||
throw new SettingsConflictError(ns as SettingsNamespace, expectedRevision, entry.revision)
|
||||
}
|
||||
entry.value = { ...entry.value, ...patch }
|
||||
entry.revision += 1
|
||||
|
||||
Reference in New Issue
Block a user