@deepseek-ai/dsh-experimental-worktree 0.2.1-alpha.2 → 0.2.1-alpha.3
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.i18n.yaml +2 -2
- package/README.md +2 -2
- package/README.zh.md +2 -2
- package/lib/index.js +1 -1
- package/lib/types/index.d.ts +1 -1
- package/package.json +24 -24
package/README.i18n.yaml
CHANGED
|
@@ -30,8 +30,8 @@
|
|
|
30
30
|
en: 6826dfaadb24f3da
|
|
31
31
|
zh: 2e2ee715247fc015
|
|
32
32
|
/deepseek-ai-dsh-experimental-worktree/known-limitations-and-deferred-work:
|
|
33
|
-
en:
|
|
34
|
-
zh:
|
|
33
|
+
en: 0adcf97622e86f3b
|
|
34
|
+
zh: 8bcdc336011cd7e1
|
|
35
35
|
/deepseek-ai-dsh-experimental-worktree/known-limitations-and-deferred-work/dev-note:
|
|
36
36
|
en: ad12746a6cc96d8a
|
|
37
37
|
zh: 66275f30a35c88e4
|
package/README.md
CHANGED
|
@@ -83,9 +83,9 @@ This package contributes no prompt text. Its consumers own the appended tool res
|
|
|
83
83
|
<a id="known-limitations-and-deferred-work"></a>
|
|
84
84
|
|
|
85
85
|
- **Retained artifacts** — leaving a worktree keeps its branch and files. Setup failures can also retain partial artifacts; removal, pruning, and branch deletion belong to the user or another consumer.
|
|
86
|
-
- **Local revisions only** — creation does not fetch commits or missing partial-clone objects, initialize submodules, install dependencies, or copy uncommitted files.
|
|
86
|
+
- **Local revisions only** — creation does not fetch commits or missing partial-clone objects, initialize submodules, install dependencies, or copy uncommitted files. On Git that meets the execution requirements, missing local objects cause creation to fail.
|
|
87
87
|
- **Filtered representations** — checkout skips configured filters to avoid executing repository-configured programs or triggering implicit downloads. Git LFS pointers and encrypted blobs stay in their stored representation; hydration or decryption is a separate user-controlled operation.
|
|
88
|
-
- **Execution requirements** — the subprocess provider must offer Git
|
|
88
|
+
- **Execution requirements** — the subprocess provider must offer Git and Node in the same execution world as the filesystem provider. Git must honor `GIT_NO_LAZY_FETCH`, which Git 2.45 and the 2.39.4, 2.40.2, 2.41.1, 2.42.2, 2.43.4, and 2.44.1 maintenance releases do; older releases ignore it and proceed instead of failing, so creation can fetch missing partial-clone objects from a promisor remote. The `git --no-lazy-fetch` option would reject these releases, but it exists only in Git 2.45 and later and also rejects the patched maintenance releases. The existing sandbox must permit all checkout and shared Git metadata writes.
|
|
89
89
|
|
|
90
90
|
<a id="dev-note"></a>
|
|
91
91
|
### Dev Note
|
package/README.zh.md
CHANGED
|
@@ -83,9 +83,9 @@ Git 与目录分配通过挂载的子进程及沙箱提供方执行,沿用调
|
|
|
83
83
|
<a id="known-limitations-and-deferred-work"></a>
|
|
84
84
|
|
|
85
85
|
- **保留产物**——离开工作树会保留其分支和文件。初始化失败也可能留下部分产物;移除、清理注册信息与删除分支由用户或其他消费方负责。
|
|
86
|
-
-
|
|
86
|
+
- **仅限本地提交**——创建操作不会获取远端提交或部分克隆中缺失的对象、初始化子模块、安装依赖或复制未提交文件。Git 满足执行要求时,本地对象缺失会导致创建失败。
|
|
87
87
|
- **过滤器处理前的内容**——检出时跳过已配置的过滤器,以避免执行仓库配置的程序或隐式下载。Git LFS 指针与加密 blob 保持存储时的形式;拉取实体内容或解密由用户另行执行。
|
|
88
|
-
- **执行要求**——子进程提供方必须在与文件系统提供方相同的执行环境中提供 Git 2.45
|
|
88
|
+
- **执行要求**——子进程提供方必须在与文件系统提供方相同的执行环境中提供 Git 与 Node。Git 必须识别 `GIT_NO_LAZY_FETCH`:Git 2.45 及 2.39.4、2.40.2、2.41.1、2.42.2、2.43.4、2.44.1 维护版本均支持;更早的版本会忽略该变量并继续执行而不报错,因此创建操作可能从 promisor 远程获取缺失的部分克隆对象。`git --no-lazy-fetch` 选项会拒绝这些版本,但它仅在 Git 2.45 及以后存在,也会拒绝上述已修补的维护版本。现有沙箱必须允许写入检出目录与共享 Git 元数据。
|
|
89
89
|
|
|
90
90
|
<a id="dev-note"></a>
|
|
91
91
|
### 开发备注
|
package/lib/index.js
CHANGED
|
@@ -140,6 +140,7 @@ async function runCommand(ctx, config, policy, cwd, argv, signal, allowedExitCod
|
|
|
140
140
|
...GIT_ENV,
|
|
141
141
|
GIT_TERMINAL_PROMPT: "0",
|
|
142
142
|
GIT_LFS_SKIP_SMUDGE: "1",
|
|
143
|
+
GIT_NO_LAZY_FETCH: "1",
|
|
143
144
|
...env
|
|
144
145
|
},
|
|
145
146
|
signal: timeout.signal,
|
|
@@ -258,7 +259,6 @@ var WorktreeService = class extends Service {
|
|
|
258
259
|
const policy = this.ctx.sandboxPolicy.resolve({ session: agent.session });
|
|
259
260
|
const run = (directory, args, allowedExitCodes, env) => runCommand(this.ctx, this.config, policy, directory, [
|
|
260
261
|
this.config.gitCommand,
|
|
261
|
-
"--no-lazy-fetch",
|
|
262
262
|
"-c",
|
|
263
263
|
"core.hooksPath=/dev/null",
|
|
264
264
|
"-c",
|
package/lib/types/index.d.ts
CHANGED
|
@@ -10,7 +10,7 @@ export interface Config {
|
|
|
10
10
|
directory?: string;
|
|
11
11
|
/** Prefix for automatically generated branch and checkout names. */
|
|
12
12
|
namePrefix?: string;
|
|
13
|
-
/**
|
|
13
|
+
/** Executable name or absolute execution-world path of a Git release that honors `GIT_NO_LAZY_FETCH`. */
|
|
14
14
|
gitCommand?: string;
|
|
15
15
|
/** Node executable used for sandboxed directory allocation. */
|
|
16
16
|
nodeCommand?: string;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@deepseek-ai/dsh-experimental-worktree",
|
|
3
3
|
"description": "Creates a named Git worktree and changes the calling Session working directory",
|
|
4
|
-
"version": "0.2.1-alpha.
|
|
4
|
+
"version": "0.2.1-alpha.3",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
7
7
|
},
|
|
@@ -27,32 +27,32 @@
|
|
|
27
27
|
"directory": "packages/experimental/worktree"
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@deepseek-ai/schemastery": "~3.18.5-alpha.
|
|
31
|
-
"@deepseek-ai/dsh-timeout": "0.2.1-alpha.
|
|
30
|
+
"@deepseek-ai/schemastery": "~3.18.5-alpha.2",
|
|
31
|
+
"@deepseek-ai/dsh-timeout": "0.2.1-alpha.3"
|
|
32
32
|
},
|
|
33
33
|
"peerDependencies": {
|
|
34
|
-
"@deepseek-ai/cordis": "~4.0.5-alpha.
|
|
35
|
-
"@deepseek-ai/dsh-agent": "0.2.1-alpha.
|
|
36
|
-
"@deepseek-ai/dsh-fs": "0.2.1-alpha.
|
|
37
|
-
"@deepseek-ai/dsh-sandbox": "0.2.1-alpha.
|
|
38
|
-
"@deepseek-ai/dsh-sandbox-policy": "0.2.1-alpha.
|
|
39
|
-
"@deepseek-ai/dsh-subprocess": "0.2.1-alpha.
|
|
40
|
-
"@deepseek-ai/dsh-working-directory": "0.2.1-alpha.
|
|
34
|
+
"@deepseek-ai/cordis": "~4.0.5-alpha.2",
|
|
35
|
+
"@deepseek-ai/dsh-agent": "0.2.1-alpha.3",
|
|
36
|
+
"@deepseek-ai/dsh-fs": "0.2.1-alpha.3",
|
|
37
|
+
"@deepseek-ai/dsh-sandbox": "0.2.1-alpha.3",
|
|
38
|
+
"@deepseek-ai/dsh-sandbox-policy": "0.2.1-alpha.3",
|
|
39
|
+
"@deepseek-ai/dsh-subprocess": "0.2.1-alpha.3",
|
|
40
|
+
"@deepseek-ai/dsh-working-directory": "0.2.1-alpha.3"
|
|
41
41
|
},
|
|
42
42
|
"devDependencies": {
|
|
43
|
-
"@deepseek-ai/cordis": "~4.0.5-alpha.
|
|
44
|
-
"@deepseek-ai/dsh-agent": "0.2.1-alpha.
|
|
45
|
-
"@deepseek-ai/dsh-agent-loop-testkit": "0.2.1-alpha.
|
|
46
|
-
"@deepseek-ai/dsh-fs": "0.2.1-alpha.
|
|
47
|
-
"@deepseek-ai/dsh-fs-local": "0.2.1-alpha.
|
|
48
|
-
"@deepseek-ai/dsh-sandbox": "0.2.1-alpha.
|
|
49
|
-
"@deepseek-ai/dsh-sandbox-local": "0.2.1-alpha.
|
|
50
|
-
"@deepseek-ai/dsh-sandbox-policy": "0.2.1-alpha.
|
|
51
|
-
"@deepseek-ai/dsh-session": "0.2.1-alpha.
|
|
52
|
-
"@deepseek-ai/dsh-session-projection": "0.2.1-alpha.
|
|
53
|
-
"@deepseek-ai/dsh-subprocess": "0.2.1-alpha.
|
|
54
|
-
"@deepseek-ai/dsh-subprocess-local": "0.2.1-alpha.
|
|
55
|
-
"@deepseek-ai/dsh-system-prompt": "0.2.1-alpha.
|
|
56
|
-
"@deepseek-ai/dsh-working-directory": "0.2.1-alpha.
|
|
43
|
+
"@deepseek-ai/cordis": "~4.0.5-alpha.2",
|
|
44
|
+
"@deepseek-ai/dsh-agent": "0.2.1-alpha.3",
|
|
45
|
+
"@deepseek-ai/dsh-agent-loop-testkit": "0.2.1-alpha.3",
|
|
46
|
+
"@deepseek-ai/dsh-fs": "0.2.1-alpha.3",
|
|
47
|
+
"@deepseek-ai/dsh-fs-local": "0.2.1-alpha.3",
|
|
48
|
+
"@deepseek-ai/dsh-sandbox": "0.2.1-alpha.3",
|
|
49
|
+
"@deepseek-ai/dsh-sandbox-local": "0.2.1-alpha.3",
|
|
50
|
+
"@deepseek-ai/dsh-sandbox-policy": "0.2.1-alpha.3",
|
|
51
|
+
"@deepseek-ai/dsh-session": "0.2.1-alpha.3",
|
|
52
|
+
"@deepseek-ai/dsh-session-projection": "0.2.1-alpha.3",
|
|
53
|
+
"@deepseek-ai/dsh-subprocess": "0.2.1-alpha.3",
|
|
54
|
+
"@deepseek-ai/dsh-subprocess-local": "0.2.1-alpha.3",
|
|
55
|
+
"@deepseek-ai/dsh-system-prompt": "0.2.1-alpha.3",
|
|
56
|
+
"@deepseek-ai/dsh-working-directory": "0.2.1-alpha.3"
|
|
57
57
|
}
|
|
58
58
|
}
|