diff --git a/apps/web/tests/expected/github-ready-review/conversation-expanded.expected.md b/apps/web/tests/expected/github-ready-review/conversation-expanded.expected.md
index a356d32c08..4abdc53e16 100644
--- a/apps/web/tests/expected/github-ready-review/conversation-expanded.expected.md
+++ b/apps/web/tests/expected/github-ready-review/conversation-expanded.expected.md
@@ -1,15 +1,15 @@
- tree "Sessions":
- treeitem "{{workspace}}" [expanded]
- - treeitem "Review deepseek-harness/deepseek-harness#314 Session actions for Review deepseek-harness/deepseek-harness#314 Archive session Pin session" [selected]:
- - text: Review deepseek-harness/deepseek-harness#314
- - button "Session actions for Review deepseek-harness/deepseek-harness#314"
+ - treeitem "Review deepseek-ai/deepseek-harness#314 Session actions for Review deepseek-ai/deepseek-harness#314 Archive session Pin session" [selected]:
+ - text: Review deepseek-ai/deepseek-harness#314
+ - button "Session actions for Review deepseek-ai/deepseek-harness#314"
- button "Archive session"
- button "Pin session"
---
- banner:
- - navigation "Session hierarchy": Review deepseek-harness/deepseek-harness#314
+ - navigation "Session hierarchy": Review deepseek-ai/deepseek-harness#314
- text: Standard mode
- button "More actions"
- button "Open right sidebar"
diff --git a/apps/web/tests/expected/github-ready-review/conversation.expected.md b/apps/web/tests/expected/github-ready-review/conversation.expected.md
index a356d32c08..4abdc53e16 100644
--- a/apps/web/tests/expected/github-ready-review/conversation.expected.md
+++ b/apps/web/tests/expected/github-ready-review/conversation.expected.md
@@ -1,15 +1,15 @@
- tree "Sessions":
- treeitem "{{workspace}}" [expanded]
- - treeitem "Review deepseek-harness/deepseek-harness#314 Session actions for Review deepseek-harness/deepseek-harness#314 Archive session Pin session" [selected]:
- - text: Review deepseek-harness/deepseek-harness#314
- - button "Session actions for Review deepseek-harness/deepseek-harness#314"
+ - treeitem "Review deepseek-ai/deepseek-harness#314 Session actions for Review deepseek-ai/deepseek-harness#314 Archive session Pin session" [selected]:
+ - text: Review deepseek-ai/deepseek-harness#314
+ - button "Session actions for Review deepseek-ai/deepseek-harness#314"
- button "Archive session"
- button "Pin session"
---
- banner:
- - navigation "Session hierarchy": Review deepseek-harness/deepseek-harness#314
+ - navigation "Session hierarchy": Review deepseek-ai/deepseek-harness#314
- text: Standard mode
- button "More actions"
- button "Open right sidebar"
diff --git a/apps/web/tests/github-ready-review.e2e.ts b/apps/web/tests/github-ready-review.e2e.ts
index abf798f95f..668fcecc95 100644
--- a/apps/web/tests/github-ready-review.e2e.ts
+++ b/apps/web/tests/github-ready-review.e2e.ts
@@ -30,7 +30,7 @@ const EXPANDED_EXPECTED = fileURLToPath(
const PROVIDER = 'github-webhook-review-test'
const MODEL = 'reply'
const SECRET = 'github-webhook-review-secret'
-const TITLE = 'Review deepseek-harness/deepseek-harness#314'
+const TITLE = 'Review deepseek-ai/deepseek-harness#314'
const REPLY = 'Review complete: no actionable findings.'
/** Deterministic model response for the webhook-created Session. */
@@ -136,10 +136,10 @@ describe.skipIf(MODE === 'record')('web e2e: GitHub ready-for-review', () => {
const payload = {
action: 'ready_for_review',
number: 314,
- repository: { full_name: 'deepseek-harness/deepseek-harness' },
+ repository: { full_name: 'deepseek-ai/deepseek-harness' },
pull_request: {
title: 'Fix session replay',
- html_url: 'https://github.com/deepseek-harness/deepseek-harness/pull/314',
+ html_url: 'https://github.com/deepseek-ai/deepseek-harness/pull/314',
draft: false,
user: { login: 'octocat' },
base: { ref: 'master', sha: 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' },
diff --git a/docs/upgrade-guide/v0.2.1-alpha.1/experimental-package-renames/guide.i18n.yaml b/docs/upgrade-guide/v0.2.1-alpha.1/experimental-package-renames/guide.i18n.yaml
index bfead634eb..3b0f803c4c 100644
--- a/docs/upgrade-guide/v0.2.1-alpha.1/experimental-package-renames/guide.i18n.yaml
+++ b/docs/upgrade-guide/v0.2.1-alpha.1/experimental-package-renames/guide.i18n.yaml
@@ -3,8 +3,8 @@
# After editing either side, bring the other along and re-record with:
# pnpm run verify-translation-pairing --write docs/upgrade-guide/v0.2.1-alpha.1/experimental-package-renames/guide.md
/:
- en: 222547ce1ccbf1cb
- zh: 7890c66934821e45
+ en: dd6fc9abae171d7b
+ zh: 7aed30461003cbef
/experimental-package-names-and-explicit-composition:
en: 1ddb73ece556f6e5
zh: 1f169e6d590f45e2
@@ -12,5 +12,5 @@
en: ae31baa97d4514be
zh: 936e1120fc433f1a
/experimental-package-names-and-explicit-composition/migration:
- en: 80b390d9ed786f0b
- zh: 4606a6e46a67ce2b
+ en: e3c79a2189f7edfd
+ zh: d47869013fdd481b
diff --git a/docs/upgrade-guide/v0.2.1-alpha.1/experimental-package-renames/guide.md b/docs/upgrade-guide/v0.2.1-alpha.1/experimental-package-renames/guide.md
index fd2fecf0fa..203aae729c 100644
--- a/docs/upgrade-guide/v0.2.1-alpha.1/experimental-package-renames/guide.md
+++ b/docs/upgrade-guide/v0.2.1-alpha.1/experimental-package-renames/guide.md
@@ -1,6 +1,6 @@
---
kind: upgrade-guide
-description: "Nine optional packages use experimental names, and hook, webhook, Ralph, and badge configurations require explicit installation or insertion."
+description: "Nine optional packages use experimental names, and hook, webhook, terminal, Ralph, and badge configurations require explicit installation or insertion."
---
# Experimental package names and explicit composition
@@ -28,7 +28,7 @@ The CLI and Python runtime do not install the relocated hook bridges or Ralph. T
## Migration
1. Replace old npm names in dependencies, imports, profile patches, and overlays using the table. Do not rewrite recorded Session events.
-2. Install the packages and missing peers into each affected profile. Profiles disable automatic peer installation. For example, run `dsh plugin --profile web add @deepseek-ai/dsh-experimental-hooks-claude-code @deepseek-ai/dsh-experimental-hook-protocol`. The Codex bridge needs the same protocol peer. The GitHub adapter needs `@deepseek-ai/dsh-experimental-webhook` alongside `@deepseek-ai/dsh-experimental-webhook-github`.
+2. Install the packages and missing peers into each affected profile. Profiles disable automatic peer installation. For example, run `dsh plugin --profile web add @deepseek-ai/dsh-experimental-hooks-claude-code @deepseek-ai/dsh-experimental-hook-protocol`. The Codex bridge needs the same protocol peer. The GitHub adapter needs `@deepseek-ai/dsh-experimental-webhook` alongside `@deepseek-ai/dsh-experimental-webhook-github`. Terminal-tool profiles also need `@deepseek-ai/dsh-experimental-tool-terminal` explicitly installed; the CLI ships the terminal service and backend, but the tool is outside its production dependencies.
3. Replace an override of a removed row with a complete insertion. Add preset-local tools inside that preset's `config.plugins`, including the services they require. A host badge insertion is:
```yaml
diff --git a/docs/upgrade-guide/v0.2.1-alpha.1/experimental-package-renames/guide.zh.md b/docs/upgrade-guide/v0.2.1-alpha.1/experimental-package-renames/guide.zh.md
index d7ce22f824..c3f874e150 100644
--- a/docs/upgrade-guide/v0.2.1-alpha.1/experimental-package-renames/guide.zh.md
+++ b/docs/upgrade-guide/v0.2.1-alpha.1/experimental-package-renames/guide.zh.md
@@ -1,6 +1,6 @@
---
kind: upgrade-guide
-description: "九个可选包使用实验性名称,钩子、webhook、Ralph 和徽章配置需要显式安装或插入。"
+description: "九个可选包使用实验性名称,钩子、webhook、终端、Ralph 和徽章配置需要显式安装或插入。"
---
# 实验性包名称与显式组合
@@ -28,7 +28,7 @@ CLI 与 Python 运行时不再安装迁移后的钩子桥接或 Ralph。CLI 不
## 迁移
1. 按表替换依赖、导入、profile patch 和 overlay 中的旧 npm 名称。不要改写已记录的 Session 事件。
-2. 将包与缺失的 peer 安装到每个受影响的 profile。Profile 禁用自动 peer 安装。例如,运行 `dsh plugin --profile web add @deepseek-ai/dsh-experimental-hooks-claude-code @deepseek-ai/dsh-experimental-hook-protocol`。Codex 桥接需要相同的协议 peer。GitHub 适配器需要同时安装 `@deepseek-ai/dsh-experimental-webhook` 与 `@deepseek-ai/dsh-experimental-webhook-github`。
+2. 将包与缺失的 peer 安装到每个受影响的 profile。Profile 禁用自动 peer 安装。例如,运行 `dsh plugin --profile web add @deepseek-ai/dsh-experimental-hooks-claude-code @deepseek-ai/dsh-experimental-hook-protocol`。Codex 桥接需要相同的协议 peer。GitHub 适配器需要同时安装 `@deepseek-ai/dsh-experimental-webhook` 与 `@deepseek-ai/dsh-experimental-webhook-github`。使用终端工具的 profile 还需显式安装 `@deepseek-ai/dsh-experimental-tool-terminal`;CLI 随附终端服务与后端,但其生产依赖不包含该工具。
3. 将覆盖已删除行的 patch 替换为完整插入。在预设的 `config.plugins` 中添加预设内工具及其需要的服务。宿主徽章插入示例:
```yaml
diff --git a/docs/user/guide/github-review.i18n.yaml b/docs/user/guide/github-review.i18n.yaml
index 485e50afc4..921406a949 100644
--- a/docs/user/guide/github-review.i18n.yaml
+++ b/docs/user/guide/github-review.i18n.yaml
@@ -15,8 +15,8 @@
en: f18a2969b3082da9
zh: 87d3d0e58d25a62f
/create-review-sessions-from-github-webhooks/rule-behavior:
- en: e90b3061a15fdedc
- zh: a8e9549e732314f6
+ en: 3306087b78170a99
+ zh: 7c7b0baefa1dc303
/create-review-sessions-from-github-webhooks/programmatic-extensions:
en: d448fc3e440a0ec6
zh: 18568898933ef054
diff --git a/docs/user/guide/github-review.md b/docs/user/guide/github-review.md
index f0b2f24fe2..6dd900af46 100644
--- a/docs/user/guide/github-review.md
+++ b/docs/user/guide/github-review.md
@@ -62,7 +62,7 @@ Active: yes
## Rule behavior
-The rule accepts only source `primary-github`, repository `deepseek-harness/deepseek-harness`, event `pull_request`, and action `ready_for_review`. It passes the exact head SHA plus selected PR fields to the review prompt, labeling the JSON as untrusted metadata and forbidding file, branch, PR, or GitHub mutation.
+The rule accepts only source `primary-github`, repository `deepseek-ai/deepseek-harness`, event `pull_request`, and action `ready_for_review`. It passes the exact head SHA plus selected PR fields to the review prompt, labeling the JSON as untrusted metadata and forbidding file, branch, PR, or GitHub mutation.
The Session request selects the `standard` agent preset and `read-only` permission preset. `workspacePath` is canonicalized through `WorkspaceRegistry.create()`, so the first matching delivery creates the Web Workspace when absent and later deliveries reuse it.
@@ -86,7 +86,7 @@ It can also map repositories to different local paths:
```js
const workspacePath = {
- 'deepseek-harness/deepseek-harness': '/path/to/deepseek-harness',
+ 'deepseek-ai/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 98db87f2bc..f3d11abad4 100644
--- a/docs/user/guide/github-review.zh.md
+++ b/docs/user/guide/github-review.zh.md
@@ -62,7 +62,7 @@ Active: yes
## 规则行为
-规则只接受来源 `primary-github`、仓库 `deepseek-harness/deepseek-harness`、事件 `pull_request` 与动作 `ready_for_review`。它会把精确 head SHA 和选定 PR 字段传给评审提示词,把 JSON 标为不受信任的元数据,并禁止修改文件、分支、PR 或 GitHub 状态。
+规则只接受来源 `primary-github`、仓库 `deepseek-ai/deepseek-harness`、事件 `pull_request` 与动作 `ready_for_review`。它会把精确 head SHA 和选定 PR 字段传给评审提示词,把 JSON 标为不受信任的元数据,并禁止修改文件、分支、PR 或 GitHub 状态。
Session 请求选择 `standard` agent preset 与 `read-only` permission preset。`workspacePath` 通过 `WorkspaceRegistry.create()` 规范化,因此第一次匹配交付会在 Workspace 不存在时创建它,后续交付会复用它。
@@ -86,7 +86,7 @@ if (!response.ok || (await response.json()).automaticReview !== true) return nul
```js
const workspacePath = {
- 'deepseek-harness/deepseek-harness': '/path/to/deepseek-harness',
+ 'deepseek-ai/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/README.i18n.yaml b/packages/README.i18n.yaml
index 4e0d8a1cf7..4412f95938 100644
--- a/packages/README.i18n.yaml
+++ b/packages/README.i18n.yaml
@@ -15,8 +15,8 @@
en: ffc55792d6e922e1
zh: 83bd759638857e2d
/packages/package-groups:
- en: 52d0ed3ab9643687
- zh: 79954308b188080b
+ en: ff0b0b8388457f47
+ zh: b9ace22bb3cbad48
/packages/release-expectations:
en: 236081c1659b25ab
zh: 809110adf003802e
diff --git a/packages/README.md b/packages/README.md
index 664414dbc4..9485cc1001 100644
--- a/packages/README.md
+++ b/packages/README.md
@@ -40,7 +40,7 @@ Every package lives in exactly one group; new packages join existing groups, and
| [`subprocess/`](subprocess/README.md) | Subprocess capability family: Service Definition + local process-tree provider |
| [`ssh/`](ssh/README.md) | POSIX remote connection with paired filesystem, subprocess and sandbox providers |
| [`shell/`](shell/README.md) | Bash capability family: executor seam, local impl, model-facing tools |
-| [`terminal/`](terminal/README.md) | Persistent PTY capability family: owner-scoped sessions, local implementation, model-facing tools |
+| [`terminal/`](terminal/README.md) | Persistent PTY service with owner-scoped sessions and a local shell backend |
| [`ptc-runtime/`](ptc-runtime/README.md) | PTC execution capability family: Service Definition + sandboxed Node provider + PTC mode Consumer |
| [`computer-use/`](computer-use/README.md) | Exclusive named desktop-provider registration |
| [`browser-use/`](browser-use/README.md) | Exclusive named browser-provider registration |
@@ -53,8 +53,8 @@ Every package lives in exactly one group; new packages join existing groups, and
| [`context/`](context/README.md) | Model-visible request context: workspace instructions, time context, references |
| [`subagent/`](subagent/README.md) | Subagent capability family: provider-registry contract and model-facing delegation tools |
| [`jobs/`](jobs/README.md) | Generic background-job runtime and model-facing job control tools |
-| [`experimental/`](experimental/README.md) | Pre-stable prototypes with explicit private exceptions |
-| [`workflow/`](workflow/README.md) | Workflow seam, PTC process engine, and model-facing `workflow`/`ralph` tools |
+| [`experimental/`](experimental/README.md) | Capabilities under evaluation; [status and support policy](experimental/README.md#status) |
+| [`workflow/`](workflow/README.md) | Workflow seam, PTC process engine, and the model-facing `workflow` tool |
| [`web/`](web/README.md) | Web capability family: seam, search/fetch providers, model-facing web tools |
| [`document/`](document/README.md) | Shared Host Office-to-PDF conversion |
| [`attachment/`](attachment/README.md) | Durable attachment identity, validation, local content-addressed storage |
diff --git a/packages/README.zh.md b/packages/README.zh.md
index 7eeec29331..ec2a9b81f8 100644
--- a/packages/README.zh.md
+++ b/packages/README.zh.md
@@ -40,7 +40,7 @@ harness 由 `packages/` 下的 npm 包组装而成,按能力系列分组:会
| [`subprocess/`](subprocess/README.zh.md) | 子进程能力系列:Service Definition + 本地进程树提供方 |
| [`ssh/`](ssh/README.zh.md) | POSIX 远端连接及配套文件系统、子进程与沙箱提供方 |
| [`shell/`](shell/README.zh.md) | Bash 能力系列:执行器 seam、本地实现、面向模型的工具 |
-| [`terminal/`](terminal/README.zh.md) | 持久 PTY 能力系列:限定所有者范围的会话、本地实现、面向模型的工具 |
+| [`terminal/`](terminal/README.zh.md) | 持久 PTY 服务:限定所有者范围的会话与本地 shell 后端 |
| [`ptc-runtime/`](ptc-runtime/README.zh.md) | PTC 执行能力族:Service Definition + 沙箱 Node 提供方 + PTC mode Consumer |
| [`computer-use/`](computer-use/README.zh.md) | 按名称独占注册桌面提供方 |
| [`browser-use/`](browser-use/README.zh.md) | 按名称独占注册浏览器提供方 |
@@ -53,8 +53,8 @@ harness 由 `packages/` 下的 npm 包组装而成,按能力系列分组:会
| [`context/`](context/README.zh.md) | 模型可见请求上下文:workspace 指令、时间上下文、引用 |
| [`subagent/`](subagent/README.zh.md) | subagent 能力系列:提供方注册表约定和面向模型的委托工具 |
| [`jobs/`](jobs/README.zh.md) | 通用后台任务运行时和面向模型的作业控制工具 |
-| [`experimental/`](experimental/README.zh.md) | 预稳定原型,包含显式私有例外 |
-| [`workflow/`](workflow/README.zh.md) | 工作流 seam、PTC 进程引擎、面向模型的 `workflow`/`ralph` 工具 |
+| [`experimental/`](experimental/README.zh.md) | 仍在评估中的能力;[状态与支持策略](experimental/README.zh.md#status) |
+| [`workflow/`](workflow/README.zh.md) | 工作流 seam、PTC 进程引擎、面向模型的 `workflow` 工具 |
| [`web/`](web/README.zh.md) | Web 能力系列:seam、搜索/获取提供方、面向模型的 Web 工具 |
| [`document/`](document/README.zh.md) | 共享宿主 Office 到 PDF 转换 |
| [`attachment/`](attachment/README.zh.md) | 持久附件标识、校验、本地内容寻址存储 |
diff --git a/packages/experimental/claude-code-mods/README.i18n.yaml b/packages/experimental/claude-code-mods/README.i18n.yaml
index 3c0d307915..249bc80575 100644
--- a/packages/experimental/claude-code-mods/README.i18n.yaml
+++ b/packages/experimental/claude-code-mods/README.i18n.yaml
@@ -45,8 +45,8 @@
en: a141066b146cef7c
zh: fe91851f05c008c4
/deepseek-ai-dsh-experimental-claude-code-mods/further-exploration:
- en: 66d98f72199cbb41
- zh: 0409978863af3b1e
+ en: e42263bd872fd588
+ zh: 07805adc5d7a661a
/deepseek-ai-dsh-experimental-claude-code-mods/model-experience:
en: 215e7ba838619b7b
zh: a311da3843709f90
diff --git a/packages/experimental/claude-code-mods/README.md b/packages/experimental/claude-code-mods/README.md
index 23e3ae2067..9b98b6f7a8 100644
--- a/packages/experimental/claude-code-mods/README.md
+++ b/packages/experimental/claude-code-mods/README.md
@@ -148,7 +148,7 @@ A call whose service is not composed rejects with the missing service's package
- [Claude Code mods reference](https://code.claude.com/docs/en/plugins/mods/reference) — the events, methods, and limits this bridge mirrors.
- [The Web band](../client-ui-claude-code-mods/README.md) — the Client package that draws `ui.render` trees in the input dock.
- [Experimental packages](../README.md) — publication policy and dependency isolation.
-- [Hooks group](../README.md) — the settings-hook bridges; a plugin's `hooks.json` settings hooks need `dsh-experimental-hooks-claude-code`.
+- [Claude Code hook bridge](../hooks-claude-code/README.md) — the settings-hook bridge; a plugin's `hooks.json` settings hooks need `dsh-experimental-hooks-claude-code`.
- [Tool execution pipeline](../../../docs/tool-execution-pipeline.md) — the waterfalls `tool.call` runs around.
- [Human commands](../../interaction/commands/README.md) — the registry `$.command.register` lands on.
diff --git a/packages/experimental/claude-code-mods/README.zh.md b/packages/experimental/claude-code-mods/README.zh.md
index 0278f65622..65956b7e30 100644
--- a/packages/experimental/claude-code-mods/README.zh.md
+++ b/packages/experimental/claude-code-mods/README.zh.md
@@ -148,7 +148,7 @@ Blast Radius 的 DSH 包装使用当前运行的可执行文件提供 Node 计
- [Claude Code 模组参考](https://code.claude.com/docs/en/plugins/mods/reference) — 本桥接镜像的事件、方法与限制。
- [Web 横幅](../client-ui-claude-code-mods/README.zh.md) — 在输入停靠区绘制 `ui.render` 树的 Client 包。
- [实验性包](../README.zh.md) — 发布策略与依赖隔离。
-- [Hooks 组](../README.zh.md) — 设置钩子桥接;插件 `hooks.json` 中的设置钩子需要 `dsh-experimental-hooks-claude-code`。
+- [Claude Code 钩子桥接](../hooks-claude-code/README.zh.md) — 设置钩子桥接;插件 `hooks.json` 中的设置钩子需要 `dsh-experimental-hooks-claude-code`。
- [工具执行流水线](../../../docs/tool-execution-pipeline.zh.md) — `tool.call` 所包裹的瀑布流。
- [人类命令](../../interaction/commands/README.zh.md) — `$.command.register` 落到的注册表。
diff --git a/packages/experimental/skill-badge/README.i18n.yaml b/packages/experimental/skill-badge/README.i18n.yaml
index 9cce41d7d3..cead4f011f 100644
--- a/packages/experimental/skill-badge/README.i18n.yaml
+++ b/packages/experimental/skill-badge/README.i18n.yaml
@@ -18,8 +18,8 @@
en: a559a5ed8a76e342
zh: 6558f9af8d6c9625
/deepseek-ai-dsh-experimental-skill-badge/use-this-package/when-to-choose-it:
- en: a3276561ace9e681
- zh: d2541ab4846fefa2
+ en: 4e424f3ab2a8b5b1
+ zh: e38162f15f0a8354
/deepseek-ai-dsh-experimental-skill-badge/use-this-package/enable-the-plugin:
en: bdd4d54b093d597b
zh: f1628bc93844f35d
@@ -27,8 +27,8 @@
en: 7144db5613266a9b
zh: d1b7edf6c1253e9a
/deepseek-ai-dsh-experimental-skill-badge/use-this-package/observable-success-and-failures:
- en: 1b3c8501e0899f1e
- zh: 909684f272051d5f
+ en: dd749b384f657fa8
+ zh: d2ab3f5adf29bd33
/deepseek-ai-dsh-experimental-skill-badge/understand-the-implementation:
en: 63465b0133f30e85
zh: 84bebb7c1fe0ceba
@@ -45,8 +45,8 @@
en: b9912bc3f1ba0680
zh: e288cc67b6d079f6
/deepseek-ai-dsh-experimental-skill-badge/model-experience/kv-cache-effect:
- en: 6a8366520852a607
- zh: 453ec29827b82bbc
+ en: 5b5bcb4fc0513bef
+ zh: 67a1d939c6a18c2e
/deepseek-ai-dsh-experimental-skill-badge/known-limitations-and-deferred-work:
en: c7e405ebbc1d4602
zh: 05a57fb4359da265
diff --git a/packages/experimental/skill-badge/README.md b/packages/experimental/skill-badge/README.md
index 91777b0785..af6a5748cd 100644
--- a/packages/experimental/skill-badge/README.md
+++ b/packages/experimental/skill-badge/README.md
@@ -29,7 +29,7 @@ Enable the plugin to make the `dsh-badge` skill available in the session skill c
### When to choose it
-Choose this provider when content produced with DeepSeek Harness should carry official attribution badges, and the deployment wants the badge skill available to agents without storing it in a local skill directory. Skip it when the badge is irrelevant to the deployment — the plugin is disabled by default and adds nothing until enabled.
+Choose this provider when content produced with DeepSeek Harness should carry official attribution badges, and the deployment wants the badge skill available to agents without storing it in a local skill directory. Skip it when the badge is irrelevant to the deployment. The default composition omits the plugin; installation and an explicit active row are required.
### Enable the plugin
@@ -50,7 +50,7 @@ After enabling, `dsh-badge` appears in the available skills of the session catal
### Observable success and failures
-Enabling the plugin makes `dsh-badge` appear in the catalog and loadable by name; disabling or omitting the row keeps it out of every catalog. Because the provider is immutable, discovery always succeeds with exactly one skill and never reports partial results.
+An explicitly inserted active row makes `dsh-badge` appear in the catalog and loadable by name. Without an active row, this provider contributes no catalog entry. Because the provider is immutable, discovery always succeeds with exactly one skill and never reports partial results.
-----
@@ -95,7 +95,7 @@ Indirectly, through `dsh-tool-skill`, which renders the provider's catalog entry
#### KV Cache effect
-Disabled by default, the plugin changes no request. When enabled, its catalog entry and any loaded body change the provider KV prefix at their insertion points.
+An omitted plugin adds no request content. When its inserted row is active, its catalog entry and any loaded body change the provider KV prefix at their insertion points.
## Known Limitations and Deferred Work
diff --git a/packages/experimental/skill-badge/README.zh.md b/packages/experimental/skill-badge/README.zh.md
index 1dcac1eaf1..78ba404e0a 100644
--- a/packages/experimental/skill-badge/README.zh.md
+++ b/packages/experimental/skill-badge/README.zh.md
@@ -29,7 +29,7 @@ agent(智能体)可以通过该内置提供方加载官方「powered by dsh
### 何时选择
-当用 DeepSeek Harness 生成的内容应携带官方署名徽章、且部署方希望该徽章 skill 对 agent 可用而无需存入本地 skill 目录时,选择此提供方。当徽章与部署无关时,请跳过——插件默认禁用,启用前不增加任何东西。
+当用 DeepSeek Harness 生成的内容应携带官方署名徽章、且部署方希望该徽章 skill 对 agent 可用而无需存入本地 skill 目录时,选择此提供方。当徽章与部署无关时,请跳过。默认组合省略此插件;使用它需要安装包并显式插入活动行。
### 启用插件
@@ -50,7 +50,7 @@ agent(智能体)可以通过该内置提供方加载官方「powered by dsh
### 可观察的成功与失败
-启用插件会使 `dsh-badge` 出现在目录中并可凭名称加载;禁用或省略该行则它不会出现在任何目录中。由于提供方不可变,发现始终成功且恰好返回一个 skill,绝不会报告部分结果。
+显式插入的活动行会使 `dsh-badge` 出现在目录中并可凭名称加载。没有活动行时,此提供方不贡献目录条目。由于提供方不可变,发现始终成功且恰好返回一个 skill,绝不会报告部分结果。
-----
@@ -95,7 +95,7 @@ agent(智能体)可以通过该内置提供方加载官方「powered by dsh
#### KV Cache 影响
-该插件默认禁用,不会改变任何请求。启用后,其目录条目和任何已加载正文都会在各自插入点改变提供方的 KV 前缀。
+省略的插件不增加请求内容。插入的行处于活动状态时,其目录条目和任何已加载正文都会在各自插入点改变提供方的 KV 前缀。
## 已知限制与延期工作
diff --git a/packages/experimental/webhook-github/examples/github-review/cordis.yml b/packages/experimental/webhook-github/examples/github-review/cordis.yml
index de2abcbf97..af12155a50 100644
--- a/packages/experimental/webhook-github/examples/github-review/cordis.yml
+++ b/packages/experimental/webhook-github/examples/github-review/cordis.yml
@@ -9,7 +9,7 @@
name: './github-ready-review-rule.mjs'
config:
source: primary-github
- repository: deepseek-harness/deepseek-harness
+ repository: deepseek-ai/deepseek-harness
workspacePath: !!js process.env.DSH_GITHUB_REVIEW_WORKSPACE ?? process.cwd()
agentPreset: standard
permissionPreset: read-only
diff --git a/packages/terminal/README.i18n.yaml b/packages/terminal/README.i18n.yaml
index 1379be4cf2..13ae415761 100644
--- a/packages/terminal/README.i18n.yaml
+++ b/packages/terminal/README.i18n.yaml
@@ -3,8 +3,8 @@
# After editing either side, bring the other along and re-record with:
# pnpm run verify-translation-pairing --write packages/terminal/README.md
/:
- en: fdd04a148c1d980e
- zh: 49025df3a0380a37
+ en: c7b99e9725406516
+ zh: 49bcc1910c4dfc87
/terminal-persistent-pty-capability-family:
en: 23811d44b564b29d
zh: a74d2f7625f5f6dd
@@ -15,8 +15,8 @@
en: 1eb35b015a6c423f
zh: a8a3dceee2c9e943
/terminal-persistent-pty-capability-family/packages:
- en: f024e6265bf65cd9
- zh: 6ff2b362466513f5
+ en: 97c1c1589ece792d
+ zh: 5e1a4751b5e0082e
/terminal-persistent-pty-capability-family/related-documentation:
en: a6b75a7138b492dc
zh: c0417c9fb9ed69f0
diff --git a/packages/terminal/README.md b/packages/terminal/README.md
index a00e9339bf..9a09f296d6 100644
--- a/packages/terminal/README.md
+++ b/packages/terminal/README.md
@@ -1,5 +1,5 @@
---
-description: "Package map for the persistent terminal capability family: the owner-scoped ctx.terminals service, the shell backend that starts interactive bash or pwsh, and the six model-facing tools."
+description: "Package map for the persistent terminal service and the shell backend that starts interactive bash or pwsh."
kind: "package-group"
---
@@ -22,7 +22,7 @@ The `terminal/` family lets agents keep interactive shell and REPL sessions aliv
## Packages
-The family is one session service, one shell backend, and one set of model-facing tools. Each child README owns the full contract; the subsystem reference owns the shared vocabulary and the generated service surface.
+This group contains one session service and one shell backend. Each child README owns the full contract; the subsystem reference owns the shared vocabulary and the generated service surface.
| Package | Role | ctx key |
|---|---|---|
diff --git a/packages/terminal/README.zh.md b/packages/terminal/README.zh.md
index d55d08946b..1730eb68fc 100644
--- a/packages/terminal/README.zh.md
+++ b/packages/terminal/README.zh.md
@@ -1,5 +1,5 @@
---
-description: "持久终端能力家族的包映射:限定所有者范围的 ctx.terminals 服务、启动交互式 bash 或 pwsh 的 shell 后端,以及 6 个面向模型的工具。"
+description: "持久终端服务与启动交互式 bash 或 pwsh 的 shell 后端的包映射。"
kind: "package-group"
---
@@ -22,7 +22,7 @@ kind: "package-group"
## 包
-该家族包含一个会话服务、一个 shell 后端与一组面向模型的工具。完整约定由各子级 README 负责;共享词汇与生成的服务接口面由子系统参考负责。
+本组包含一个会话服务与一个 shell 后端。完整约定由各子级 README 负责;共享词汇与生成的服务接口面由子系统参考负责。
| 包 | 角色 | ctx 键 |
|---|---|---|
diff --git a/packages/workflow/README.i18n.yaml b/packages/workflow/README.i18n.yaml
index c8fb53aaf5..757ed2c52c 100644
--- a/packages/workflow/README.i18n.yaml
+++ b/packages/workflow/README.i18n.yaml
@@ -9,8 +9,8 @@
en: 8c61f1eb2b3756e5
zh: ee5ac986d79f877c
/packages-workflow/summary:
- en: 3fee8a896346ff4d
- zh: fb37dbe9ac084eb5
+ en: a9979139cc977767
+ zh: 236b94317a7cdb0d
/packages-workflow/table-of-contents:
en: 1eb35b015a6c423f
zh: a8a3dceee2c9e943
diff --git a/packages/workflow/README.md b/packages/workflow/README.md
index ae56fedb4c..320fe77da0 100644
--- a/packages/workflow/README.md
+++ b/packages/workflow/README.md
@@ -9,7 +9,7 @@ English | [中文](README.zh.md)
## Summary
-The workflow group lets an agent run orchestration scripts that delegate work to subagents and return a final value. The `workflow` tool supports scripted fan-out; the opt-in `ralph` tool runs a fixed sequence of fresh agents. Scripts use the shared PTC Node process runtime under the calling Session's file policy. Workflow hooks and child lifecycle remain owned by the workflow engine.
+The workflow group lets an agent run orchestration scripts that delegate work to subagents and return a final value. The `workflow` tool supports scripted fan-out. Scripts use the shared PTC Node process runtime under the calling Session's file policy. Workflow hooks and child lifecycle remain owned by the workflow engine.
## Table of Contents
diff --git a/packages/workflow/README.zh.md b/packages/workflow/README.zh.md
index 0f502d0ac9..47c47a9c4c 100644
--- a/packages/workflow/README.zh.md
+++ b/packages/workflow/README.zh.md
@@ -9,7 +9,7 @@ kind: "package-group"
## 概述
-workflow 组让 agent(智能体)可以运行编排脚本,将工作委派给 subagent 并返回最终值。`workflow` 工具支持脚本化扇出;需显式启用的 `ralph` 工具运行固定的全新 agent 序列。脚本使用共享 PTC Node 进程运行时,遵守调用 Session 的文件策略。工作流钩子和子 agent 生命周期仍由工作流引擎负责。
+workflow 组让 agent(智能体)可以运行编排脚本,将工作委派给 subagent 并返回最终值。`workflow` 工具支持脚本化扇出。脚本使用共享 PTC Node 进程运行时,遵守调用 Session 的文件策略。工作流钩子和子 agent 生命周期仍由工作流引擎负责。
## 目录
diff --git a/scripts/verify-product-use.spec.ts b/scripts/verify-product-use.spec.ts
index 8615d57898..4c10f5fce5 100644
--- a/scripts/verify-product-use.spec.ts
+++ b/scripts/verify-product-use.spec.ts
@@ -99,6 +99,16 @@ describe('product package use', () => {
expect(failures(root, declarations())).toContain('stale optional policy')
})
+ it('assigns relative cross-package imports to one source owner on every platform', () => {
+ const root = fixture()
+ const baseline = verifyProductUse(root, {}).sourceCount
+ pkg(root, candidateDir, candidate)
+ write(root, 'apps/cli/src/bin.ts', "import '../../../packages/core/candidate/src/index.ts'")
+ expect(verifyProductUse(root, {})).toMatchObject({ failures: [], sourceCount: baseline + 1 })
+ write(root, 'apps/cli/src/bin.ts', `import '../../../packages/core/candidate/src/index.ts'\nimport '${candidate}'`)
+ expect(verifyProductUse(root, {})).toMatchObject({ failures: [], sourceCount: baseline + 1 })
+ })
+
it('follows only reached local modules, including cycles and worker URLs', () => {
const root = fixture()
pkg(root, candidateDir, candidate)
diff --git a/scripts/verify-product-use.ts b/scripts/verify-product-use.ts
index 00e10ed86a..1a08186539 100644
--- a/scripts/verify-product-use.ts
+++ b/scripts/verify-product-use.ts
@@ -101,7 +101,7 @@ export function verifyProductUse(
const resolveModule = (specifier: string, from: string): string | undefined => {
const resolved = ts.resolveModuleName(specifier, from, converted.options, host, resolutionCache).resolvedModule
if (resolved === undefined || resolved.resolvedFileName.replaceAll('\\', '/').includes('/node_modules/')) return undefined
- const path = resolved.resolvedFileName
+ const path = resolve(resolved.resolvedFileName)
if (/(?:^|\/)lib\//.test(display(path)) || path.endsWith('.d.ts')) return undefined
return path
}