dsh-trellis 0.1.9 → 0.1.11
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.md +34 -6
- package/package.json +36 -36
package/README.md
CHANGED
|
@@ -23,7 +23,20 @@ dsh plugin --profile headless add dsh-trellis
|
|
|
23
23
|
dsh plugin --profile tui add dsh-trellis
|
|
24
24
|
```
|
|
25
25
|
|
|
26
|
-
`dsh plugin` 会把插件安装到指定 profile;每个实际使用的 profile
|
|
26
|
+
`dsh plugin` 会把插件安装到指定 profile;每个实际使用的 profile 都需要单独安装。
|
|
27
|
+
|
|
28
|
+
DSH `0.2.0-rc.2` 的 macOS / Windows 桌面端可在菜单栏“Manage dsh command”中安装或管理内置 `dsh` 命令,无需单独安装 Node 或 pnpm。先用 `dsh --version` 确认 PATH 中实际调用的版本;旧的全局 CLI 可能与桌面端不同。桌面端默认使用 `desktop` profile,其他 profile 仍需分别安装。
|
|
29
|
+
|
|
30
|
+
新版本刚发布时,插件页预览的版本可能与安装器最终选择的版本不同。需要本版插件 `0.1.11` 时,在插件页输入 `dsh-trellis@0.1.11`,或显式安装到实际使用的 profile:
|
|
31
|
+
|
|
32
|
+
```powershell
|
|
33
|
+
dsh plugin --profile desktop add dsh-trellis@0.1.11
|
|
34
|
+
# Web / headless 用户将 desktop 替换为对应 profile 名称。
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
DSH RC.2 内置 pnpm 11;其默认新版本等待期为 24 小时,裸包名可能暂时解析到较旧版本。显式版本安装会走安装器的相应确认流程,版本准入仍须通过;不需要关闭全局等待期或绕过兼容性检查。参见 [DSH RC.2 更新说明](https://github.com/deepseek-ai/deepseek-harness/releases/tag/dsh-v0.2.0-rc.2) 与 [pnpm 11 发布说明](https://pnpm.io/blog/releases/11.0)。
|
|
38
|
+
|
|
39
|
+
日常升级命令:
|
|
27
40
|
|
|
28
41
|
```powershell
|
|
29
42
|
dsh plugin --profile web update dsh-trellis
|
|
@@ -46,10 +59,22 @@ dsh plugin --profile headless add file:C:/path/to/dsh-trellis
|
|
|
46
59
|
|
|
47
60
|
`file:` 插件会作为 profile 内的 pnpm 快照安装;拉取源码更新后,尤其是版本新增文件时,需要先 remove 再 add 刷新该 profile。
|
|
48
61
|
|
|
49
|
-
配套要求:项目的 Trellis 平台需包含 dsh(`trellis init --dsh`,见 Trellis-DeepSeekHarness 适配分支),且 `.trellis/scripts` 需包含读取原生 `DSH_SESSION_ID`
|
|
62
|
+
配套要求:项目的 Trellis 平台需包含 dsh(`trellis init --dsh`,见 Trellis-DeepSeekHarness 适配分支),且 `.trellis/scripts` 需包含读取原生 `DSH_SESSION_ID` 的适配(已含在同一分支)。当前源码的 Host peer 范围新增 `^0.2.0-rc.1`,保留既有版本范围;开发基线固定为 `0.2.0-rc.1`,隔离回归 `0.1.7-rc.2`、`0.1.7-rc.1`、`0.1.6-alpha.2` 和 `0.1.5-rc.2`,不代表逐个重新验证所有历史版本。新版 DSH 的 peer 准入使用 `includePrerelease: true`,与 npm 默认匹配不同;通过准入不等于实际兼容,不应使用 `allow-version` 绕过缺失的 API。Web 配置只在具备对应 client surface 的 profile 中加载。
|
|
50
63
|
|
|
51
64
|
运行时需要 profile 提供 `sessionProjections` 服务;该依赖由插件的 `inject` 声明。自定义或精简 profile 若未组装此服务,需先加载 `@deepseek-ai/dsh-session-projection`,否则插件会等待依赖,不会退回直接扫描历史。
|
|
52
65
|
|
|
66
|
+
### 0.1.11:DSH 0.2.0-rc.2 兼容验证
|
|
67
|
+
|
|
68
|
+
- 增加 `0.2.0-rc.2` 隔离回归与 Windows/Linux CI 目标;本地 RC.1 / RC.2 均为 130 项通过、无失败或跳过,RC.2 独立 Web profile 验收通过。
|
|
69
|
+
- 现有 `^0.2.0-rc.1` 已覆盖 RC.2,无需扩展 peer 或新增运行时补丁。开发基线仍为锁定的 RC.1。
|
|
70
|
+
- 补充桌面内置 CLI、profile 区别及显式版本安装说明。本版不包含 Trellis CLI 的归档与嵌套身份补丁,它们在独立适配分支中维护。范围与限制见[RC.2 验证记录](docs/validation-dsh-0.2.0-rc.2.md);远端 CI 和发布状态以对应标签为准。
|
|
71
|
+
|
|
72
|
+
### 0.1.10:DSH 0.2.0-rc.1 适配
|
|
73
|
+
|
|
74
|
+
- 七项 DSH peer 和 `engines.dsh` 新增 `^0.2.0-rc.1`;旧的 `^0.1.7-rc.1` 不接纳 0.2。开发依赖及锁文件升级到 0.2,Windows/Linux CI 配置继续覆盖四条旧宿主线。使用 0.2 宿主时请安装插件 0.1.10 或更新版本,0.1.9 不包含这项适配。
|
|
75
|
+
- 跟随宿主的失败工具历史恢复,新增真实 AgentLoop 回归:工具尚未启动时记录 `TOOL_NOT_STARTED`,已执行但结果未提交时记录 `TOOL_OUTCOME_UNKNOWN`;保留原始错误和已提交结果,继续会话不自动重试等待,也不重复注入面包屑。
|
|
76
|
+
- 已用隔离 DSH Web 验证正常版本准入、配置保存与读回、恢复继承值、整包/组件开关、冲突保留草稿以及页面重载。无需改变运行时代码、插件清单形态、安装命令或 Trellis 模板。完整范围见[验证记录](https://github.com/SajoLuo/dsh-trellis/blob/v0.1.10/docs/validation-dsh-0.2.0-rc.1.md)。
|
|
77
|
+
|
|
53
78
|
### 0.1.9:DSH 0.1.7-rc.2 兼容验证
|
|
54
79
|
|
|
55
80
|
- 新增 RC.2 隔离回归及 Windows/Linux CI 覆盖,修复兼容测试把非 RC.1 宿主错误归为旧版 Cordis 依赖的逻辑。
|
|
@@ -86,7 +111,7 @@ dsh plugin --profile headless add file:C:/path/to/dsh-trellis
|
|
|
86
111
|
|
|
87
112
|
## 配置
|
|
88
113
|
|
|
89
|
-
支持 Settings 的 DSH Web profile,在新版打开“插件 → dsh-trellis”,旧版 RC 打开“设置 → 插件 → 插件配置 → Trellis 工作流”。`0.1.7-rc.1`
|
|
114
|
+
支持 Settings 的 DSH Web profile,在新版打开“插件 → dsh-trellis”,旧版 RC 打开“设置 → 插件 → 插件配置 → Trellis 工作流”。`0.1.7-rc.1` 起(含 `0.2.0-rc.1`)保存到当前 profile 的 `cordis.patch.yml`,全局 patch 和命令行覆盖仍优先,无法生效的表单写入会被拒绝;旧宿主仍保存到 `settings.yaml`。
|
|
90
115
|
|
|
91
116
|
升级前备份 `settings.yaml` 和各 profile 配置。新版宿主会把旧文件改名为 `settings.yaml.imported`,并向**首次启动的 profile** 按 entry id 一次性导入;拒绝的 section 只保留在备份文件,不会自动重试。插件不会自行重命名、删除或跨 profile 复制配置;应先安装兼容插件,再启动迁移,并核对其他 profile 的需要。
|
|
92
117
|
|
|
@@ -125,14 +150,17 @@ pnpm run build:client
|
|
|
125
150
|
pnpm test # node --test test/*.test.js
|
|
126
151
|
pnpm run test:compat 0.1.5-rc.2 # 临时副本中安装旧宿主并运行同一套测试
|
|
127
152
|
pnpm run test:compat 0.1.7-rc.2 # RC.2 动态工具与面包屑集成回归
|
|
128
|
-
|
|
153
|
+
pnpm run test:compat 0.2.0-rc.2 # 最新 0.2 RC.2 隔离回归
|
|
154
|
+
# 不传版本参数时,隔离回归 0.1.5-rc.2、0.1.6-alpha.2、0.1.7-rc.1、0.1.7-rc.2、0.2.0-rc.1、0.2.0-rc.2
|
|
129
155
|
```
|
|
130
156
|
|
|
131
|
-
GitHub Actions 配置在 Windows / Linux 的 Node 24 环境执行锁定的 `0.
|
|
157
|
+
GitHub Actions 配置在 Windows / Linux 的 Node 24 环境执行锁定的 `0.2.0-rc.1` 安装、客户端构建、测试、四条旧宿主与 `0.2.0-rc.2` 隔离回归及打包检查。测试覆盖真实 Session/projection 的恢复、分叉、压缩和 checkpoint,临时项目的精确绑定与任务错误恢复,以及新版真实 Loader 的 volatile 更新、子代理目录/查询/驻留状态;新版专属测试在旧宿主明确跳过。另有编译客户端 React 渲染、slot 生命周期、原子保存与拒绝写入测试。
|
|
132
158
|
|
|
133
159
|
RC.2 集成用例运行真实 AgentLoop、Loader、ToolRuntime 和 Session,以本地脚本化模型响应验证三种 `toolUpdate` 能力:不支持、`addition-only`、`in-history`。覆盖插件启停的工具增删消息、Settings 重挂不重复注入、混合历史的恢复/分叉投影,以及 surface 替换后重建工具基线并重新注入面包屑。等待工具另覆盖目录损坏/不存在及卸载期间查询失败的错误保留与监听器清理。该验证不调用外部模型,也不替代 Web 浏览器或真实子代理派发验收;详情见 [2026-09-28 验证记录](https://github.com/SajoLuo/dsh-trellis/blob/main/docs/validation-dsh-0.1.7-rc.2.md)。
|
|
134
160
|
|
|
135
|
-
|
|
161
|
+
0.2 集成用例另以真实 AgentLoop / ToolRuntime / Session 和实际 `trellis_wait` 验证失败工具历史的补齐顺序、错误分类、监听器清理及继续会话的消息配对。只注入 scheduler 故障和本地模型响应,不增加运行时补丁或自动重试;旧宿主按 `ToolCallRecovery` 能力明确跳过。还覆盖“目录查询期间收到成功结算、随后查询失败”的竞争,查询错误不能被伪装成成功。
|
|
162
|
+
|
|
163
|
+
`test:compat` 不改当前 checkout 的依赖,临时副本保留在系统临时目录并打印路径供检查。宿主工具链采用显式支持列表:0.1.7 RC.1/RC.2 和 0.2 RC.1 使用 Cordis 4.0.4、Schemastery 3.18.4、Loader 1.0.5、Include 1.0.9;两条旧线保留各自旧依赖组合,不按“非最新版本”猜测。发布前还应使用隔离 `DSH_HOME` 启动真实 Web profile,验证配置保存/读回、整包及组件开关、重新挂载和卸载;不复用个人凭据或会话。本轮 0.2 Windows 验收已覆盖正常安装、表单保存/重置、配置停用、整包/组件卸载重挂、冲突保护和浏览器重载,详见 [2026-09-29 验证记录](docs/validation-dsh-0.2.0-rc.1.md)。
|
|
136
164
|
|
|
137
165
|
Host half 是直接由 `main` 加载的 ESM JavaScript;Web half 通过 tsdown 生成 DSH lazy-CJS factory 到 `lib/client.js`。`pnpm pack` 会在 prepack 阶段自动重建客户端 bundle。
|
|
138
166
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-trellis",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.11",
|
|
4
4
|
"description": "Trellis workflow integration for DeepSeek Harness: per-turn workflow-state breadcrumbs, utility commands, and native session identity.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "lib/index.js",
|
|
@@ -56,13 +56,13 @@
|
|
|
56
56
|
},
|
|
57
57
|
"peerDependencies": {
|
|
58
58
|
"@deepseek-ai/cordis": "^4.0.2",
|
|
59
|
-
"@deepseek-ai/dsh-commands": "^0.1.0-rc.6 || ^0.1.1-rc.1 || ^0.1.2-alpha.1 || ^0.1.3-alpha.1 || ^0.1.5-alpha.1 || ^0.1.6-alpha.2 || ^0.1.7-rc.1",
|
|
60
|
-
"@deepseek-ai/dsh-llm": "^0.1.0-rc.6 || ^0.1.1-rc.1 || ^0.1.2-alpha.1 || ^0.1.3-alpha.1 || ^0.1.5-alpha.1 || ^0.1.6-alpha.2 || ^0.1.7-rc.1",
|
|
61
|
-
"@deepseek-ai/dsh-session-projection": "^0.1.0-rc.6 || ^0.1.1-rc.1 || ^0.1.2-alpha.1 || ^0.1.3-alpha.1 || ^0.1.5-alpha.1 || ^0.1.6-alpha.2 || ^0.1.7-rc.1",
|
|
62
|
-
"@deepseek-ai/dsh-settings": "^0.1.0-rc.6 || ^0.1.1-rc.1 || ^0.1.2-alpha.1 || ^0.1.3-alpha.1 || ^0.1.5-alpha.1 || ^0.1.6-alpha.2 || ^0.1.7-rc.1",
|
|
63
|
-
"@deepseek-ai/dsh-shell-env": "^0.1.0-rc.6 || ^0.1.1-rc.1 || ^0.1.2-alpha.1 || ^0.1.3-alpha.1 || ^0.1.5-alpha.1 || ^0.1.6-alpha.2 || ^0.1.7-rc.1",
|
|
64
|
-
"@deepseek-ai/dsh-subagent": "^0.1.0-rc.6 || ^0.1.1-rc.1 || ^0.1.2-alpha.1 || ^0.1.3-alpha.1 || ^0.1.5-alpha.1 || ^0.1.6-alpha.2 || ^0.1.7-rc.1",
|
|
65
|
-
"@deepseek-ai/dsh-tools": "^0.1.0-rc.6 || ^0.1.1-rc.1 || ^0.1.2-alpha.1 || ^0.1.3-alpha.1 || ^0.1.5-alpha.1 || ^0.1.6-alpha.2 || ^0.1.7-rc.1",
|
|
59
|
+
"@deepseek-ai/dsh-commands": "^0.1.0-rc.6 || ^0.1.1-rc.1 || ^0.1.2-alpha.1 || ^0.1.3-alpha.1 || ^0.1.5-alpha.1 || ^0.1.6-alpha.2 || ^0.1.7-rc.1 || ^0.2.0-rc.1",
|
|
60
|
+
"@deepseek-ai/dsh-llm": "^0.1.0-rc.6 || ^0.1.1-rc.1 || ^0.1.2-alpha.1 || ^0.1.3-alpha.1 || ^0.1.5-alpha.1 || ^0.1.6-alpha.2 || ^0.1.7-rc.1 || ^0.2.0-rc.1",
|
|
61
|
+
"@deepseek-ai/dsh-session-projection": "^0.1.0-rc.6 || ^0.1.1-rc.1 || ^0.1.2-alpha.1 || ^0.1.3-alpha.1 || ^0.1.5-alpha.1 || ^0.1.6-alpha.2 || ^0.1.7-rc.1 || ^0.2.0-rc.1",
|
|
62
|
+
"@deepseek-ai/dsh-settings": "^0.1.0-rc.6 || ^0.1.1-rc.1 || ^0.1.2-alpha.1 || ^0.1.3-alpha.1 || ^0.1.5-alpha.1 || ^0.1.6-alpha.2 || ^0.1.7-rc.1 || ^0.2.0-rc.1",
|
|
63
|
+
"@deepseek-ai/dsh-shell-env": "^0.1.0-rc.6 || ^0.1.1-rc.1 || ^0.1.2-alpha.1 || ^0.1.3-alpha.1 || ^0.1.5-alpha.1 || ^0.1.6-alpha.2 || ^0.1.7-rc.1 || ^0.2.0-rc.1",
|
|
64
|
+
"@deepseek-ai/dsh-subagent": "^0.1.0-rc.6 || ^0.1.1-rc.1 || ^0.1.2-alpha.1 || ^0.1.3-alpha.1 || ^0.1.5-alpha.1 || ^0.1.6-alpha.2 || ^0.1.7-rc.1 || ^0.2.0-rc.1",
|
|
65
|
+
"@deepseek-ai/dsh-tools": "^0.1.0-rc.6 || ^0.1.1-rc.1 || ^0.1.2-alpha.1 || ^0.1.3-alpha.1 || ^0.1.5-alpha.1 || ^0.1.6-alpha.2 || ^0.1.7-rc.1 || ^0.2.0-rc.1",
|
|
66
66
|
"@deepseek-ai/schemastery": "^3.18.2"
|
|
67
67
|
},
|
|
68
68
|
"peerDependenciesMeta": {
|
|
@@ -101,40 +101,40 @@
|
|
|
101
101
|
"@deepseek-ai/cordis-plugin-include": "1.0.9",
|
|
102
102
|
"@deepseek-ai/cordis-plugin-loader": "1.0.5",
|
|
103
103
|
"@deepseek-ai/cordis": "4.0.4",
|
|
104
|
-
"@deepseek-ai/dsh-agent": "0.
|
|
105
|
-
"@deepseek-ai/dsh-agent-loop": "0.
|
|
106
|
-
"@deepseek-ai/dsh-attachment": "0.
|
|
107
|
-
"@deepseek-ai/dsh-client-locale": "0.
|
|
108
|
-
"@deepseek-ai/dsh-client-ui-settings": "0.
|
|
109
|
-
"@deepseek-ai/dsh-client-ui-settings-plugins": "0.
|
|
110
|
-
"@deepseek-ai/dsh-commands": "0.
|
|
111
|
-
"@deepseek-ai/dsh-home-paths": "0.
|
|
112
|
-
"@deepseek-ai/dsh-http-proxy": "0.
|
|
113
|
-
"@deepseek-ai/dsh-invariants": "0.
|
|
114
|
-
"@deepseek-ai/dsh-llm": "0.
|
|
115
|
-
"@deepseek-ai/dsh-sandbox": "0.
|
|
116
|
-
"@deepseek-ai/dsh-scope": "0.
|
|
117
|
-
"@deepseek-ai/dsh-session": "0.
|
|
118
|
-
"@deepseek-ai/dsh-session-persistence": "0.
|
|
119
|
-
"@deepseek-ai/dsh-session-projection": "0.
|
|
120
|
-
"@deepseek-ai/dsh-session-query": "0.
|
|
121
|
-
"@deepseek-ai/dsh-settings": "0.
|
|
122
|
-
"@deepseek-ai/dsh-shell": "0.
|
|
123
|
-
"@deepseek-ai/dsh-shell-env": "0.
|
|
124
|
-
"@deepseek-ai/dsh-subagent": "0.
|
|
125
|
-
"@deepseek-ai/dsh-subprocess": "0.
|
|
126
|
-
"@deepseek-ai/dsh-system-prompt": "0.
|
|
127
|
-
"@deepseek-ai/dsh-tools": "0.
|
|
128
|
-
"@deepseek-ai/dsh-user-approval": "0.
|
|
129
|
-
"@deepseek-ai/dsh-util-time": "0.
|
|
104
|
+
"@deepseek-ai/dsh-agent": "0.2.0-rc.1",
|
|
105
|
+
"@deepseek-ai/dsh-agent-loop": "0.2.0-rc.1",
|
|
106
|
+
"@deepseek-ai/dsh-attachment": "0.2.0-rc.1",
|
|
107
|
+
"@deepseek-ai/dsh-client-locale": "0.2.0-rc.1",
|
|
108
|
+
"@deepseek-ai/dsh-client-ui-settings": "0.2.0-rc.1",
|
|
109
|
+
"@deepseek-ai/dsh-client-ui-settings-plugins": "0.2.0-rc.1",
|
|
110
|
+
"@deepseek-ai/dsh-commands": "0.2.0-rc.1",
|
|
111
|
+
"@deepseek-ai/dsh-home-paths": "0.2.0-rc.1",
|
|
112
|
+
"@deepseek-ai/dsh-http-proxy": "0.2.0-rc.1",
|
|
113
|
+
"@deepseek-ai/dsh-invariants": "0.2.0-rc.1",
|
|
114
|
+
"@deepseek-ai/dsh-llm": "0.2.0-rc.1",
|
|
115
|
+
"@deepseek-ai/dsh-sandbox": "0.2.0-rc.1",
|
|
116
|
+
"@deepseek-ai/dsh-scope": "0.2.0-rc.1",
|
|
117
|
+
"@deepseek-ai/dsh-session": "0.2.0-rc.1",
|
|
118
|
+
"@deepseek-ai/dsh-session-persistence": "0.2.0-rc.1",
|
|
119
|
+
"@deepseek-ai/dsh-session-projection": "0.2.0-rc.1",
|
|
120
|
+
"@deepseek-ai/dsh-session-query": "0.2.0-rc.1",
|
|
121
|
+
"@deepseek-ai/dsh-settings": "0.2.0-rc.1",
|
|
122
|
+
"@deepseek-ai/dsh-shell": "0.2.0-rc.1",
|
|
123
|
+
"@deepseek-ai/dsh-shell-env": "0.2.0-rc.1",
|
|
124
|
+
"@deepseek-ai/dsh-subagent": "0.2.0-rc.1",
|
|
125
|
+
"@deepseek-ai/dsh-subprocess": "0.2.0-rc.1",
|
|
126
|
+
"@deepseek-ai/dsh-system-prompt": "0.2.0-rc.1",
|
|
127
|
+
"@deepseek-ai/dsh-tools": "0.2.0-rc.1",
|
|
128
|
+
"@deepseek-ai/dsh-user-approval": "0.2.0-rc.1",
|
|
129
|
+
"@deepseek-ai/dsh-util-time": "0.2.0-rc.1",
|
|
130
130
|
"@deepseek-ai/schemastery": "3.18.4",
|
|
131
131
|
"react": "19.2.8",
|
|
132
132
|
"react-dom": "19.2.8",
|
|
133
133
|
"tsdown": "^0.22.2",
|
|
134
|
-
"@deepseek-ai/dsh-ptc-runtime": "0.
|
|
134
|
+
"@deepseek-ai/dsh-ptc-runtime": "0.2.0-rc.1"
|
|
135
135
|
},
|
|
136
136
|
"engines": {
|
|
137
137
|
"node": ">=24",
|
|
138
|
-
"dsh": "^0.1.0-rc.6 || ^0.1.1-rc.1 || ^0.1.2-alpha.1 || ^0.1.3-alpha.1 || ^0.1.5-alpha.1 || ^0.1.6-alpha.2 || ^0.1.7-rc.1"
|
|
138
|
+
"dsh": "^0.1.0-rc.6 || ^0.1.1-rc.1 || ^0.1.2-alpha.1 || ^0.1.3-alpha.1 || ^0.1.5-alpha.1 || ^0.1.6-alpha.2 || ^0.1.7-rc.1 || ^0.2.0-rc.1"
|
|
139
139
|
}
|
|
140
140
|
}
|