dsh-patch-edit-plus 0.2.3 → 0.3.0
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/CHANGELOG.md +3 -9
- package/CHANGELOG.zh.md +3 -9
- package/README.ja.md +7 -8
- package/README.ko.md +7 -8
- package/README.md +6 -7
- package/README.zh.md +6 -7
- package/dsh.plugin.json +2 -2
- package/package.json +12 -12
package/CHANGELOG.md
CHANGED
|
@@ -1,17 +1,11 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
## [0.
|
|
4
|
-
|
|
5
|
-
### Fixed
|
|
6
|
-
- **Delete/Move silently degraded to UNSUPPORTED on real 0.1.7 hosts** (defect shipped in 0.2.1): the shell duck-detect looked for `run()`, but DSH renamed `ShellExecutor.run(spec)` → `execute(spec)` (returning a `ShellProcess` handle with a `result()` foreground projection) between 0.1.2 and 0.1.7 — so the detect never matched and Delete/Move always fell back to a structured UNSUPPORTED error. `shellops` now calls `shell.execute(...)` + `await execution.result()` and duck-detects `execute`; shell test mocks moved to the `execute()`/`result()` shape.
|
|
3
|
+
## [0.3.0] — 2026-09-29
|
|
7
4
|
|
|
8
5
|
### Changed
|
|
9
|
-
- devDependencies 4x `@deepseek-ai/dsh-*` `0.1.2-rc.1` → `0.1.7-rc.2`: the type baseline now matches the hosts this line serves (the stale pin was the "fake green" pattern — it masked the rename above).
|
|
10
|
-
- Docs x4 (README/INSTALL): compatibility re-based to the `0.1.7` segment; ja/ko matrices were stale at the 0.1.2~0.1.5 wide claim.
|
|
11
|
-
|
|
12
|
-
## [0.2.1] — 2026-09-25
|
|
13
6
|
|
|
14
|
-
-
|
|
7
|
+
- **DSH 0.2.0 line support (`compat/0.2.0` branch).** Peer ranges and `engines.dsh` (both manifests) now declare `>=0.2.0-rc.1 <0.2.1-0`; version 0.3.0. devDependencies pin the real `0.2.0-rc.1` type baseline, and the cross-check script is upgraded to `npm run typecheck:0.2.0` (installs the real peer packages from the registry). 0.1.x hosts remain served by the `compat/0.1.7` branch / `dsh-0.1.7` dist-tag.
|
|
8
|
+
- **Delete/Move migrated to the current shell executor API.** `ShellExecutor.run(spec)` was renamed `execute(spec)` — returning a `ShellProcess` handle with a `result()` foreground projection — between the 0.1.2 and 0.1.7 host lines. The old devDependency pin (`0.1.2-rc.1`) masked this: the 0.1.7-line package (0.2.1) typechecked green against a stale baseline, and at runtime on real 0.1.7+ hosts its `run`-based duck-typing never matched, so Delete/Move degraded to the structured UNSUPPORTED error. This line calls `shell.execute(...)` and awaits `execution.result()`; the executor is detected via `execute`.
|
|
15
9
|
|
|
16
10
|
## [0.1.2] — 2026-09-19
|
|
17
11
|
|
package/CHANGELOG.zh.md
CHANGED
|
@@ -1,17 +1,11 @@
|
|
|
1
1
|
# 更新日志
|
|
2
2
|
|
|
3
|
-
## [0.
|
|
4
|
-
|
|
5
|
-
### 修复
|
|
6
|
-
- **Delete/Move 在真实 0.1.7 宿主上被静默降级为 UNSUPPORTED**(0.2.1 携带的缺陷):shell 鸭子探测查的是 `run()`,但 DSH 在 0.1.2→0.1.7 之间把 `ShellExecutor.run(spec)` 改名为 `execute(spec)`(返回 `ShellProcess` 句柄 + `result()` 前台投影)——探测永不命中,Delete/Move 一直落到结构化 UNSUPPORTED 错误。`shellops` 现改用 `shell.execute(...)` + `await execution.result()`,鸭子探测改查 `execute`;shell 测试 mock 同步迁移到 `execute()`/`result()` 形态。
|
|
3
|
+
## [0.3.0] — 2026-09-29
|
|
7
4
|
|
|
8
5
|
### 变更
|
|
9
|
-
- devDependencies 4 项 `@deepseek-ai/dsh-*` `0.1.2-rc.1` → `0.1.7-rc.2`:类型基线与本线服务的宿主对齐(过期的钉版正是「假绿」形态——它掩盖了上述改名)。
|
|
10
|
-
- 文档 ×4(README/INSTALL):兼容矩阵重基于 `0.1.7` 线段;ja/ko 矩阵此前停留在 0.1.2~0.1.5 旧态。
|
|
11
|
-
|
|
12
|
-
## [0.2.1] — 2026-09-25
|
|
13
6
|
|
|
14
|
-
- 0.
|
|
7
|
+
- **支持 DSH 0.2.0 线(`compat/0.2.0` 分支)。** peer 范围与两份清单的 `engines.dsh` 改为 `>=0.2.0-rc.1 <0.2.1-0`;版本 0.3.0。devDependencies 钉住真实的 `0.2.0-rc.1` 类型基线,交叉校验脚本升级为 `npm run typecheck:0.2.0`(从 registry 干净安装真实 peer 包做核验)。0.1.x 宿主继续由 `compat/0.1.7` 分支 / `dsh-0.1.7` dist-tag 服务。
|
|
8
|
+
- **Delete/Move 迁移到现行 shell 执行器 API。** 宿主在 0.1.2 → 0.1.7 线之间把 `ShellExecutor.run(spec)` 改名为 `execute(spec)`——返回 `ShellProcess` 句柄,前台结果经 `result()` 获取。旧的 devDependency 钉版(`0.1.2-rc.1`)掩盖了这一点:0.1.7 线的包(0.2.1)对过期基线假绿,且在真实 0.1.7+ 宿主上运行时基于 `run` 的鸭子探测永不命中,Delete/Move 实际降级为结构化 UNSUPPORTED 错误。本线改为调用 `shell.execute(...)` 并等待 `execution.result()`;执行器经 `execute` 做结构探测。
|
|
15
9
|
|
|
16
10
|
## [0.1.2] — 2026-09-19
|
|
17
11
|
|
package/README.ja.md
CHANGED
|
@@ -6,12 +6,11 @@
|
|
|
6
6
|
|
|
7
7
|
| DSH バージョン | ステータス | 備考 |
|
|
8
8
|
|---|---|---|
|
|
9
|
-
| `0.
|
|
10
|
-
| `0.1.
|
|
11
|
-
| `0.1.5-rc.
|
|
12
|
-
| `0.2.0-rc.1+` | ↗ 次ライン | `dsh-0.2.0` dist-tag(v0.3.0+)が担います。 |
|
|
9
|
+
| `0.2.0-rc.1+` | ✅ サポート対象(本ライン、v0.3.0+) | 宣言的設定:`allowCodexPatch` は `.volatile()` 付きで、設定フォームは自動生成され、`loader/volatile-update` が再マウントなしでツールをその場で再登録します。登録呼び出しは不要。Delete/Move は `ShellExecutor.execute()` + `result()` フォアグラウンド API に移行済み。 |
|
|
10
|
+
| `0.1.7-rc.1+` | ↗ メンテナンスライン | `compat/0.1.7` ブランチ / `dsh-0.1.7` dist-tag が担当(同ラインの v0.2.1)。0.2.0 より前にシェル実行器の `run` が `execute` に改名されており(0.1.2 → 0.1.7 の間)、1 つのコードベースで両ラインを型安全に支えることはできません。 |
|
|
11
|
+
| `0.1.2-rc.1` ~ `0.1.5-rc.2` | ↗ メンテナンスライン | 0.1.7 以前のブランチ / `dsh-0.1.5` dist-tag が担当。0.1.7 はデュアル API フォールバックが依存する命令型登録 API を削除しました。 |
|
|
13
12
|
|
|
14
|
-
本ラインの設定は宣言的です:`Config`
|
|
13
|
+
本ラインの設定は宣言的です:`Config` 内で `.volatile()` を付けたフィールドがそのまま設定フォームになり、プラグインは登録フックの代わりに `loader/volatile-update` を購読します。
|
|
15
14
|
|
|
16
15
|
## そもそもなぜパッチなのか?(ツールルーティングガイド)
|
|
17
16
|
|
|
@@ -110,9 +109,9 @@ dsh web --dump-config # verify the plugin row appears
|
|
|
110
109
|
|
|
111
110
|
```bash
|
|
112
111
|
npm install
|
|
113
|
-
npm run typecheck # against 0.
|
|
114
|
-
npm run typecheck:0.
|
|
115
|
-
npm test # vitest,
|
|
112
|
+
npm run typecheck # against 0.2.0-rc.1 peers (devDependencies)
|
|
113
|
+
npm run typecheck:0.2.0 # against real 0.2.0-rc.1 peer packages installed from the registry (dual-baseline proof)
|
|
114
|
+
npm test # vitest, 92 tests
|
|
116
115
|
npm run lint
|
|
117
116
|
npm run build # lib/
|
|
118
117
|
npm run verify:source # static safety assertions (intent dance, no node:fs, …)
|
package/README.ko.md
CHANGED
|
@@ -6,12 +6,11 @@
|
|
|
6
6
|
|
|
7
7
|
| DSH 버전 | 상태 | 비고 |
|
|
8
8
|
|---|---|---|
|
|
9
|
-
| `0.
|
|
10
|
-
| `0.1.
|
|
11
|
-
| `0.1.5-rc.
|
|
12
|
-
| `0.2.0-rc.1+` | ↗ 다음 라인 | `dsh-0.2.0` dist-tag(v0.3.0+)가 담당합니다. |
|
|
9
|
+
| `0.2.0-rc.1+` | ✅ 지원됨(본 라인, v0.3.0+) | 선언적 설정: `allowCodexPatch`에 `.volatile()`가 표시되어 설정 폼이 자동 생성되고, `loader/volatile-update`가 리마운트 없이 도구를 그 자리에서 재등록합니다. 등록 호출이 없습니다. Delete/Move는 `ShellExecutor.execute()` + `result()` 포그라운드 API로 이전되었습니다. |
|
|
10
|
+
| `0.1.7-rc.1+` | ↗ 유지보수 라인 | `compat/0.1.7` 브랜치 / `dsh-0.1.7` dist-tag가 담당(해당 라인의 v0.2.1). 0.2.0 이전에 셸 실행기의 `run`이 `execute`로 이름이 바뀌었고(0.1.2 → 0.1.7 사이), 하나의 코드베이스로 두 라인을 타입 안전하게 지원할 수 없습니다. |
|
|
11
|
+
| `0.1.2-rc.1` ~ `0.1.5-rc.2` | ↗ 유지보수 라인 | 0.1.7 이전 브랜치 / `dsh-0.1.5` dist-tag가 담당. 0.1.7은 이중 API 폴백이 의존하던 명령형 등록 API를 제거했습니다. |
|
|
13
12
|
|
|
14
|
-
본 라인의 설정은 선언적입니다: `Config`에서 `.volatile()`로
|
|
13
|
+
본 라인의 설정은 선언적입니다: `Config`에서 `.volatile()`로 표시된 필드가 곧 설정 폼이며, 플러그인은 등록 훅 대신 `loader/volatile-update`를 구독합니다.
|
|
15
14
|
|
|
16
15
|
## 왜 굳이 패치인가? (도구 라우팅 가이드)
|
|
17
16
|
|
|
@@ -110,9 +109,9 @@ dsh web --dump-config # verify the plugin row appears
|
|
|
110
109
|
|
|
111
110
|
```bash
|
|
112
111
|
npm install
|
|
113
|
-
npm run typecheck # against 0.
|
|
114
|
-
npm run typecheck:0.
|
|
115
|
-
npm test # vitest,
|
|
112
|
+
npm run typecheck # against 0.2.0-rc.1 peers (devDependencies)
|
|
113
|
+
npm run typecheck:0.2.0 # against real 0.2.0-rc.1 peer packages installed from the registry (dual-baseline proof)
|
|
114
|
+
npm test # vitest, 92 tests
|
|
116
115
|
npm run lint
|
|
117
116
|
npm run build # lib/
|
|
118
117
|
npm run verify:source # static safety assertions (intent dance, no node:fs, …)
|
package/README.md
CHANGED
|
@@ -6,10 +6,9 @@ Patch-style file editing for [DeepSeek Harness (DSH)](https://github.com/deepsee
|
|
|
6
6
|
|
|
7
7
|
| DSH version | Status | Notes |
|
|
8
8
|
|---|---|---|
|
|
9
|
-
| `0.
|
|
10
|
-
| `0.1.
|
|
11
|
-
| `0.1.5-rc.
|
|
12
|
-
| `0.2.0-rc.1+` | ↗ next line | Served by the `dsh-0.2.0` dist-tag (v0.3.0+). |
|
|
9
|
+
| `0.2.0-rc.1+` | ✅ supported (this line, v0.3.0+) | Declarative settings: `allowCodexPatch` is marked `.volatile()` — the settings form renders automatically and `loader/volatile-update` re-registers the tool without a remount. No registration call. Delete/Move migrated to the `ShellExecutor.execute()` + `result()` foreground API. |
|
|
10
|
+
| `0.1.7-rc.1+` | ↗ maintenance line | Served by the `compat/0.1.7` branch / `dsh-0.1.7` dist-tag (v0.2.1 there). 0.2.0's shell executor renamed `run` → `execute` (introduced between 0.1.2 and 0.1.7), so one codebase cannot serve both lines type-safely. |
|
|
11
|
+
| `0.1.2-rc.1` ~ `0.1.5-rc.2` | ↗ maintenance line | Served by the pre-0.1.7 branch / `dsh-0.1.5` dist-tag. 0.1.7 removed the imperative settings APIs the dual-API fallback relied on. |
|
|
13
12
|
|
|
14
13
|
Settings are declarative on this line: fields marked `.volatile()` in `Config` become the settings form; the plugin subscribes to `loader/volatile-update` instead of receiving registration hooks.
|
|
15
14
|
|
|
@@ -110,9 +109,9 @@ Enable with `allowCodexPatch: true`. When a Codex patch arrives while disabled,
|
|
|
110
109
|
|
|
111
110
|
```bash
|
|
112
111
|
npm install
|
|
113
|
-
npm run typecheck # against 0.
|
|
114
|
-
npm run typecheck:0.
|
|
115
|
-
npm test # vitest,
|
|
112
|
+
npm run typecheck # against 0.2.0-rc.1 peers (devDependencies)
|
|
113
|
+
npm run typecheck:0.2.0 # against real 0.2.0-rc.1 peer packages installed from the registry (dual-baseline proof)
|
|
114
|
+
npm test # vitest, 92 tests
|
|
116
115
|
npm run lint
|
|
117
116
|
npm run build # lib/
|
|
118
117
|
npm run verify:source # static safety assertions (intent dance, no node:fs, …)
|
package/README.zh.md
CHANGED
|
@@ -6,10 +6,9 @@
|
|
|
6
6
|
|
|
7
7
|
| DSH 版本 | 状态 | 说明 |
|
|
8
8
|
|---|---|---|
|
|
9
|
-
| `0.
|
|
10
|
-
| `0.1.
|
|
11
|
-
| `0.1.5-rc.
|
|
12
|
-
| `0.2.0-rc.1+` | ↗ 下一线 | 由 `dsh-0.2.0` dist-tag(v0.3.0+)服务。 |
|
|
9
|
+
| `0.2.0-rc.1+` | ✅ 支持(本线,v0.3.0+) | 声明式设置:`allowCodexPatch` 标记 `.volatile()`——设置表单自动生成,`loader/volatile-update` 驱动工具原位重注册(不 remount),无任何注册调用。Delete/Move 已迁移到 `ShellExecutor.execute()` + `result()` 前台 API。 |
|
|
10
|
+
| `0.1.7-rc.1+` | ↗ 维护线 | 由 `compat/0.1.7` 分支 / `dsh-0.1.7` dist-tag 服务(该线 v0.2.1)。0.2.0 之前 shell 执行器已把 `run` 改名为 `execute`(发生在 0.1.2 → 0.1.7 之间),一份代码无法对两条线同时类型安全。 |
|
|
11
|
+
| `0.1.2-rc.1` ~ `0.1.5-rc.2` | ↗ 维护线 | 由 0.1.7 前的分支 / `dsh-0.1.5` dist-tag 服务。0.1.7 删除了双 API 回退所依赖的命令式注册 API。 |
|
|
13
12
|
|
|
14
13
|
本线的 settings 是声明式的:`Config` 中标记 `.volatile()` 的字段即设置表单;插件订阅 `loader/volatile-update`,不再接收注册 hooks。
|
|
15
14
|
|
|
@@ -109,9 +108,9 @@ dsh web --dump-config # 确认插件行出现
|
|
|
109
108
|
|
|
110
109
|
```bash
|
|
111
110
|
npm install
|
|
112
|
-
npm run typecheck # 针对 0.
|
|
113
|
-
npm run typecheck:0.
|
|
114
|
-
npm test # vitest,
|
|
111
|
+
npm run typecheck # 针对 0.2.0-rc.1 peer 包(devDependencies)
|
|
112
|
+
npm run typecheck:0.2.0 # 从 registry 干净安装真实 0.2.0-rc.1 peer 包做类型核验(双基线证明)
|
|
113
|
+
npm test # vitest,92 个用例
|
|
115
114
|
npm run lint
|
|
116
115
|
npm run build # lib/
|
|
117
116
|
npm run verify:source # 静态安全断言(intent 舞蹈、无 node:fs 等)
|
package/dsh.plugin.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"id": "dsh-patch-edit-plus",
|
|
3
3
|
"name": "dsh-patch-edit-plus",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.3.0",
|
|
5
5
|
"description": {
|
|
6
6
|
"en": "Patch-style file editing: one apply_patch tool for git/unified diff (default) and Codex apply_patch syntax (opt-in), with all-or-nothing application and sandbox-aware delete/move.",
|
|
7
7
|
"zh": "补丁风格文件编辑:单个 apply_patch 工具,接受 git/unified diff(默认)与 Codex apply_patch 语法(可选开启),全量验证后原子应用,删除/移动走沙箱感知 shell。"
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
},
|
|
14
14
|
"license": "MIT",
|
|
15
15
|
"engines": {
|
|
16
|
-
"dsh": ">=0.
|
|
16
|
+
"dsh": ">=0.2.0-rc.1 <0.2.1-0"
|
|
17
17
|
},
|
|
18
18
|
"components": {
|
|
19
19
|
"host": "lib/index.js"
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-patch-edit-plus",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Patch-style file editing for DeepSeek Harness: one apply_patch tool accepting git/unified diff (default) and Codex apply_patch syntax (opt-in), with all-or-nothing application, read-before-write intent dance, sandbox-aware delete/move,
|
|
3
|
+
"version": "0.3.0",
|
|
4
|
+
"description": "Patch-style file editing for DeepSeek Harness: one apply_patch tool accepting git/unified diff (default) and Codex apply_patch syntax (opt-in), with all-or-nothing application, read-before-write intent dance, sandbox-aware delete/move, targeting the DSH 0.2.0 line (declarative volatile settings).",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
"build": "tsc -p tsconfig.build.json",
|
|
38
38
|
"prepublishOnly": "npm run build",
|
|
39
39
|
"typecheck": "tsc -p tsconfig.json",
|
|
40
|
-
"typecheck:0.
|
|
40
|
+
"typecheck:0.2.0": "node scripts/typecheck-0.2.0.mjs",
|
|
41
41
|
"lint": "eslint src tests scripts _smoke",
|
|
42
42
|
"lint:fix": "eslint src tests scripts _smoke --fix",
|
|
43
43
|
"test": "vitest run",
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
},
|
|
48
48
|
"engines": {
|
|
49
49
|
"node": ">=20",
|
|
50
|
-
"dsh": ">=0.
|
|
50
|
+
"dsh": ">=0.2.0-rc.1 <0.2.1-0"
|
|
51
51
|
},
|
|
52
52
|
"license": "MIT",
|
|
53
53
|
"keywords": [
|
|
@@ -62,10 +62,10 @@
|
|
|
62
62
|
],
|
|
63
63
|
"peerDependencies": {
|
|
64
64
|
"@deepseek-ai/cordis": "^4.0.1",
|
|
65
|
-
"@deepseek-ai/dsh-fs": ">=0.
|
|
66
|
-
"@deepseek-ai/dsh-sandbox": ">=0.
|
|
67
|
-
"@deepseek-ai/dsh-shell": ">=0.
|
|
68
|
-
"@deepseek-ai/dsh-tools": ">=0.
|
|
65
|
+
"@deepseek-ai/dsh-fs": ">=0.2.0-rc.1 <0.2.1-0",
|
|
66
|
+
"@deepseek-ai/dsh-sandbox": ">=0.2.0-rc.1 <0.2.1-0",
|
|
67
|
+
"@deepseek-ai/dsh-shell": ">=0.2.0-rc.1 <0.2.1-0",
|
|
68
|
+
"@deepseek-ai/dsh-tools": ">=0.2.0-rc.1 <0.2.1-0"
|
|
69
69
|
},
|
|
70
70
|
"peerDependenciesMeta": {
|
|
71
71
|
"@deepseek-ai/cordis": {
|
|
@@ -89,10 +89,10 @@
|
|
|
89
89
|
},
|
|
90
90
|
"devDependencies": {
|
|
91
91
|
"@deepseek-ai/cordis": "^4.0.2",
|
|
92
|
-
"@deepseek-ai/dsh-fs": "0.
|
|
93
|
-
"@deepseek-ai/dsh-sandbox": "0.
|
|
94
|
-
"@deepseek-ai/dsh-shell": "0.
|
|
95
|
-
"@deepseek-ai/dsh-tools": "0.
|
|
92
|
+
"@deepseek-ai/dsh-fs": "0.2.0-rc.1",
|
|
93
|
+
"@deepseek-ai/dsh-sandbox": "0.2.0-rc.1",
|
|
94
|
+
"@deepseek-ai/dsh-shell": "0.2.0-rc.1",
|
|
95
|
+
"@deepseek-ai/dsh-tools": "0.2.0-rc.1",
|
|
96
96
|
"@eslint/js": "^9.0.0",
|
|
97
97
|
"@types/node": "^22.0.0",
|
|
98
98
|
"eslint": "^9.0.0",
|