dsh-primer 0.4.5 → 0.4.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.en.md +6 -6
- package/README.es.md +6 -6
- package/README.hi.md +6 -6
- package/README.md +7 -7
- package/README.pt.md +6 -6
- package/SKILL.md +11 -9
- package/data/facts.json +35 -15
- package/data/seams/index.json +1526 -98
- package/data/standards.json +17 -11
- package/dist/dsh-plugin-dev.js +7 -7
- package/guide/links.md +2 -2
- package/guide/migration-0.2.md +105 -14
- package/guide/plugin-dev-guide.md +6 -6
- package/guide/quick-reference.es.md +4 -4
- package/guide/quick-reference.hi.md +4 -4
- package/guide/quick-reference.md +4 -4
- package/guide/quick-reference.pt.md +4 -4
- package/guide/quick-reference.zh-CN.md +4 -4
- package/guide/standards.md +1 -1
- package/guide/standards.zh-CN.md +1 -1
- package/guide/unfixed-issues.md +2 -2
- package/guide/version-matrix.md +65 -42
- package/package.json +13 -7
- package/references/official-docs/CLAUDE.md +1 -1
- package/references/official-docs/README.md +9 -4
- package/references/official-docs/SNAPSHOT.md +7 -5
- package/references/official-docs/docs/capability-seams.i18n.yaml +2 -2
- package/references/official-docs/docs/capability-seams.md +4 -0
- package/references/official-docs/docs/capability-seams.zh.md +4 -0
- package/references/official-docs/docs/config-catalog.md +26 -28
- package/references/official-docs/docs/config-catalog.zh.md +26 -28
- package/references/official-docs/docs/defensive-patterns/package-surface.i18n.yaml +2 -2
- package/references/official-docs/docs/defensive-patterns/package-surface.md +0 -1
- package/references/official-docs/docs/defensive-patterns/package-surface.zh.md +0 -1
- package/references/official-docs/docs/event-producer-consumer.md +1 -1
- package/references/official-docs/docs/event-producer-consumer.zh.md +1 -1
- package/references/official-docs/docs/module-graph.md +12 -17
- package/references/official-docs/docs/module-graph.zh.md +12 -17
- package/references/official-docs/docs/subsystems/computer-use.i18n.yaml +2 -2
- package/references/official-docs/docs/subsystems/computer-use.md +1 -1
- package/references/official-docs/docs/subsystems/computer-use.zh.md +1 -1
- package/references/official-docs/docs/subsystems/persistence.md +19 -0
- package/references/official-docs/docs/subsystems/persistence.zh.md +19 -0
- package/references/official-docs/docs/subsystems/ptc-runtime.i18n.yaml +4 -4
- package/references/official-docs/docs/subsystems/ptc-runtime.md +8 -48
- package/references/official-docs/docs/subsystems/ptc-runtime.zh.md +8 -48
- package/references/official-docs/docs/tool-catalog.i18n.yaml +2 -2
- package/references/official-docs/docs/tool-catalog.md +1 -1
- package/references/official-docs/docs/tool-catalog.zh.md +1 -1
- package/references/official-docs/docs/upgrade-guide/v0.2.2-rc.1/cua-native-platform/guide.i18n.yaml +4 -4
- package/references/official-docs/docs/upgrade-guide/v0.2.2-rc.1/cua-native-platform/guide.md +7 -7
- package/references/official-docs/docs/upgrade-guide/v0.2.2-rc.1/cua-native-platform/guide.zh.md +7 -7
- package/references/official-plugin-dev-skill.md +16 -12
- package/references/sources.md +2 -2
- package/scripts/check-docs-drift.mjs +121 -0
- package/scripts/check-docs-drift.ps1 +4 -1
- package/scripts/check-facts.mjs +81 -3
- package/scripts/sync-official-docs.ps1 +16 -5
- package/templates/js/README-es.md +1 -1
- package/templates/js/README-hi.md +1 -1
- package/templates/js/README-pt.md +1 -1
- package/templates/js/README-zh.md +1 -1
- package/templates/js/README.md +1 -1
- package/templates/ts/README-es.md +1 -1
- package/templates/ts/README-hi.md +1 -1
- package/templates/ts/README-pt.md +1 -1
- package/templates/ts/README-zh.md +1 -1
- package/templates/ts/README.md +1 -1
- package/references/official-docs/docs/upgrade-guide/v0.2.2-rc.1/package-export-cleanup/guide.i18n.yaml +0 -16
- package/references/official-docs/docs/upgrade-guide/v0.2.2-rc.1/package-export-cleanup/guide.md +0 -26
- package/references/official-docs/docs/upgrade-guide/v0.2.2-rc.1/package-export-cleanup/guide.zh.md +0 -26
- package/references/official-docs/docs/upgrade-guide/v0.2.2-rc.1/ptc-bootstrap-protocol/guide.i18n.yaml +0 -16
- package/references/official-docs/docs/upgrade-guide/v0.2.2-rc.1/ptc-bootstrap-protocol/guide.md +0 -25
- package/references/official-docs/docs/upgrade-guide/v0.2.2-rc.1/ptc-bootstrap-protocol/guide.zh.md +0 -25
- package/references/official-docs/docs/upgrade-guide/v0.2.2-rc.1/ptc-inspect-output/guide.i18n.yaml +0 -16
- package/references/official-docs/docs/upgrade-guide/v0.2.2-rc.1/ptc-inspect-output/guide.md +0 -48
- package/references/official-docs/docs/upgrade-guide/v0.2.2-rc.1/ptc-inspect-output/guide.zh.md +0 -48
- package/references/official-docs/docs/upgrade-guide/v0.2.2-rc.1/ptc-scoped-repl-default/guide.i18n.yaml +0 -16
- package/references/official-docs/docs/upgrade-guide/v0.2.2-rc.1/ptc-scoped-repl-default/guide.md +0 -45
- package/references/official-docs/docs/upgrade-guide/v0.2.2-rc.1/ptc-scoped-repl-default/guide.zh.md +0 -45
|
@@ -136,7 +136,7 @@ Chunk 协议:`block-start` → `text-delta*` → `block-end`(完整块)→
|
|
|
136
136
|
3. **用最弱的够用机制**:`ctx.tools.restrict()`(只移除)< `ctx.tools.guard()`(只拒绝)< waterfall 改写(依赖顺序)< `system-prompt/assemble`(整段替换)。最终结果只看 `tools/result`;只有要变换结果才用 `tools/post-execute`。
|
|
137
137
|
4. 模型可见 ⟺ 已记录:新模型可见输入必须新增会话事件(`SessionEventMap`)——**由宿主侧新增**,不是插件自己写(见第 10 条)。
|
|
138
138
|
5. 不得硬编码可调参数(判断:cordis.yml 能否改);misconfig fail loud。要暴露给用户的实时字段用 `Volatile<T>` + `loader/volatile-update`(表单命名空间=profile 条目 id)。
|
|
139
|
-
6. 独立插件包:cordis 是 peerDependency(与宿主同身份:scoped `@deepseek-ai/cordis` 与 unscoped 混用会"双 Cordis 分裂");ESM;`dsh.bundle` 清单(`patch` **可为有序数组**);git 安装配 `prepare` + `allowBuilds`;发布带 `lib/` 或 tarball。**共享实例的 dsh 包只放 peer + dev,绝不放 dependencies**(profile 内副本会静默遮蔽运行时)。⚠️
|
|
139
|
+
6. 独立插件包:cordis 是 peerDependency(与宿主同身份:scoped `@deepseek-ai/cordis` 与 unscoped 混用会"双 Cordis 分裂");ESM;`dsh.bundle` 清单(`patch` **可为有序数组**);git 安装配 `prepare` + `allowBuilds`;发布带 `lib/` 或 tarball。**共享实例的 dsh 包只放 peer + dev,绝不放 dependencies**(profile 内副本会静默遮蔽运行时)。⚠️ **已更正:兼容性门禁在安装/启动期强制,且 `engines.dsh` 单独决定**——**有 `engines.dsh` 时该范围单独决定并忽略 `@deepseek-ai/dsh*` peers**,只有缺失时才回退到 peer 范围(`includePrerelease: true`,下界必须带预发布,如 `>=0.2.2-0`;`workspace:` 在 `engines.dsh` 中不合法)。范围只能表达"能不能装",**表达不了某个 API 在不在**——仍要配运行时探测(区间选择见 `version-matrix.md` §4,官方语义见 `docs/upgrade-guide/v0.2.1-alpha.3/plugin-engines-dsh/guide.md`)。
|
|
140
140
|
7. 必须交展示元数据:`locale/*.json` 的 `meta.title`/`meta.description` + 导出的 `./icon`(SVG/PNG/JPEG/WebP,≤256 KiB,必须在包内)。子路径插件**不读**自己的 `package.json`。
|
|
141
141
|
8. 文档双语成对;工具描述/提示词即行为;非平凡变更加 Agent Note;提交前跑最小检查集(dsh-pre-push-checks)。
|
|
142
142
|
9. 跨边界 opaque id 用 branded(`Branded<B>` from `dsh-brand`),从不裸 `string`。
|
|
@@ -153,7 +153,7 @@ Chunk 协议:`block-start` → `text-delta*` → `block-end`(完整块)→
|
|
|
153
153
|
- Windows junction 用 PowerShell `New-Item -ItemType Junction`;vitest 盘符大写 `C:/`。
|
|
154
154
|
- `DSH_PERMISSION_MODE=danger-full-access` 高风险(Windows 无沙箱后端、禁用审批);`DSH_*` 放 `~/.dsh/.env` 会报错。
|
|
155
155
|
- 会话文件多帧 zstd:用 `scanZstdFrames`/`createZstdFrameDecoder`(`@deepseek-ai/dsh-session-persistence-jsonl/src/zstd.ts`)。
|
|
156
|
-
- npm:无作用域 `dsh` 是无关项目 node-dsh(shell)——官方包是 `@deepseek-ai/dsh`(`latest`=`next
|
|
156
|
+
- npm:无作用域 `dsh` 是无关项目 node-dsh(shell)——官方包是 `@deepseek-ai/dsh`(`latest`=`0.2.2-rc.1`、`next`=`0.2.2-rc.3`、`alpha`=`0.2.2-alpha.3`);`@deepseek-ai/dsh-tools`、`@deepseek-ai/dsh-base`、`@deepseek-ai/dsh-headless`、`@deepseek-ai/dsh-session-persistence-jsonl` 的 `latest` 仍是过期版本(0.0.1-rc.1),要钉 `next`(`0.2.2-rc.3`)或 `alpha`(`0.2.2-alpha.3`);`create-dsh-plugin` latest=0.2.3;`@deepseek-ai/cordis` latest=4.1.0(DSH 0.2.2-rc.3 vendored 的 wrapper;上游基线 4.0.0-rc.11);dsh-core/dsh-sdk 仍未发布(2026-11-14 复核)。
|
|
157
157
|
- 路径比较前两侧都 `resolve()`(Windows 反斜杠陷阱)。
|
|
158
158
|
|
|
159
159
|
## 文档链接
|
|
@@ -171,8 +171,8 @@ Chunk 协议:`block-start` → `text-delta*` → `block-end`(完整块)→
|
|
|
171
171
|
|
|
172
172
|
## 关键源索引
|
|
173
173
|
|
|
174
|
-
- 本地官方文档全文:`references/official-docs/docs/**`(
|
|
175
|
-
- 迁移清单:[migration-0.2.md](migration-0.2.md) —— §0–§12 覆盖 `0.1.6-alpha.2` → `0.2.1-alpha.1` 的全部破坏性变更,**§13 把 `0.2.1-alpha.1` → `0.2.1-alpha.2` 整理成 19 个可引用 seam(`L1`–`L19
|
|
174
|
+
- 本地官方文档全文:`references/official-docs/docs/**`(709 篇,含全部 352 个 `.zh.md`;镜像钉在发布 tag `dsh-v0.2.2-rc.3`,commit `38a6a5c9…`);**没上文档站**的那些页(session-format-status、`upgrade-guide/**`、`persistence-changes/**`、ui-radius、web-styling、module-graph)见 [links.md](links.md) §2.1
|
|
175
|
+
- 迁移清单:[migration-0.2.md](migration-0.2.md) —— §0–§12 覆盖 `0.1.6-alpha.2` → `0.2.1-alpha.1` 的全部破坏性变更,**§13 把 `0.2.1-alpha.1` → `0.2.1-alpha.2` 整理成 19 个可引用 seam(`L1`–`L19`)**,**§14 是 rc.3 包内 0.2.2 线的 46 个 seam(`K1`–`K46`)**,另单列下一版 13 条;每条都附官方 upgrade-guide 出处
|
|
176
176
|
- 官方自带插件开发技能:[references/official-plugin-dev-skill.md](../references/official-plugin-dev-skill.md)
|
|
177
177
|
- 仓库根约束:`references/official-docs/AGENTS.md`、`references/official-docs/packages/AGENTS.md`、`references/official-docs/vendor/README.md`;同步状态见 `references/official-docs/SNAPSHOT.md`
|
|
178
178
|
- 站点爬取 HTML:`downloads/web/site/**`(中英双语全站)+ `downloads/manifest.tsv`(下载清单)
|
package/guide/standards.md
CHANGED
|
@@ -70,7 +70,7 @@ G0–G2 and G4 pass in static inspection, which supports `recognized`; `runtime`
|
|
|
70
70
|
|
|
71
71
|
**What it does not claim.** Security, UI correctness, production readiness, full feature correctness, official endorsement, or that the plugin will work on an untested DSH line.
|
|
72
72
|
|
|
73
|
-
**How to self-check.** Record `dsh --version`, the host commit, and the artifact mtime. Run `dsh-plugin-dev check --json` for the 16 local static checks (a subset of `dsh-plugin-doctor`'s 33 — see [family-toolchain.md](family-toolchain.md)), then the standards repo's entry checker (commands below). For bundles, also run `dsh --profile <name> --dump-config` and look for `patch: entry <id> not found`, then boot and read the row states. Write the claim as `DSH-ENTRY: runtime (dsh 0.2.2-
|
|
73
|
+
**How to self-check.** Record `dsh --version`, the host commit, and the artifact mtime. Run `dsh-plugin-dev check --json` for the 16 local static checks (a subset of `dsh-plugin-doctor`'s 33 — see [family-toolchain.md](family-toolchain.md)), then the standards repo's entry checker (commands below). For bundles, also run `dsh --profile <name> --dump-config` and look for `patch: entry <id> not found`, then boot and read the row states. Write the claim as `DSH-ENTRY: runtime (dsh 0.2.2-rc.3, commit <sha>, 2026-11-14); Node >=24.9`.
|
|
74
74
|
|
|
75
75
|
## DSH-FLOW: adoption experience
|
|
76
76
|
|
package/guide/standards.zh-CN.md
CHANGED
|
@@ -70,7 +70,7 @@ G0–G2 与 G4 在静态检查里通过,支持 `recognized`;`runtime` 需要
|
|
|
70
70
|
|
|
71
71
|
**不声称什么。** 不声称安全、UI 正确、生产可用、功能完整、官方背书,也不声称在未测过的 DSH 线上可用。
|
|
72
72
|
|
|
73
|
-
**怎么自检。** 记录 `dsh --version`、宿主 commit、产物 mtime。先跑 `dsh-plugin-dev check --json` 的 16 项本地静态检查(它是 `dsh-plugin-doctor` 33 项的子集,见 [family-toolchain.md](family-toolchain.md));再跑标准仓的 entry 检查器(命令见下)。bundle 还要跑 `dsh --profile <name> --dump-config`,确认没有 `patch: entry <id> not found`,然后真实 boot 并读行状态。声明写成 `DSH-ENTRY: runtime (dsh 0.2.
|
|
73
|
+
**怎么自检。** 记录 `dsh --version`、宿主 commit、产物 mtime。先跑 `dsh-plugin-dev check --json` 的 16 项本地静态检查(它是 `dsh-plugin-doctor` 33 项的子集,见 [family-toolchain.md](family-toolchain.md));再跑标准仓的 entry 检查器(命令见下)。bundle 还要跑 `dsh --profile <name> --dump-config`,确认没有 `patch: entry <id> not found`,然后真实 boot 并读行状态。声明写成 `DSH-ENTRY: runtime (dsh 0.2.2-rc.3, commit <sha>, 2026-11-14); Node >=24.9`。
|
|
74
74
|
|
|
75
75
|
## DSH-FLOW:采用体验
|
|
76
76
|
|
package/guide/unfixed-issues.md
CHANGED
|
@@ -10,11 +10,11 @@
|
|
|
10
10
|
> - **复核基线 3:`5badb15009ae1756c3afe0ae0cef1faafc290ccc`(`dsh-v0.2.1-alpha.1`,2026-10-03;+2300 余提交 / 8763 改动文件)——2026-10-06 全表重核,逐条复核覆盖 #1–#32 与 S1–S7**:
|
|
11
11
|
>
|
|
12
12
|
> ⚠️ **阅读本表前必读的基线口径**:本文件全部 `path:line` 与"已修复提交号"**钉在复核基线 3(`5badb15`,2026-10-03)**。
|
|
13
|
-
> 本库的官方文档镜像已在 **2026-11-
|
|
13
|
+
> 本库的官方文档镜像已在 **2026-11-14 按发布 tag 重同步到 `38a6a5c965aa99ab525161efb7cc5cf1fe62fced`(`dsh-v0.2.2-rc.3`)**——
|
|
14
14
|
> 也就是说**镜像已远新于本表**。二者不是矛盾,是两个不同用途的基线:
|
|
15
15
|
> 镜像求"与上游逐字节一致",本表求"每条结论有可复核的行号锚点"。
|
|
16
16
|
> **在 `5badb15` 上复核行号**(`git -C <checkout> show 5badb15:<path>`),或用镜像里的路径但**预期行号可能已漂移**。
|
|
17
|
-
> 下一轮全表重核的目标基线是 `
|
|
17
|
+
> 下一轮全表重核的目标基线是 `38a6a5c9`(rc.3);在重核完成前,请把"未修复"读作"**截至 2026-10-03 未修复**"。
|
|
18
18
|
> - **转入已修复 4 项**:#2(协议平面压平为 Messages-only,旧 chat-completions 半边删除;**后继形态 #8836 仍在**)、#5(`code`→`ptc` 迁移)、#10(pi-ai ^0.87.1 带上 `x-opencode-session`)、#22(压缩阈值改为 `min(window×ratio, window−reserved−headroom)`)、#29(telemetry 读取拍平 + 迁移产物强校验)——共 5 项,其中 #5 的修复**早于上一基线**,说明旧条目本身就过时。
|
|
19
19
|
> - **判为不可复现 1 项**:#4(read_image)移入 §2,保留记录但**不要再当 bug 传播**。
|
|
20
20
|
> - **部分修复 3 项**:#1(同级已接受、更窄仍抛)、#13(windowsHide 半侧已消失,自愈半侧仍在)、#19(`./invariant` 子路径已随 invariants 整体移除而消失,残留 devDependency `dsh-attachment` 引用)、S5(SKILL.md 半侧早已修好,仅剩生成文件/文档措辞残留)——共 4 项。
|
package/guide/version-matrix.md
CHANGED
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
> **这份文件回答一个问题**:我的插件要跑在哪个 DSH 上,那个版本有什么、没有什么、
|
|
4
4
|
> 哪一版开始行为变了。
|
|
5
5
|
>
|
|
6
|
-
> **测量时间**:2026-
|
|
7
|
-
> **数据来源**:npm registry `@deepseek-ai/dsh
|
|
8
|
-
> 官方 `docs/upgrade-guide
|
|
6
|
+
> **测量时间**:2026-11-14(官方版本线 = `0.2.2-rc.3`;镜像与计数同日重核)。
|
|
7
|
+
> **数据来源**:npm registry `@deepseek-ai/dsh` 的 dist-tags 与版本清单、GitHub REST API(tags/releases)、
|
|
8
|
+
> 官方 `docs/upgrade-guide/**`(镜像已钉发布 tag `dsh-v0.2.2-rc.3`)、官方 `docs/persistence-changes/**`。逐条可复现命令见 §7。
|
|
9
9
|
>
|
|
10
10
|
> **口径**:本文件只写**有出处**的数字。取不到的一律写 `未核`,不写推测值。
|
|
11
11
|
> 官方说法与社区实测冲突时分别标注。
|
|
@@ -16,42 +16,44 @@
|
|
|
16
16
|
|
|
17
17
|
这是插件作者**第一个**要做的判断。五个数可以不相等,而 peer 范围按线分叉:
|
|
18
18
|
|
|
19
|
-
| # | 说法 | 值(2026-
|
|
19
|
+
| # | 说法 | 值(2026-11-14) | 怎么查 | 性质 |
|
|
20
20
|
|---|---|---|---|---|
|
|
21
|
-
| 1 | npm `latest` | `0.2.
|
|
22
|
-
| 2 | npm `next` | `0.2.
|
|
23
|
-
| 3 | npm `alpha` | `0.2.
|
|
24
|
-
| 4 |
|
|
25
|
-
| 5 | **本机实际** |
|
|
21
|
+
| 1 | npm `latest` | `0.2.2-rc.1` | `npm view @deepseek-ai/dsh dist-tags` | 默认装的就是这个;**它已不是最新** |
|
|
22
|
+
| 2 | npm `next` | `0.2.2-rc.3` | 同上 | 最新发布(本机 CLI 即此版本) |
|
|
23
|
+
| 3 | npm `alpha` | `0.2.2-alpha.3` | 同上 | alpha 通道最新 |
|
|
24
|
+
| 4 | 最新 tag | `dsh-v0.2.2-rc.3`(`38a6a5c9…`,2026-11-13) | GitHub `/tags`、`/releases` | 源码线的名字;master 已合并 rc.3 发布 |
|
|
25
|
+
| 5 | **本机实际** | `0.2.2-rc.3`(本库核验机) | `dsh --version` | **唯一真正要紧的数** |
|
|
26
26
|
|
|
27
27
|
### 1.1 没有"稳定版"这回事
|
|
28
28
|
|
|
29
|
-
- **全部
|
|
29
|
+
- **全部 44 个 npm 版本都带 `-alpha.N` / `-rc.N` 后缀;全部 39 个 GitHub Release 都是 `prerelease: true`。** 另有 40 个 tag,比 release 多 1 个——`dsh-v0.1.5-rc.3` 有 tag 无 release。
|
|
30
30
|
- 所以 npm 的 `latest` 标签在这里**不代表稳定**——它只是"默认安装会拿到的那一个"。
|
|
31
|
-
-
|
|
31
|
+
- 给作者的有效读法(2026-11-14):**默认安装 = `0.2.2-rc.1`(npm `latest`);最新发布 = `0.2.2-rc.3`(npm `next`,也是最新 tag `dsh-v0.2.2-rc.3`);alpha 通道 = `0.2.2-alpha.3`**。注意 `latest` 与 `next` **已不再相等**:`latest` 落后 `next` 两个 prerelease(`rc.1` vs `rc.3`),0.2.1 时代两者同值。
|
|
32
32
|
- 官方 `CONTRIBUTING.md` 明确**不接受外部 PR**,`AGENTS.md` 声明 API 处于 pre-stable。
|
|
33
33
|
插件作者无法"等它稳定",只能**钉版本 + 声明区间**。
|
|
34
34
|
|
|
35
35
|
### 1.2 ★ 陷阱:子包的 `latest` 是冻住的
|
|
36
36
|
|
|
37
37
|
主包 `@deepseek-ai/dsh` 每次发版都会重发全部子包到 `alpha`/`next`,但**每个子包的 `latest`
|
|
38
|
-
|
|
38
|
+
标签停在它第一次被设置的那个版本,永不前进**。裸装子包会装到远古版本(2026-11-14 实测):
|
|
39
39
|
|
|
40
40
|
| 包 | `latest`(冻住的值) | `next` | `alpha` |
|
|
41
41
|
|---|---|---|---|
|
|
42
|
-
| `@deepseek-ai/dsh` | `0.2.
|
|
43
|
-
| `@deepseek-ai/dsh-base` | **`0.0.1-rc.1`** | `0.2.
|
|
44
|
-
| `@deepseek-ai/dsh-session` | **`0.0.1-rc.1`** | `0.2.
|
|
45
|
-
| `@deepseek-ai/dsh-tools` | **`0.0.1-rc.1`** | `0.2.
|
|
46
|
-
| `@deepseek-ai/dsh-subagent` | **`0.0.1-rc.1`** | `0.2.
|
|
47
|
-
| `@deepseek-ai/dsh-home-paths` | `0.0.1-rc.3` | `0.2.
|
|
48
|
-
| `@deepseek-ai/dsh-client-ui-primitives` | **`0.0.1-rc.1`** | `0.2.
|
|
49
|
-
| `@deepseek-ai/dsh-agent` | `0.1.0-rc.6` | `0.2.
|
|
50
|
-
| `@deepseek-ai/dsh-typert-protocol` | `0.1.0-rc.6` | `0.2.
|
|
51
|
-
| `@deepseek-ai/dsh-package-manifest` | `0.1.3-alpha.2` | `0.2.
|
|
52
|
-
| `@deepseek-ai/dsh-plugin-manager` | `0.1.6-alpha.2` | `0.2.
|
|
53
|
-
| `@deepseek-ai/dsh-experimental-ptc-runtime-python` | `0.1.6-alpha.1` | `0.2.
|
|
54
|
-
| `@deepseek-ai/dsh-otel` | `0.2.0-rc.1` | `0.2.
|
|
42
|
+
| `@deepseek-ai/dsh` | `0.2.2-rc.1`(主包 latest 已前进,但仍**不是最新**) | `0.2.2-rc.3` | `0.2.2-alpha.3` |
|
|
43
|
+
| `@deepseek-ai/dsh-base` | **`0.0.1-rc.1`** | `0.2.2-rc.3` | `0.2.2-alpha.3` |
|
|
44
|
+
| `@deepseek-ai/dsh-session` | **`0.0.1-rc.1`** | `0.2.2-rc.3` | `0.2.2-alpha.3` |
|
|
45
|
+
| `@deepseek-ai/dsh-tools` | **`0.0.1-rc.1`** | `0.2.2-rc.3` | `0.2.2-alpha.3` |
|
|
46
|
+
| `@deepseek-ai/dsh-subagent` | **`0.0.1-rc.1`** | `0.2.2-rc.3` | `0.2.2-alpha.3` |
|
|
47
|
+
| `@deepseek-ai/dsh-home-paths` | `0.0.1-rc.3` | `0.2.2-rc.3` | `0.2.2-alpha.3` |
|
|
48
|
+
| `@deepseek-ai/dsh-client-ui-primitives` | **`0.0.1-rc.1`** | `0.2.2-rc.3` | `0.2.2-alpha.3` |
|
|
49
|
+
| `@deepseek-ai/dsh-agent` | `0.1.0-rc.6` | `0.2.2-rc.3` | `0.2.2-alpha.3` |
|
|
50
|
+
| `@deepseek-ai/dsh-typert-protocol` | `0.1.0-rc.6` | `0.2.2-rc.3` | `0.2.2-alpha.3` |
|
|
51
|
+
| `@deepseek-ai/dsh-package-manifest` | `0.1.3-alpha.2` | `0.2.2-rc.3` | `0.2.2-alpha.3` |
|
|
52
|
+
| `@deepseek-ai/dsh-plugin-manager` | `0.1.6-alpha.2` | `0.2.2-rc.3` | `0.2.2-alpha.3` |
|
|
53
|
+
| `@deepseek-ai/dsh-experimental-ptc-runtime-python` | `0.1.6-alpha.1` | `0.2.2-rc.3` | `0.2.2-alpha.3` |
|
|
54
|
+
| `@deepseek-ai/dsh-otel` | `0.2.0-rc.1` | `0.2.2-rc.3` | `0.2.2-alpha.3` |
|
|
55
|
+
|
|
56
|
+
**结论三条**(不变):1) 子包 `latest` 继续冻在远古版本,绝不裸装;2) 判断宿主代次只认 `dsh --version`;3) 共享实例的 dsh 包只放 peer + dev,区间按 §4 选。
|
|
55
57
|
|
|
56
58
|
**结论三条**:
|
|
57
59
|
|
|
@@ -72,10 +74,15 @@
|
|
|
72
74
|
| 断层 | 引入版本(目录名) | 落到哪一版 | 影响面 |
|
|
73
75
|
|---|---|---|---|
|
|
74
76
|
| **即插即拔基础设施** | `0.1.6-alpha.2` | 同版 | `dsh-hmr` / `dsh-plugin-manager` / `ui-plugin-manager` 三包一次性出现;新增 `ctx.hmr` / `ctx.pluginManager` / `ctx.profileContext` |
|
|
75
|
-
| **peer
|
|
77
|
+
| **peer/`engines.dsh` 兼容性门禁** | `0.1.7-rc.1`(peer)→ `0.2.1-alpha.4`(engines 优先) | 同版 | 不匹配的行被直接 `disabled`,模块永不导入;**有 `engines.dsh` 时它单独决定并忽略 peers**,无它才回退 peers(见 §4) |
|
|
76
78
|
| **会话格式 V4 + 本世代破坏性变更** | `0.1.7-alpha.1` | 同版 | `SESSION_FORMAT_VERSION` 3→4、settings 重写、`readBytes`、Messages-only 适配器 |
|
|
77
79
|
| **0.2.0 世代清理** | `0.2.0-rc.2` | 下一版 | 移除 runtime invariants、schedule bundle 退役、子路径插件不再读 `package.json`、新增 `no-response` 错误码 |
|
|
78
|
-
| **0.2.1-alpha.2 大批变更** | `0.2.1-alpha.1` | `0.2.1-alpha.2` | **19 条**破坏性变更(见 §3
|
|
80
|
+
| **0.2.1-alpha.2 大批变更** | `0.2.1-alpha.1` | `0.2.1-alpha.2` | **19 条**破坏性变更(见 §3,`L1`–`L19`) |
|
|
81
|
+
| **0.2.2-alpha.2 批次** | `0.2.2-alpha.2` | `0.2.2-alpha.3` | **22 条**(`K1`–`K22`:context menu 类型、CSS 锚定菜单、loader entry tree、projection/LLM/schedule/search 等) |
|
|
82
|
+
| **0.2.2-alpha.3 批次** | `0.2.2-alpha.3` | `0.2.2-rc.1` | **5 条**(`K23`–`K27`:`office-kit` 替换 `office-to-pdf`、Office 工具化、subagent 按名寻址等) |
|
|
83
|
+
| **0.2.2-rc.1 批次** | `0.2.2-rc.1` | `0.2.2-rc.2` | **19 条**(`K28`–`K46`:`dsh-doc-skill`、`plugin-update-method`、`session-append-overloads`、`window-drag-regions`、`attachment-error-codes` 等) |
|
|
84
|
+
|
|
85
|
+
**rc.3 自身没有新增迁移指南**:rc.3 tag 的 `docs/upgrade-guide` 到 `v0.2.2-rc.1` 为止,上面三批合计 46 条就是 rc.3 发布包覆盖的全部 0.2.2 线变更(逐条 ID/症状/修法见 [migration-0.2.md](migration-0.2.md) §14)。rc.3 的发布内容只有**加性**实验能力(见 §6.1)。`v0.2.2-rc.2` 的 13 条指南只存在于 rc.3 **之后**的 master,**属于下一版,不要算进 rc.3**。
|
|
79
86
|
|
|
80
87
|
> ⚠ **两个断层不属于同一层面,别混**:`0.1.6-alpha.2` 解决"能不能热插拔",
|
|
81
88
|
> `0.1.7-rc.1` 才解决"版本不匹配时会不会被拦"。`0.1.6-alpha.2` 上的
|
|
@@ -91,7 +98,8 @@
|
|
|
91
98
|
## 3. `0.2.1-alpha.1 → 0.2.1-alpha.2`:19 条破坏性变更
|
|
92
99
|
|
|
93
100
|
如果你在 `0.2.0-rc.2` 或更早的线上,**这 19 条与你无关**;如果你跟的是 master/alpha 线,
|
|
94
|
-
|
|
101
|
+
**逐条核对**。本章是 0.2.1 线;rc.3(`0.2.2-rc.2` 及更新)用户还要看
|
|
102
|
+
[migration-0.2.md](migration-0.2.md) §14 的 46 条 0.2.2 线 seam(`K1`–`K46`)。官方 release notes 也列了这 5 条为 "other changes":Python PTC 沙箱、
|
|
95
103
|
`both` 模式移除、`dshHome` 移除、子代理执行统一、Agent Team 直投收件箱。
|
|
96
104
|
|
|
97
105
|
| # | 变更 | 破坏了什么 | 你要做什么 |
|
|
@@ -128,23 +136,30 @@ Python 环境)。它放在旧目录属于例外——上游自己的规则是"
|
|
|
128
136
|
|
|
129
137
|
## 4. 我该声明什么 peer 区间
|
|
130
138
|
|
|
131
|
-
|
|
139
|
+
三条硬事实(rc.3 语义):
|
|
132
140
|
|
|
133
|
-
1.
|
|
134
|
-
在插件被 import
|
|
141
|
+
1. **`engines.dsh` 是运行时门禁,且单独决定。** 从 `0.2.1-alpha.4` 起,`app-boot/src/plugin-compatibility.ts`
|
|
142
|
+
在插件被 import **之前**先读清单:**只要有 `engines.dsh`,就用该范围单独决定结果,并忽略 `@deepseek-ai/dsh*` 的 `peerDependencies`**;
|
|
135
143
|
不匹配的行被**直接置为 `disabled`**,模块永不导入。
|
|
136
|
-
2.
|
|
137
|
-
`engines.dsh`
|
|
144
|
+
2. **只有缺失 `engines.dsh` 时才回退到 peers。** 这时才校验 `peerDependencies` 里的 `@deepseek-ai/dsh` / `@deepseek-ai/dsh-*`(同一套 disabled 行为)。
|
|
145
|
+
声明了 `engines.dsh` 的包,peers 不再放宽或收窄它——所以 `engines.dsh` 必须覆盖**全部**支持版本。`workspace:` 只在 peer 中有效,出现在 `engines.dsh` 里即判不兼容。
|
|
146
|
+
3. **门禁语义是 `includePrerelease: true`**(`plugin-compatibility.ts:52`),比裸 semver **宽松**。
|
|
147
|
+
所以 0.2.2 线要写 `>=0.2.2-0 <0.3.0` 这类带预发布下界的范围;`dsh.manifestVersion` 仍是纯声明,不参与门禁。
|
|
148
|
+
官方原文:`references/official-docs/docs/upgrade-guide/v0.2.1-alpha.3/plugin-engines-dsh/guide.md`。
|
|
138
149
|
|
|
139
150
|
### 4.1 家族内当前使用的规范区间
|
|
140
151
|
|
|
141
152
|
```
|
|
142
|
-
>=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0 || >=0.1.7-0 <0.2.0 || >=0.2.0-0 <0.3.0 || >=0.2.1-0 <0.3.0
|
|
153
|
+
>=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0 || >=0.1.7-0 <0.2.0 || >=0.2.0-0 <0.3.0 || >=0.2.1-0 <0.3.0 || >=0.2.2-0 <0.3.0
|
|
143
154
|
```
|
|
144
155
|
|
|
145
|
-
这是 `dsh-plugin-kit` 的 `data/peer-range.json`(`canonicalRange
|
|
146
|
-
|
|
147
|
-
|
|
156
|
+
这是 `dsh-plugin-kit` 的 `data/peer-range.json`(`canonicalRange`)所记录的规范区间;本库上次核该文件是
|
|
157
|
+
2026-09-26 的六子句版本,本节按 0.2.2 线新增第七子句 `>=0.2.2-0 <0.3.0`(0.2.2 的预发布要求下界带 `-0`,
|
|
158
|
+
否则严格 semver 下 `0.2.2-rc.3` 不落进范围)。**本仓库 `src/cli/templates.ts` 的 `DSH_PEER_RANGE` 与本节逐字节一致**,
|
|
159
|
+
`package.json` 的 `engines.dsh` 与 `peerDependencies` 也同步含该子句。
|
|
160
|
+
|
|
161
|
+
> ⚠️ **0.2.2 线优先把范围写进 `engines.dsh`**:写了它,peers 就完全不参与判定;`engines.dsh` 里不能用 `workspace:`。
|
|
162
|
+
> 只有不发 `engines.dsh` 的包才靠 peers 兜底。
|
|
148
163
|
|
|
149
164
|
### 4.2 选区间的判断法
|
|
150
165
|
|
|
@@ -155,6 +170,7 @@ Python 环境)。它放在旧目录属于例外——上游自己的规则是"
|
|
|
155
170
|
| 依赖 peer 门禁本身、或 0.1.7 的 API | `>=0.1.7-0` |
|
|
156
171
|
| 用了 0.2.0 世代接口(settings 重写后) | `>=0.2.0-0` |
|
|
157
172
|
| 用了 §3 里任何一条新形态(如 `webStartup`、`BundleInfo.official`) | `>=0.2.1-0` |
|
|
173
|
+
| 用了 0.2.2 线(`engines.dsh` 门禁语义、`BundleInfo.update`、`dsh-doc`、Office kit、`Session.append` 双 overload、`window-drag-regions` 等,见 migration §14) | `>=0.2.2-0` |
|
|
158
174
|
|
|
159
175
|
**不要**写开区间上界(如 `>=0.1.2-rc.1 <0.3.0`):它跨过了整代破坏性变更,
|
|
160
176
|
门禁放行但运行时会炸。**上界必须按世代切**(`<0.2.0` / `<0.3.0`)。
|
|
@@ -247,9 +263,11 @@ Python 环境)。它放在旧目录属于例外——上游自己的规则是"
|
|
|
247
263
|
| `@deepseek-ai/dsh-experimental-schedule-bundle` | `0.2.0-rc.2` 退役 | `upgrade-guide/v0.2.0-rc.2/schedule-bundle-retired` |
|
|
248
264
|
| 子路径插件读自己的 `package.json` 取展示文案 | ≤`0.2.0-rc.2` → `0.2.1-alpha.1` **不再读** | `upgrade-guide/v0.2.0-rc.2/subpath-plugin-display-manifest` |
|
|
249
265
|
| `repository-plugin`(`.dsh-plugin`) | 2026-08-09 推出 → **08-11 移除** | 社区实测(`vlln/plugin-registry` 档案,**该仓 2026-10-03 已归档**) |
|
|
266
|
+
| slot `sidebar.session.action`(hoc)+ `workspace.picker` SlotFactory / `workspace.picker.directoryFlow` | `0.2.2-rc.3` | rc.3 树:`ui-sidebar/.../contract/slots.ts`、`ui-workspace/.../contract/slots.ts`;**加性**,无迁移指南 |
|
|
267
|
+
| 服务 seam `ctx.deepseekChatImport`(配置 `maxSessions`/`maxUploadBytes`/`maxEntryBytes`/`maxTitleBytes`)+ 实验 bundle `@deepseek-ai/dsh-deepseek-chat-import` | `0.2.2-rc.3` | `docs/capability-seams.md`、`docs/config-catalog.md`;**加性**,默认未装,无迁移指南 |
|
|
250
268
|
|
|
251
269
|
> 22 面全表连同每面的**工具名、API 名、配置键与逐条出处行号**,来自一次
|
|
252
|
-
> read-only 清点。**清点时 checkout 在 `dsh-v0.2.1-alpha.1` / `5badb15
|
|
270
|
+
> read-only 清点。**清点时 checkout 在 `dsh-v0.2.1-alpha.1` / `5badb15`;本库镜像现已同步到发布 tag `dsh-v0.2.2-rc.3` / `38a6a5c9`**,
|
|
253
271
|
> 本文只摘"引入版本"一列;**要完整清单请按上文口径重跑**,或读官方
|
|
254
272
|
> `docs/subsystems/*.md` + `docs/capability-seams.md` + `docs/tool-catalog.md`。
|
|
255
273
|
|
|
@@ -260,13 +278,18 @@ Python 环境)。它放在旧目录属于例外——上游自己的规则是"
|
|
|
260
278
|
```powershell
|
|
261
279
|
# 五个"最新"里的前四个
|
|
262
280
|
npm view @deepseek-ai/dsh dist-tags
|
|
263
|
-
# { latest: '0.2.
|
|
281
|
+
# { latest: '0.2.2-rc.1', next: '0.2.2-rc.3', alpha: '0.2.2-alpha.3' }
|
|
264
282
|
|
|
265
283
|
# 子包 latest 是否冻结(换包名即可)
|
|
266
284
|
npm view @deepseek-ai/dsh-tools dist-tags
|
|
267
|
-
# { latest: '0.0.1-rc.1', next: '0.2.
|
|
285
|
+
# { latest: '0.0.1-rc.1', next: '0.2.2-rc.3', alpha: '0.2.2-alpha.3' }
|
|
286
|
+
|
|
287
|
+
# 版本/Release 计数(2026-11-14:44 / 39)
|
|
288
|
+
npm view @deepseek-ai/dsh versions --json | ConvertFrom-Json | Measure-Object | Select-Object Count
|
|
289
|
+
Invoke-RestMethod -Headers @{'User-Agent'='x'} `
|
|
290
|
+
'https://api.github.com/repos/deepseek-ai/deepseek-harness/releases?per_page=100' | Measure-Object | Select-Object Count
|
|
268
291
|
|
|
269
|
-
#
|
|
292
|
+
# 最新 tag 与 HEAD
|
|
270
293
|
Invoke-RestMethod -Headers @{'User-Agent'='x'} `
|
|
271
294
|
https://api.github.com/repos/deepseek-ai/deepseek-harness/tags | Select-Object -First 3 name
|
|
272
295
|
|
|
@@ -278,7 +301,7 @@ Invoke-RestMethod -Headers @{'User-Agent'='x'} `
|
|
|
278
301
|
dsh --version
|
|
279
302
|
```
|
|
280
303
|
|
|
281
|
-
|
|
304
|
+
**维护节奏**:0.2.2 线在 17 天内发了 5 个 prerelease(2026-10-27 `alpha.2` → 11-03 `alpha.3` → 11-04 `rc.1` → 11-12 `rc.2` → 11-13 `rc.3`,npm 发布时刻)。每次官方发版后按
|
|
282
305
|
`docs/upgrade-guide/**`(**无 index、无入链,必须主动看**)+ `docs/persistence-changes/**`
|
|
283
306
|
+ GitHub Releases 三处增量更新本文件与 `guide/migration-0.2.md`。
|
|
284
307
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-primer",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.7",
|
|
4
4
|
"description": "DSH plugin development as an on-demand agent skill: official docs mirror, version-compatibility matrix, migration seams, measured pitfalls, plus a scaffolder, checker and pack verifier CLI.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "index.js",
|
|
@@ -78,21 +78,22 @@
|
|
|
78
78
|
"verify:artifacts": "node scripts/verify-artifacts.mjs",
|
|
79
79
|
"verify:self-contained": "pnpm run build && node dist/dsh-plugin-dev.js verify",
|
|
80
80
|
"prepare": "tsdown",
|
|
81
|
-
"prepack": "tsdown"
|
|
81
|
+
"prepack": "tsdown",
|
|
82
|
+
"check:drift": "node scripts/check-docs-drift.mjs"
|
|
82
83
|
},
|
|
83
84
|
"dependencies": {},
|
|
84
85
|
"devDependencies": {
|
|
85
|
-
"@deepseek-ai/dsh-attachment": "0.2.
|
|
86
|
+
"@deepseek-ai/dsh-attachment": "0.2.2-rc.3",
|
|
86
87
|
"@types/node": "^22.20.1",
|
|
87
88
|
"@types/semver": "^7.8.0",
|
|
88
89
|
"semver": "^7.8.5",
|
|
89
90
|
"tsdown": "^0.23.1",
|
|
90
91
|
"typescript": "^5.9.3",
|
|
91
92
|
"vitest": "^3.2.7",
|
|
92
|
-
"@deepseek-ai/dsh-working-directory": "0.2.
|
|
93
|
+
"@deepseek-ai/dsh-working-directory": "0.2.2-rc.3"
|
|
93
94
|
},
|
|
94
95
|
"peerDependencies": {
|
|
95
|
-
"@deepseek-ai/dsh": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0 || >=0.1.7-0 <0.2.0 || >=0.2.0-0 <0.3.0 || >=0.2.1-0 <0.3.0"
|
|
96
|
+
"@deepseek-ai/dsh": ">=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0 || >=0.1.7-0 <0.2.0 || >=0.2.0-0 <0.3.0 || >=0.2.1-0 <0.3.0 || >=0.2.2-0 <0.3.0"
|
|
96
97
|
},
|
|
97
98
|
"peerDependenciesMeta": {
|
|
98
99
|
"@deepseek-ai/dsh": {
|
|
@@ -121,7 +122,7 @@
|
|
|
121
122
|
},
|
|
122
123
|
"engines": {
|
|
123
124
|
"node": ">=24.9.0",
|
|
124
|
-
"dsh": ">=0.2.1-0 <0.3.0"
|
|
125
|
+
"dsh": ">=0.2.1-0 <0.3.0 || >=0.2.2-0 <0.3.0"
|
|
125
126
|
},
|
|
126
127
|
"packageManager": "pnpm@11.7.0",
|
|
127
128
|
"dshWorkshop": {
|
|
@@ -154,7 +155,12 @@
|
|
|
154
155
|
"0.2.0-rc.2",
|
|
155
156
|
"0.2.1-alpha.1",
|
|
156
157
|
"0.2.1-alpha.2",
|
|
157
|
-
"0.2.1-rc.2"
|
|
158
|
+
"0.2.1-rc.2",
|
|
159
|
+
"0.2.2-alpha.2",
|
|
160
|
+
"0.2.2-alpha.3",
|
|
161
|
+
"0.2.2-rc.1",
|
|
162
|
+
"0.2.2-rc.2",
|
|
163
|
+
"0.2.2-rc.3"
|
|
158
164
|
]
|
|
159
165
|
},
|
|
160
166
|
"capability": {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
AGENTS.md
|
|
1
|
+
AGENTS.md
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
| 内容 | 位置 | 来源(仓库内路径) |
|
|
7
7
|
|---|---|---|
|
|
8
|
-
| 官方 `docs/` 全文(
|
|
8
|
+
| 官方 `docs/` 全文(709 篇 md,含 352 个 `.zh.md` 双语对) | [`docs/`](docs/) | `docs/` |
|
|
9
9
|
| 仓库根开发红线 | [`AGENTS.md`](AGENTS.md) | `AGENTS.md` |
|
|
10
10
|
| CLAUDE 入口(上游为 symlink,此处为其目标文本) | [`CLAUDE.md`](CLAUDE.md) | `CLAUDE.md` → `AGENTS.md` |
|
|
11
11
|
| 基准测试说明 | [`BENCHMARK.md`](BENCHMARK.md) | `BENCHMARK.md` |
|
|
@@ -25,11 +25,16 @@
|
|
|
25
25
|
## 同步与校验
|
|
26
26
|
|
|
27
27
|
```sh
|
|
28
|
-
#
|
|
29
|
-
pwsh -File scripts/sync-official-docs.ps1 [-Checkout <deepseek-harness-checkout>]
|
|
28
|
+
# 同步(默认取 checkout 的 origin/master;用 -Ref 钉一个发布 tag 得到可复现快照;未跟踪/未推送内容不会进来)
|
|
29
|
+
pwsh -File scripts/sync-official-docs.ps1 [-Checkout <deepseek-harness-checkout>] [-Ref <tag|sha>]
|
|
30
30
|
|
|
31
|
-
#
|
|
31
|
+
# 漂移校验(有 checkout 时逐文件哈希对比)
|
|
32
32
|
pwsh -File scripts/verify-kit.ps1 -Checkout <checkout>
|
|
33
|
+
|
|
34
|
+
# 新鲜度校验(无 checkout;比较"最新 release tag"与 SNAPSHOT 的 Source ref)
|
|
35
|
+
node scripts/check-docs-drift.mjs
|
|
33
36
|
```
|
|
34
37
|
|
|
35
38
|
同步范围只包含 git 已跟踪文件;checkout 里的本地草稿(未跟踪)与未推送提交的改动不会进入本目录。同步后 README 里的"最后核验"日期与提交号请引用 `SNAPSHOT.md`。
|
|
39
|
+
|
|
40
|
+
**当前快照钉的是发布 tag,不是 master HEAD**:`references/official-docs` 对齐 `dsh-v0.2.2-rc.3`(`38a6a5c9…`,709 篇 md / 352 对中英),用 `-Ref dsh-v0.2.2-rc.3` 可复现。只在 tag 之后 master 才出现的文档(例如 `docs/upgrade-guide/v0.2.2-rc.2/**` 的 13 条指南)**不属于本快照**,属于下一版内容,别把它们算进 rc.3。
|
|
@@ -6,11 +6,13 @@
|
|
|
6
6
|
| Item | Value |
|
|
7
7
|
|---|---|
|
|
8
8
|
| Source checkout | `D:\deepseek-harness` |
|
|
9
|
-
| Source ref | `
|
|
10
|
-
| Source commit | `
|
|
11
|
-
| Synced at (UTC) | 2026-11-
|
|
9
|
+
| Source ref | `dsh-v0.2.2-rc.3` |
|
|
10
|
+
| Source commit | `38a6a5c965aa99ab525161efb7cc5cf1fe62fced` |
|
|
11
|
+
| Synced at (UTC) | 2026-11-14T04:50:35Z |
|
|
12
12
|
| Scope | tracked files at the ref: `docs/`, root `AGENTS.md`, `BENCHMARK.md`, `CLAUDE.md` (symlink target text), `CONTRIBUTING.md`/`.zh.md`/`.i18n.yaml`, `README.zh.md`/`.i18n.yaml` (the upstream English `README.md` is not in this dir; its snapshot lives in `downloads/github/harness/README.md`), `THIRD_PARTY_NOTICES.md`, `LICENSE`, `packages/AGENTS.md`, `packages/README.md`, `vendor/README.md`, `website/docs.ts` |
|
|
13
|
-
| File counts | docs/:
|
|
14
|
-
| Pruned this run |
|
|
13
|
+
| File counts | docs/: 709 md files (352 .zh.md pairs) |
|
|
14
|
+
| Pruned this run | 12 out-of-scope/upstream-deleted entries |
|
|
15
|
+
|
|
16
|
+
> Pinned to `dsh-v0.2.2-rc.3` (commit `38a6a5c965aa99ab525161efb7cc5cf1fe62fced`), not the checkout's master HEAD. Docs that exist only after this ref are not part of the snapshot.
|
|
15
17
|
|
|
16
18
|
Drift check: `pwsh -File scripts/verify-kit.ps1 -Checkout <checkout>` (tracked files only).
|
|
@@ -14,6 +14,8 @@ flowchart LR
|
|
|
14
14
|
pkg_plugin_recommendations["plugin-recommendations"]
|
|
15
15
|
svc_pluginRecommendations["ctx.pluginRecommendations<br/>Explicit-need plugin recommendations"]
|
|
16
16
|
pkg_client_ui_plugin_recommendations["client-ui-plugin-recommendations"]
|
|
17
|
+
pkg_deepseek_chat_import["deepseek-chat-import"]
|
|
18
|
+
svc_deepseekChatImport["ctx.deepseekChatImport<br/>DeepSeek chat export import"]
|
|
17
19
|
pkg_headless["headless"]
|
|
18
20
|
svc_headlessStartup["ctx.headlessStartup<br/>Headless invocation options"]
|
|
19
21
|
pkg_experimental_client_ui_cot_translation["experimental-client-ui-cot-translation"]
|
|
@@ -358,6 +360,7 @@ flowchart LR
|
|
|
358
360
|
pkg_credentials_local --> svc_credentials
|
|
359
361
|
pkg_cua --> svc_cuaAccess
|
|
360
362
|
pkg_deepseek_account --> svc_deepseekAccount
|
|
363
|
+
pkg_deepseek_chat_import --> svc_deepseekChatImport
|
|
361
364
|
pkg_deepseek_llm_api_extensions --> svc_deepseekLlmApiExtensions
|
|
362
365
|
pkg_experimental_api_speech_to_text --> svc_speechController
|
|
363
366
|
pkg_experimental_browser_use_chrome_devtools_mcp --> svc_browserUse
|
|
@@ -653,6 +656,7 @@ flowchart LR
|
|
|
653
656
|
| --- | --- | --- | --- | --- | --- | --- |
|
|
654
657
|
| `ctx.actionCards` | `service` | [`action-cards`](../packages/experimental/action-cards) | - | [`creation-recommendations`](../packages/experimental/creation-recommendations), [`client-ui-action-cards`](../packages/experimental/client-ui-action-cards) | - | Owns the card tool, card state, user actions and status notices; card kinds register their actions and handlers. |
|
|
655
658
|
| `ctx.pluginRecommendations` | `service` | [`plugin-recommendations`](../packages/experimental/plugin-recommendations) | - | [`client-ui-plugin-recommendations`](../packages/experimental/client-ui-plugin-recommendations) | - | Reads the current catalog text of an official plugin card and enables the plugin through the profile plugin manager after a click. |
|
|
659
|
+
| `ctx.deepseekChatImport` | `service` | [`deepseek-chat-import`](../packages/experimental/deepseek-chat-import) | - | - | - | Serves the owner-only upload route that imports each conversation of a DeepSeek chat export as a Session, and the upload limits the browser checks first. |
|
|
656
660
|
| `ctx.headlessStartup` | `core` | [`headless`](../packages/bundle/headless) | - | [`headless`](../packages/bundle/headless) | - | Supplies parsed task and run options to the headless runner and its sandbox-policy configuration. |
|
|
657
661
|
| `ctx.cotTranslation` | `service` | [`experimental-client-ui-cot-translation`](../packages/experimental/client-ui-cot-translation) | - | - | - | Serves reasoning translations, reuses saved results, and joins ordinary Session activation for uncached inactive Sessions. |
|
|
658
662
|
| `ctx.translator` | `service` | [`experimental-translator`](../packages/experimental/translator) | - | [`experimental-client-ui-cot-translation`](../packages/experimental/client-ui-cot-translation) | - | Resolves Google or Bing requests and retains shared experimental records through the active Session writer. |
|
|
@@ -16,6 +16,8 @@ flowchart LR
|
|
|
16
16
|
pkg_plugin_recommendations["plugin-recommendations"]
|
|
17
17
|
svc_pluginRecommendations["ctx.pluginRecommendations<br/>Explicit-need plugin recommendations"]
|
|
18
18
|
pkg_client_ui_plugin_recommendations["client-ui-plugin-recommendations"]
|
|
19
|
+
pkg_deepseek_chat_import["deepseek-chat-import"]
|
|
20
|
+
svc_deepseekChatImport["ctx.deepseekChatImport<br/>DeepSeek chat export import"]
|
|
19
21
|
pkg_headless["headless"]
|
|
20
22
|
svc_headlessStartup["ctx.headlessStartup<br/>Headless invocation options"]
|
|
21
23
|
pkg_experimental_client_ui_cot_translation["experimental-client-ui-cot-translation"]
|
|
@@ -360,6 +362,7 @@ flowchart LR
|
|
|
360
362
|
pkg_credentials_local --> svc_credentials
|
|
361
363
|
pkg_cua --> svc_cuaAccess
|
|
362
364
|
pkg_deepseek_account --> svc_deepseekAccount
|
|
365
|
+
pkg_deepseek_chat_import --> svc_deepseekChatImport
|
|
363
366
|
pkg_deepseek_llm_api_extensions --> svc_deepseekLlmApiExtensions
|
|
364
367
|
pkg_experimental_api_speech_to_text --> svc_speechController
|
|
365
368
|
pkg_experimental_browser_use_chrome_devtools_mcp --> svc_browserUse
|
|
@@ -655,6 +658,7 @@ flowchart LR
|
|
|
655
658
|
| --- | --- | --- | --- | --- | --- | --- |
|
|
656
659
|
| `ctx.actionCards` | `service` | [`action-cards`](../packages/experimental/action-cards) | - | [`creation-recommendations`](../packages/experimental/creation-recommendations), [`client-ui-action-cards`](../packages/experimental/client-ui-action-cards) | - | 负责卡片工具、卡片状态、用户操作和状态通知;各卡片种类注册自己的动作和处理器。 |
|
|
657
660
|
| `ctx.pluginRecommendations` | `service` | [`plugin-recommendations`](../packages/experimental/plugin-recommendations) | - | [`client-ui-plugin-recommendations`](../packages/experimental/client-ui-plugin-recommendations) | - | 读取官方插件卡片的当前目录文本,并在用户点击后通过配置插件管理器启用该插件。 |
|
|
661
|
+
| `ctx.deepseekChatImport` | `service` | [`deepseek-chat-import`](../packages/experimental/deepseek-chat-import) | - | - | - | 提供仅 owner 可用的上传路由,把 DeepSeek 会话导出的每个对话导入为一个会话,并提供浏览器先行检查的上传上限。 |
|
|
658
662
|
| `ctx.headlessStartup` | `core` | [`headless`](../packages/bundle/headless) | - | [`headless`](../packages/bundle/headless) | - | 将解析后的任务和运行选项提供给无界面运行器及其 sandbox-policy 配置。 |
|
|
659
663
|
| `ctx.cotTranslation` | `service` | [`experimental-client-ui-cot-translation`](../packages/experimental/client-ui-cot-translation) | - | - | - | 为展开的思考内容提供有界的 Session 翻译请求,不改变模型可见历史。 |
|
|
660
664
|
| `ctx.translator` | `service` | [`experimental-translator`](../packages/experimental/translator) | - | [`experimental-client-ui-cot-translation`](../packages/experimental/client-ui-cot-translation) | - | 解析 Google 或 Bing 请求,并可选保留统一的实验性 Session 记录。 |
|
|
@@ -886,26 +886,6 @@ export interface Config {
|
|
|
886
886
|
```
|
|
887
887
|
<!-- END GENERATED config-catalog:@deepseek-ai/dsh-credentials-local -->
|
|
888
888
|
|
|
889
|
-
<!-- BEGIN GENERATED config-catalog:@deepseek-ai/dsh-cua-windows -->
|
|
890
|
-
<a id="deepseek-aidsh-cua-windows"></a>
|
|
891
|
-
|
|
892
|
-
## `@deepseek-ai/dsh-cua-windows`
|
|
893
|
-
|
|
894
|
-
- `inject`: `computerUse` · `tools` · `systemPrompt` · `subprocess` · `agents`
|
|
895
|
-
- `refs`: [`CuaConfig`](../packages/experimental/cua/src/index.ts)
|
|
896
|
-
- `source`: [`packages/experimental/cua-windows/src/index.ts:32`](../packages/experimental/cua-windows/src/index.ts)
|
|
897
|
-
|
|
898
|
-
```ts config-catalog
|
|
899
|
-
/** Windows native waiting policy, alongside shared CUA resource limits. */
|
|
900
|
-
export interface Config extends CuaConfig {
|
|
901
|
-
/** Windows PowerShell executable used to query WSL interoperation and the Windows architecture. */
|
|
902
|
-
windowsPowerShellPath: string
|
|
903
|
-
/** Milliseconds between application-readiness and clipboard-release observations. */
|
|
904
|
-
pollIntervalMs: number
|
|
905
|
-
}
|
|
906
|
-
```
|
|
907
|
-
<!-- END GENERATED config-catalog:@deepseek-ai/dsh-cua-windows -->
|
|
908
|
-
|
|
909
889
|
<!-- BEGIN GENERATED config-catalog:@deepseek-ai/dsh-deepseek-account -->
|
|
910
890
|
<a id="deepseek-aidsh-deepseek-account"></a>
|
|
911
891
|
|
|
@@ -951,6 +931,29 @@ export interface Config {
|
|
|
951
931
|
```
|
|
952
932
|
<!-- END GENERATED config-catalog:@deepseek-ai/dsh-deepseek-account -->
|
|
953
933
|
|
|
934
|
+
<!-- BEGIN GENERATED config-catalog:@deepseek-ai/dsh-deepseek-chat-import -->
|
|
935
|
+
<a id="deepseek-aidsh-deepseek-chat-import"></a>
|
|
936
|
+
|
|
937
|
+
## `@deepseek-ai/dsh-deepseek-chat-import`
|
|
938
|
+
|
|
939
|
+
- `inject`: `typert` · `connection` · `sessionPersistence` · `workspaceRegistry`
|
|
940
|
+
- `source`: [`packages/experimental/deepseek-chat-import/src/index.ts:36`](../packages/experimental/deepseek-chat-import/src/index.ts)
|
|
941
|
+
|
|
942
|
+
```ts config-catalog
|
|
943
|
+
/** Deployment limits of the importer. */
|
|
944
|
+
export interface Config {
|
|
945
|
+
/** Most Sessions one import writes, choosing the conversations the export index lists as most recently updated. */
|
|
946
|
+
maxSessions: number
|
|
947
|
+
/** Largest export archive, in bytes, one upload may carry; the whole archive is held in memory while it is imported. */
|
|
948
|
+
maxUploadBytes: number
|
|
949
|
+
/** Largest declared uncompressed size, in bytes, of one archive entry; larger entries are not decompressed. */
|
|
950
|
+
maxEntryBytes: number
|
|
951
|
+
/** Largest UTF-8 size, in bytes, of an imported title, matching the session-title service's limit of the composition. */
|
|
952
|
+
maxTitleBytes: number
|
|
953
|
+
}
|
|
954
|
+
```
|
|
955
|
+
<!-- END GENERATED config-catalog:@deepseek-ai/dsh-deepseek-chat-import -->
|
|
956
|
+
|
|
954
957
|
<!-- BEGIN GENERATED config-catalog:@deepseek-ai/dsh-experimental-api-speech-to-text -->
|
|
955
958
|
<a id="deepseek-aidsh-experimental-api-speech-to-text"></a>
|
|
956
959
|
|
|
@@ -1626,7 +1629,7 @@ export interface Config {
|
|
|
1626
1629
|
## `@deepseek-ai/dsh-file-reference-local`
|
|
1627
1630
|
|
|
1628
1631
|
- `inject`: `agents` · `workingDirectory`
|
|
1629
|
-
- `source`: [`packages/context/file-reference-local/src/index.ts:
|
|
1632
|
+
- `source`: [`packages/context/file-reference-local/src/index.ts:35`](../packages/context/file-reference-local/src/index.ts)
|
|
1630
1633
|
|
|
1631
1634
|
```ts config-catalog
|
|
1632
1635
|
/** Local file-reference discovery configuration. */
|
|
@@ -2425,7 +2428,7 @@ export type Config = Readonly<Record<string, never>>
|
|
|
2425
2428
|
## `@deepseek-ai/dsh-lsp-stdio`
|
|
2426
2429
|
|
|
2427
2430
|
- `inject`: `fs` · `lsp` · `subprocess`
|
|
2428
|
-
- `source`: [`packages/lsp/lsp-stdio/src/index.ts:
|
|
2431
|
+
- `source`: [`packages/lsp/lsp-stdio/src/index.ts:83`](../packages/lsp/lsp-stdio/src/index.ts)
|
|
2429
2432
|
|
|
2430
2433
|
```ts config-catalog
|
|
2431
2434
|
/** Plugin configuration: provider id → local language-server configuration. */
|
|
@@ -2878,7 +2881,7 @@ export interface Config {
|
|
|
2878
2881
|
## `@deepseek-ai/dsh-ptc-runtime-node`
|
|
2879
2882
|
|
|
2880
2883
|
- `inject`: `fs` · `subprocess` · `sandbox` · `sandboxPolicy`
|
|
2881
|
-
- `source`: [`packages/ptc-runtime/ptc-runtime-node/src/config.ts:
|
|
2884
|
+
- `source`: [`packages/ptc-runtime/ptc-runtime-node/src/config.ts:7`](../packages/ptc-runtime/ptc-runtime-node/src/config.ts)
|
|
2882
2885
|
|
|
2883
2886
|
```ts config-catalog
|
|
2884
2887
|
/** Deployment-varying runtime bounds and launch choices. */
|
|
@@ -2889,11 +2892,6 @@ export interface Config {
|
|
|
2889
2892
|
executionMode?: 'per-call' | 'persistent-in-memory' | 'vm-script'
|
|
2890
2893
|
/** Retain a Script process and context per stateOwner; only supported with executionMode: vm-script. */
|
|
2891
2894
|
scriptPersistence?: boolean
|
|
2892
|
-
/**
|
|
2893
|
-
* Run persistent-in-memory programs as scoped REPL statements whose later calls receive copies of earlier top-level bindings;
|
|
2894
|
-
* omitted, it is `SCOPED_REPL_BY_DEFAULT` from configuration.ts, currently true, with persistent-in-memory and false otherwise.
|
|
2895
|
-
*/
|
|
2896
|
-
replScoped?: boolean
|
|
2897
2895
|
/** Default elapsed deadline, including nested tool and approval waits. */
|
|
2898
2896
|
timeoutMs?: number
|
|
2899
2897
|
/** Maximum numeric elapsed budget accepted by resolve. */
|