@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 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: a30c8288cb571461
34
- zh: e94cf8507f4b8b54
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. Missing local objects cause creation to fail.
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 2.45 or newer and Node in the same execution world as the filesystem provider. Git must support `--no-lazy-fetch`; unsupported executables fail before directory allocation. The existing sandbox must permit all checkout and shared Git metadata writes.
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 或更新版本以及 Node。Git 必须支持 `--no-lazy-fetch`;不支持的可执行程序会在分配目录前报错。现有沙箱必须允许写入检出目录与共享 Git 元数据。
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",
@@ -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
- /** Git 2.45 or newer executable name or absolute execution-world path. */
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.2",
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.1",
31
- "@deepseek-ai/dsh-timeout": "0.2.1-alpha.2"
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.1",
35
- "@deepseek-ai/dsh-agent": "0.2.1-alpha.2",
36
- "@deepseek-ai/dsh-fs": "0.2.1-alpha.2",
37
- "@deepseek-ai/dsh-sandbox": "0.2.1-alpha.2",
38
- "@deepseek-ai/dsh-sandbox-policy": "0.2.1-alpha.2",
39
- "@deepseek-ai/dsh-subprocess": "0.2.1-alpha.2",
40
- "@deepseek-ai/dsh-working-directory": "0.2.1-alpha.2"
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.1",
44
- "@deepseek-ai/dsh-agent": "0.2.1-alpha.2",
45
- "@deepseek-ai/dsh-agent-loop-testkit": "0.2.1-alpha.2",
46
- "@deepseek-ai/dsh-fs": "0.2.1-alpha.2",
47
- "@deepseek-ai/dsh-fs-local": "0.2.1-alpha.2",
48
- "@deepseek-ai/dsh-sandbox": "0.2.1-alpha.2",
49
- "@deepseek-ai/dsh-sandbox-local": "0.2.1-alpha.2",
50
- "@deepseek-ai/dsh-sandbox-policy": "0.2.1-alpha.2",
51
- "@deepseek-ai/dsh-session": "0.2.1-alpha.2",
52
- "@deepseek-ai/dsh-session-projection": "0.2.1-alpha.2",
53
- "@deepseek-ai/dsh-subprocess": "0.2.1-alpha.2",
54
- "@deepseek-ai/dsh-subprocess-local": "0.2.1-alpha.2",
55
- "@deepseek-ai/dsh-system-prompt": "0.2.1-alpha.2",
56
- "@deepseek-ai/dsh-working-directory": "0.2.1-alpha.2"
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
  }