dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
English | 中文
dsh-test 是面向 DeepSeek Harness Web profile 与插件的 dev-only 黑盒验收控制器。它会在 run 独占的 DSH_HOME 中启动真实 DSH,通过真实浏览器驱动 UI,校验外部可观察事实,并保存可恢复的 JSON 状态与带哈希的证据。
它不是 Cordis 插件、MCP 服务或生产运行依赖;DSH 始终是被测系统。
--dsh-root 内置适配器:通过公开 DSH CLI 在 loopback 动态端口启动真实 Web profile。DSH_HOME;只复制所选 profile 定义,已安装依赖通过链接复用。workflow、resume、stop 可从 run manifest 自动恢复适配器,无需重复 DSH 参数。renderer-verified。0600 的私有状态文件中,并从证据中脱敏。兼容基线记录在 dsh.lock.json:当前真实验证目标为 DSH 0.1.5-rc.2 / c291e79。
先构建:
pnpm install
pnpm build
启动真实 profile。下面以本机 Qualy 插件为例;它在 DSH 启动时读取 QUALY_ROOT:
export QUALY_ROOT=/absolute/path/to/qualy-ai
node lib/cli.js run start \
--dsh-root /absolute/path/to/deepseek-harness \
--dsh-profile qualy \
--workspace "$QUALY_ROOT" \
--runs-dir .dsh-test-runs \
--retain \
--json
复制返回的 runId,再运行仓库自带的 Qualy UI smoke。DSH 运行期间,后续命令会从 manifest 自动恢复适配器:
node lib/cli.js workflow run \
--file scenarios/qualy-profile-smoke.workflow.json \
--state-file .dsh-test-runs/qualy-smoke.state.json \
--runs-dir .dsh-test-runs \
--run <run-id> \
--json
node lib/cli.js run stop \
--runs-dir .dsh-test-runs \
--run <run-id> \
--retain \
--json
Qualy smoke 会完成隔离环境的首次引导、跳过真实模型密钥配置、打开 Agent Presets、选择 Qualy 制造质量智能体,断言 console error 与失败网络请求均为 0,最后生成 renderer-verified 证据。scenarios/dsh-web-smoke.workflow.json 是不依赖具体 profile 的通用 smoke。
如果 DSH 进程已经退出,需要 run resume 重启,请再次提供该 profile 所需的环境变量,例如 QUALY_ROOT。环境值有意不写入公开 run manifest。
dsh-test run start
dsh-test run status --run <id>
dsh-test run resume --run <id>
dsh-test run stop --run <id>
dsh-test workflow validate --file <workflow.json>
dsh-test workflow run --file <workflow.json> --run <id>
dsh-test workflow resume --file <workflow.json> --run <id>
dsh-test workflow inspect --file <workflow.json>
主要参数:
--dsh-root <path>:DSH checkout,并启用内置适配器。--dsh-profile <name>:$DSH_HOME/profiles 下的源 profile,默认 web。--dsh-home <path>:源 DSH home,默认 $DSH_HOME 或 ~/.dsh。--dsh-patch <path>:额外 overlay,可重复。--browser-channel <name>:指定 Playwright channel,也可用 DSH_TEST_BROWSER_CHANNEL。--host-module <module>:高级外部 composition,与 --dsh-root 互斥。内置适配器支持以下 workflow command:
dsh.statusbrowser.action,以及 browser.snapshot、browser.click、browser.screenshot 等别名assertion.check / assertion.assertevidence.capture浏览器 click/fill 可使用 snapshot ref、CSS selector、无障碍 role + name 或可见 text。当前内置断言覆盖黑盒 ui、限制在 workspace 内的 file,以及 DSH service 事实。必须读取产品内部 session/RPC 的场景仍通过外部 host module 扩展。
evidence.capture 默认执行严格 renderer gate:ARIA、截图、console、network 和至少一个通过的断言缺一不可。验收失败时证据仍会保留,便于定位。
每个 run 独占:
manifest.json 与幂等 request 历史;步骤失败时 cursor 不前移;workflow resume 会用新的 attempt identity 重试失败步骤。若进程在状态落盘前崩溃,同一个 request identity 会读取已记录响应,避免重复副作用。workflow 文件在执行中途被修改时会拒绝恢复,不会把旧状态套到新定义上。
当插件验收需要内部 scaffold、fake model、fake service 或 Web 表面无法观察的 session/RPC 权威事实时,使用 --host-module。ESM 模块可导出 createComposition(context)、default.createComposition(context) 或 testHost.createComposition(context),并返回 TestComposition。
Host module 是测试扩展点,不会进入生产 profile。Host 只有在返回 run evidence 目录内的 evidence manifest 后才能声明 renderer-verified;控制器会复核必需 artifact、大小、哈希、run identity 和全部断言。
pnpm test
pnpm build
pnpm pack:check
单元测试使用假的独立 DSH launcher;仓库自带的 Qualy workflow 还额外在本机真实 DSH Web 与系统 Chrome 上完成了黑盒验证。