From e73c8a9fce63b79c2945bb570d5ede7eb9df0264 Mon Sep 17 00:00:00 2001 From: Tianyi Cui <53024+tianyicui@users.noreply.github.com> Date: Mon, 24 Aug 2026 10:52:12 +0800 Subject: [PATCH] fix(repo): close examples migration review gaps --- ...026-08-10-source-run-without-managed-installer.i18n.yaml | 4 ++-- .../2026-08-10-source-run-without-managed-installer.md | 2 +- .../2026-08-10-source-run-without-managed-installer.zh.md | 2 +- docs/user/guide/github-review.i18n.yaml | 4 ++-- docs/user/guide/github-review.md | 6 +++--- docs/user/guide/github-review.zh.md | 6 +++--- packages/acp/acp/README.i18n.yaml | 4 ++-- packages/acp/acp/README.md | 2 +- packages/acp/acp/README.zh.md | 2 +- .../subagent-claude-code/tests/fixtures/loader/driver.ts | 2 +- .../subagent-claude-code/tests/loader-composition.e2e.ts | 2 +- 11 files changed, 18 insertions(+), 18 deletions(-) diff --git a/.agents/notes/implemented/simplification/2026-08-10-source-run-without-managed-installer.i18n.yaml b/.agents/notes/implemented/simplification/2026-08-10-source-run-without-managed-installer.i18n.yaml index b11d116f63..96867b690c 100644 --- a/.agents/notes/implemented/simplification/2026-08-10-source-run-without-managed-installer.i18n.yaml +++ b/.agents/notes/implemented/simplification/2026-08-10-source-run-without-managed-installer.i18n.yaml @@ -2,5 +2,5 @@ # side as of the last confirmed-consistent state. Both languages carry equal authority; # after editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write .agents/notes/implemented/simplification/2026-08-10-source-run-without-managed-installer.md -2026-08-10-source-run-without-managed-installer.md: ce618c88327fc11ad0cad9042e171800a5492663 -2026-08-10-source-run-without-managed-installer.zh.md: 95dc669035bca5bd7d04fe6a7bb1eb073e0005a2 +2026-08-10-source-run-without-managed-installer.md: b9e86c3c325b41126576cbe5d5d1d53b71e80051 +2026-08-10-source-run-without-managed-installer.zh.md: 48c1fdb7cced6383e8870ab099dec5d181d5ccbf diff --git a/.agents/notes/implemented/simplification/2026-08-10-source-run-without-managed-installer.md b/.agents/notes/implemented/simplification/2026-08-10-source-run-without-managed-installer.md index ce618c8832..b9e86c3c32 100644 --- a/.agents/notes/implemented/simplification/2026-08-10-source-run-without-managed-installer.md +++ b/.agents/notes/implemented/simplification/2026-08-10-source-run-without-managed-installer.md @@ -12,7 +12,7 @@ That lifecycle is not required to run or develop DeepSeek Harness from a source ## Decision -The repository supports source execution through its root `pnpm` scripts. The `dsh` entry in `package.json` launches `apps/cli/src/bin.ts` directly through `node --import tsx/esm`; artifact generation is the separate `pnpm run build` operation defined by the [source-launch/build separation decision](2026-08-12-separate-source-launch-from-build.md). The package script forwards arguments and inherits the caller's environment, including `NODE_USE_ENV_PROXY=1` when a supporting Node version must honor `HTTP_PROXY` and `HTTPS_PROXY`. Users select Web with `pnpm dsh web` and headless execution with `pnpm dsh --profile headless "task"`. The independent ACP example remains available through `pnpm run demo:acp`. +The repository supports source execution through its root `pnpm` scripts. The `dsh` entry in `package.json` launches `apps/cli/src/bin.ts` directly through `node --import tsx/esm`; artifact generation is the separate `pnpm run build` operation defined by the [source-launch/build separation decision](2026-08-12-separate-source-launch-from-build.md). The package script forwards arguments and inherits the caller's environment, including `NODE_USE_ENV_PROXY=1` when a supporting Node version must honor `HTTP_PROXY` and `HTTPS_PROXY`. Users select Web with `pnpm dsh web`, headless execution with `pnpm dsh --profile headless "task"`, and ACP automation with `pnpm dsh --profile acp`. The repository does not distribute a source installer, an installer test suite, or skills that assume a managed `current` symlink and timestamped staging worktrees. Users own source checkout placement, Git updates, and any launcher they create outside the repository. diff --git a/.agents/notes/implemented/simplification/2026-08-10-source-run-without-managed-installer.zh.md b/.agents/notes/implemented/simplification/2026-08-10-source-run-without-managed-installer.zh.md index 95dc669035..48c1fdb7cc 100644 --- a/.agents/notes/implemented/simplification/2026-08-10-source-run-without-managed-installer.zh.md +++ b/.agents/notes/implemented/simplification/2026-08-10-source-run-without-managed-installer.zh.md @@ -12,7 +12,7 @@ Status: implemented ## 决策 -仓库通过根目录的 `pnpm` 脚本支持从源码运行。`package.json` 中的 `dsh` 项通过 `node --import tsx/esm` 直接启动 `apps/cli/src/bin.ts`;产物生成是独立的 `pnpm run build` 操作,由[源码启动与构建分离决策](2026-08-12-separate-source-launch-from-build.zh.md)规定。该包脚本会转发参数并继承调用方环境;当支持环境代理的 Node 版本必须遵循 `HTTP_PROXY` 和 `HTTPS_PROXY` 时,调用方可设置 `NODE_USE_ENV_PROXY=1`。用户使用 `pnpm dsh web` 选择 Web,使用 `pnpm dsh --profile headless "task"` 选择无头执行。独立的 ACP(Agent Client Protocol)示例仍可通过 `pnpm run demo:acp` 运行。 +仓库通过根目录的 `pnpm` 脚本支持从源码运行。`package.json` 中的 `dsh` 项通过 `node --import tsx/esm` 直接启动 `apps/cli/src/bin.ts`;产物生成是独立的 `pnpm run build` 操作,由[源码启动与构建分离决策](2026-08-12-separate-source-launch-from-build.zh.md)规定。该包脚本会转发参数并继承调用方环境;当支持环境代理的 Node 版本必须遵循 `HTTP_PROXY` 和 `HTTPS_PROXY` 时,调用方可设置 `NODE_USE_ENV_PROXY=1`。用户使用 `pnpm dsh web` 选择 Web,使用 `pnpm dsh --profile headless "task"` 选择无头执行,并使用 `pnpm dsh --profile acp` 运行 ACP 自动化。 仓库不分发源码安装器、安装器测试套件,也不分发依赖受管理的 `current` 符号链接和带时间戳 staging worktree 的 skill。源码检出的存放位置、Git 更新,以及用户在仓库外创建的任何启动器均由用户负责。 diff --git a/docs/user/guide/github-review.i18n.yaml b/docs/user/guide/github-review.i18n.yaml index 997dce592e..f070062352 100644 --- a/docs/user/guide/github-review.i18n.yaml +++ b/docs/user/guide/github-review.i18n.yaml @@ -2,5 +2,5 @@ # side as of the last confirmed-consistent state. Both languages carry equal authority; # after editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write docs/user/guide/github-review.md -github-review.md: 2f777acdd0e8b4996a29a0b78262b1ba3ff9188c -github-review.zh.md: 7518a13f3d74801dbfb4d0810c89851f4616a2ef +github-review.md: a104c1ec8d32d23ccbcb88a492ed2a9ede474c01 +github-review.zh.md: 4800dbc65c098e871573ac01d3904e6ab1b991f9 diff --git a/docs/user/guide/github-review.md b/docs/user/guide/github-review.md index 2f777acdd0..a104c1ec8d 100644 --- a/docs/user/guide/github-review.md +++ b/docs/user/guide/github-review.md @@ -25,7 +25,7 @@ printf '%s\n' "$DSH_GITHUB_WEBHOOK_SECRET" From a development checkout: ```sh -export DSH_GITHUB_REVIEW_WORKSPACE=/Users/cty/deepseek-harness +export DSH_GITHUB_REVIEW_WORKSPACE=/path/to/deepseek-harness pnpm dsh web --patch apps/cli/config/examples/github-review/cordis.yml ``` @@ -89,8 +89,8 @@ It can also map repositories to different local paths: ```js const workspacePath = { - 'deepseek-harness/deepseek-harness': '/Users/cty/deepseek-harness', - 'deepseek-harness/dsh-sdk': '/Users/cty/dsh-sdk', + 'deepseek-harness/deepseek-harness': '/path/to/deepseek-harness', + 'deepseek-harness/dsh-sdk': '/path/to/dsh-sdk', }[payload.repository.full_name] if (workspacePath === undefined) return null ``` diff --git a/docs/user/guide/github-review.zh.md b/docs/user/guide/github-review.zh.md index 7518a13f3d..4800dbc65c 100644 --- a/docs/user/guide/github-review.zh.md +++ b/docs/user/guide/github-review.zh.md @@ -25,7 +25,7 @@ printf '%s\n' "$DSH_GITHUB_WEBHOOK_SECRET" 在开发 checkout 中运行: ```sh -export DSH_GITHUB_REVIEW_WORKSPACE=/Users/cty/deepseek-harness +export DSH_GITHUB_REVIEW_WORKSPACE=/path/to/deepseek-harness pnpm dsh web --patch apps/cli/config/examples/github-review/cordis.yml ``` @@ -89,8 +89,8 @@ if (!response.ok || (await response.json()).automaticReview !== true) return nul ```js const workspacePath = { - 'deepseek-harness/deepseek-harness': '/Users/cty/deepseek-harness', - 'deepseek-harness/dsh-sdk': '/Users/cty/dsh-sdk', + 'deepseek-harness/deepseek-harness': '/path/to/deepseek-harness', + 'deepseek-harness/dsh-sdk': '/path/to/dsh-sdk', }[payload.repository.full_name] if (workspacePath === undefined) return null ``` diff --git a/packages/acp/acp/README.i18n.yaml b/packages/acp/acp/README.i18n.yaml index 49c1f93470..1eb4921876 100644 --- a/packages/acp/acp/README.i18n.yaml +++ b/packages/acp/acp/README.i18n.yaml @@ -2,5 +2,5 @@ # side as of the last confirmed-consistent state. Both languages carry equal authority; # after editing either side, bring the other along and re-record with: # pnpm run verify-translation-pairing --write packages/acp/acp/README.md -README.md: a3df8deea1541a65692f8ec31c96dd2960022931 -README.zh.md: 75b045de87073d7b164e400959edc3f82a056ee0 +README.md: 0e8689632d7115bd65f4849e2ba5d402a1cb62d4 +README.zh.md: 0dcde8c2467481454181d146a1eaae2a3ebac1dc diff --git a/packages/acp/acp/README.md b/packages/acp/acp/README.md index a3df8deea1..0e8689632d 100644 --- a/packages/acp/acp/README.md +++ b/packages/acp/acp/README.md @@ -81,7 +81,7 @@ Prompt settlement precedence is explicit cancellation, committed-output failure, ## Running -`pnpm --dir /path/to/deepseek-harness run demo:acp` boots the repository's automation server composition. The generic keyless conformance test drives this bin using only the ACP SDK, including model selection, MCP attachment, close, process restart, list/resume, and cancellation. +`pnpm --dir /path/to/deepseek-harness dsh --profile acp` boots the repository's automation server profile. The generic keyless conformance test launches this profile through `dsh` and drives it using only the ACP SDK, including model selection, MCP attachment, close, process restart, list/resume, and cancellation. ## Model Experience diff --git a/packages/acp/acp/README.zh.md b/packages/acp/acp/README.zh.md index 75b045de87..0dcde8c246 100644 --- a/packages/acp/acp/README.zh.md +++ b/packages/acp/acp/README.zh.md @@ -83,7 +83,7 @@ ACP 客户端是受信任的自动化控制器。stdio 声明授权 DSH 在会 ## 运行 -`pnpm --dir /path/to/deepseek-harness run demo:acp` 启动仓库的自动化服务器组合。通用 keyless conformance 测试只使用 ACP SDK 驱动此 bin,覆盖模型选择、MCP 挂载、关闭、进程重启、列出/恢复和取消。 +`pnpm --dir /path/to/deepseek-harness dsh --profile acp` 启动仓库的自动化服务器 profile。通用 keyless conformance 测试通过 `dsh` 启动此 profile,并只使用 ACP SDK 驱动它,覆盖模型选择、MCP 挂载、关闭、进程重启、列出/恢复和取消。 ## 模型体验 diff --git a/packages/subagent/subagent-claude-code/tests/fixtures/loader/driver.ts b/packages/subagent/subagent-claude-code/tests/fixtures/loader/driver.ts index 3f662268ac..b9d91773c3 100644 --- a/packages/subagent/subagent-claude-code/tests/fixtures/loader/driver.ts +++ b/packages/subagent/subagent-claude-code/tests/fixtures/loader/driver.ts @@ -70,7 +70,7 @@ try { .sort() process.stdout.write(`${JSON.stringify({ - registeredProviders: ctx.subagents.list(), + registeredProviders: ctx.subagents.list().sort(), providers, tools, jobTools, diff --git a/packages/subagent/subagent-claude-code/tests/loader-composition.e2e.ts b/packages/subagent/subagent-claude-code/tests/loader-composition.e2e.ts index 637f4bc184..5b55a09a11 100644 --- a/packages/subagent/subagent-claude-code/tests/loader-composition.e2e.ts +++ b/packages/subagent/subagent-claude-code/tests/loader-composition.e2e.ts @@ -40,7 +40,7 @@ describe('product-provider public Loader composition', () => { expect(stderr).toBe('') expect(JSON.parse(stdout)).toEqual({ - registeredProviders: ['codex', 'claude-primary', 'claude-secondary', 'claude-code'], + registeredProviders: ['claude-code', 'claude-primary', 'claude-secondary', 'codex'], providers: [ { name: 'codex',