clawt 3.8.8 → 3.8.10

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 CHANGED
@@ -343,7 +343,7 @@ Configuration file is located at `~/.clawt/config.json`, auto-generated after in
343
343
  | `aliases` | `{}` | Command alias mapping (e.g., `{"l": "list", "r": "run"}`) |
344
344
  | `autoUpdate` | `true` | Auto-check for new versions (checks npm registry every 24 hours) |
345
345
  | `conflictResolveMode` | `"ask"` | Merge conflict resolution mode: `ask` (prompt for AI), `auto` (auto AI resolve), `manual` (manual resolve) |
346
- | `conflictResolveTimeoutMs` | `600000` | Claude Code conflict resolution timeout (ms), default 10 minutes |
346
+ | `conflictResolveTimeoutMs` | `900000` | Claude Code conflict resolution timeout (ms), default 15 minutes |
347
347
 
348
348
  ## postCreate Hook
349
349
 
package/README.zh-CN.md CHANGED
@@ -343,7 +343,7 @@ clawt alias remove l
343
343
  | `aliases` | `{}` | 命令别名映射(如 `{"l": "list", "r": "run"}`) |
344
344
  | `autoUpdate` | `true` | 自动检查新版本(每 24 小时检查一次 npm registry) |
345
345
  | `conflictResolveMode` | `"ask"` | merge 冲突时的解决模式:`ask`(询问是否使用 AI)、`auto`(自动 AI 解决)、`manual`(手动解决) |
346
- | `conflictResolveTimeoutMs` | `600000` | Claude Code 冲突解决超时时间(毫秒),默认 10 分钟 |
346
+ | `conflictResolveTimeoutMs` | `900000` | Claude Code 冲突解决超时时间(毫秒),默认 15 分钟 |
347
347
 
348
348
  ## postCreate Hook
349
349
 
package/dist/index.js CHANGED
@@ -708,6 +708,7 @@ var ITERM2_APP_PATH = "/Applications/iTerm.app";
708
708
 
709
709
  // src/constants/config.ts
710
710
  var APPEND_SYSTEM_PROMPT = "Currently, you are in the git worktree directory.";
711
+ var CLAUDE_CODE_ENTRYPOINT_VALUE = "cli";
711
712
  var CONFIG_DEFINITIONS = {
712
713
  autoDeleteBranch: {
713
714
  defaultValue: false,
@@ -752,8 +753,8 @@ var CONFIG_DEFINITIONS = {
752
753
  allowedValues: ["ask", "auto", "manual"]
753
754
  },
754
755
  conflictResolveTimeoutMs: {
755
- defaultValue: 6e5,
756
- description: "Claude Code \u51B2\u7A81\u89E3\u51B3\u8D85\u65F6\u65F6\u95F4\uFF08\u6BEB\u79D2\uFF09\uFF0C\u9ED8\u8BA4 600000\uFF0810 \u5206\u949F\uFF09"
756
+ defaultValue: 9e5,
757
+ description: "Claude Code \u51B2\u7A81\u89E3\u51B3\u8D85\u65F6\u65F6\u95F4\uFF08\u6BEB\u79D2\uFF09\uFF0C\u9ED8\u8BA4 900000\uFF0815 \u5206\u949F\uFF09"
757
758
  }
758
759
  };
759
760
  function deriveDefaultConfig(definitions) {
@@ -1048,7 +1049,7 @@ function throwIfGitIndexLockError(error, cwd) {
1048
1049
  // src/utils/shell.ts
1049
1050
  function getEnvWithoutNestedSessionFlag() {
1050
1051
  const { CLAUDECODE: _, ...env } = process.env;
1051
- return env;
1052
+ return { ...env, CLAUDE_CODE_ENTRYPOINT: CLAUDE_CODE_ENTRYPOINT_VALUE };
1052
1053
  }
1053
1054
  function execCommand(command, options) {
1054
1055
  logger.debug(`\u6267\u884C\u547D\u4EE4: ${command}${options?.cwd ? ` (cwd: ${options.cwd})` : ""}`);
@@ -4317,7 +4318,7 @@ var InteractivePanel = class {
4317
4318
 
4318
4319
  // src/utils/conflict-resolver.ts
4319
4320
  import { execFileSync as execFileSync4 } from "child_process";
4320
- var DEFAULT_CONFLICT_RESOLVE_TIMEOUT_MS = 6e5;
4321
+ var DEFAULT_CONFLICT_RESOLVE_TIMEOUT_MS = 9e5;
4321
4322
  function buildConflictResolvePrompt() {
4322
4323
  return CONFLICT_RESOLVE_PROMPT;
4323
4324
  }
@@ -688,8 +688,8 @@ var CONFIG_DEFINITIONS = {
688
688
  allowedValues: ["ask", "auto", "manual"]
689
689
  },
690
690
  conflictResolveTimeoutMs: {
691
- defaultValue: 6e5,
692
- description: "Claude Code \u51B2\u7A81\u89E3\u51B3\u8D85\u65F6\u65F6\u95F4\uFF08\u6BEB\u79D2\uFF09\uFF0C\u9ED8\u8BA4 600000\uFF0810 \u5206\u949F\uFF09"
691
+ defaultValue: 9e5,
692
+ description: "Claude Code \u51B2\u7A81\u89E3\u51B3\u8D85\u65F6\u65F6\u95F4\uFF08\u6BEB\u79D2\uFF09\uFF0C\u9ED8\u8BA4 900000\uFF0815 \u5206\u949F\uFF09"
693
693
  }
694
694
  };
695
695
  function deriveDefaultConfig(definitions) {
@@ -26,7 +26,7 @@
26
26
  "aliases": {},
27
27
  "autoUpdate": true,
28
28
  "conflictResolveMode": "ask",
29
- "conflictResolveTimeoutMs": 600000
29
+ "conflictResolveTimeoutMs": 900000
30
30
  }
31
31
  ```
32
32
 
@@ -44,6 +44,6 @@
44
44
  | `aliases` | `Record<string, string>` | `{}` | 命令别名映射,键为别名,值为目标内置命令名 |
45
45
  | `autoUpdate` | `boolean` | `true` | 是否启用自动更新检查(每 24 小时通过 npm registry 检查一次新版本) |
46
46
  | `conflictResolveMode` | `string` | `"ask"` | merge 冲突时的解决模式:`ask`(询问是否使用 AI)、`auto`(自动 AI 解决)、`manual`(手动解决) |
47
- | `conflictResolveTimeoutMs` | `number` | `600000` | Claude Code 冲突解决超时时间(毫秒),默认 60000010 分钟) |
47
+ | `conflictResolveTimeoutMs` | `number` | `900000` | Claude Code 冲突解决超时时间(毫秒),默认 90000015 分钟) |
48
48
 
49
49
  ---
package/docs/merge.md CHANGED
@@ -104,7 +104,7 @@ clawt merge [-m <commitMessage>]
104
104
  | `auto` | — | 直接调用 AI 解决,不询问 |
105
105
  | `manual` | — | 输出冲突提示信息,用户手动解决 |
106
106
 
107
- AI 解决冲突时,调用 Claude Code CLI 在主 worktree 中分析并解决冲突文件,超时时间由配置项 `conflictResolveTimeoutMs` 控制(默认 10 分钟)。AI 解决成功后自动执行 `git add . && git merge --continue` 完成合并。
107
+ AI 解决冲突时,调用 Claude Code CLI 在主 worktree 中分析并解决冲突文件,超时时间由配置项 `conflictResolveTimeoutMs` 控制(默认 15 分钟)。AI 解决成功后自动执行 `git add . && git merge --continue` 完成合并。
108
108
  10. **推送(受 `autoPullPush` 配置控制)**
109
109
  - `autoPullPush` 为 `false` → 输出提示 `已跳过自动 pull/push,请手动执行 git pull && git push`
110
110
  - `autoPullPush` 为 `true` → 执行 `git pull` + `git push`:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "clawt",
3
- "version": "3.8.8",
3
+ "version": "3.8.10",
4
4
  "description": "本地并行执行多个Claude Code Agent任务,融合 Git Worktree 与 Claude Code CLI 的命令行工具",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -5,6 +5,9 @@ import { VALID_TERMINAL_APPS } from './terminal.js';
5
5
  export const APPEND_SYSTEM_PROMPT =
6
6
  'Currently, you are in the git worktree directory.';
7
7
 
8
+ /** 通过 clawt 启动的 Claude Code 非交互式会话(claude -p)的 entrypoint 标识 */
9
+ export const CLAUDE_CODE_ENTRYPOINT_VALUE = 'cli';
10
+
8
11
  /**
9
12
  * 配置项完整定义(单一数据源)
10
13
  * 新增配置项时只需在此处维护,DEFAULT_CONFIG 和 CONFIG_DESCRIPTIONS 会自动同步
@@ -53,8 +56,8 @@ export const CONFIG_DEFINITIONS: ConfigDefinitions = {
53
56
  allowedValues: ['ask', 'auto', 'manual'] as const,
54
57
  },
55
58
  conflictResolveTimeoutMs: {
56
- defaultValue: 600000,
57
- description: 'Claude Code 冲突解决超时时间(毫秒),默认 60000010 分钟)',
59
+ defaultValue: 900000,
60
+ description: 'Claude Code 冲突解决超时时间(毫秒),默认 90000015 分钟)',
58
61
  },
59
62
  };
60
63
 
@@ -5,7 +5,7 @@ export { CONFIG_ALIAS_DISABLED_HINT } from './messages/index.js';
5
5
  export { UPDATE_MESSAGES, UPDATE_COMMANDS } from './messages/update.js';
6
6
  export { EXIT_CODES } from './exitCodes.js';
7
7
  export { ENABLE_BRACKETED_PASTE, DISABLE_BRACKETED_PASTE, PASTE_THRESHOLD_MS, VALID_TERMINAL_APPS, ITERM2_APP_PATH } from './terminal.js';
8
- export { DEFAULT_CONFIG, CONFIG_DESCRIPTIONS, CONFIG_DEFINITIONS, APPEND_SYSTEM_PROMPT } from './config.js';
8
+ export { DEFAULT_CONFIG, CONFIG_DESCRIPTIONS, CONFIG_DEFINITIONS, APPEND_SYSTEM_PROMPT, CLAUDE_CODE_ENTRYPOINT_VALUE } from './config.js';
9
9
  export { PROJECT_CONFIG_DEFINITIONS, PROJECT_DEFAULT_CONFIG, PROJECT_CONFIG_DESCRIPTIONS } from './project-config.js';
10
10
  export { AUTO_SAVE_COMMIT_MESSAGE_PREFIX } from './git.js';
11
11
  export { DEBUG_LOG_PREFIX, DEBUG_TIMESTAMP_FORMAT } from './logger.js';
@@ -20,7 +20,7 @@ export interface ClawtConfig {
20
20
  autoUpdate: boolean;
21
21
  /** merge 冲突时的解决模式:ask(询问)、auto(自动 AI 解决)、manual(手动解决) */
22
22
  conflictResolveMode: 'ask' | 'auto' | 'manual';
23
- /** Claude Code 冲突解决超时时间(毫秒),默认 3000005 分钟) */
23
+ /** Claude Code 冲突解决超时时间(毫秒),默认 90000015 分钟) */
24
24
  conflictResolveTimeoutMs: number;
25
25
  }
26
26
 
@@ -10,7 +10,7 @@ import { CONFLICT_RESOLVE_PROMPT } from '../constants/ai-prompts.js';
10
10
  import { getEnvWithoutNestedSessionFlag } from './shell.js';
11
11
 
12
12
  /** 默认 Claude Code 冲突解决超时时间(毫秒) */
13
- const DEFAULT_CONFLICT_RESOLVE_TIMEOUT_MS = 600000;
13
+ const DEFAULT_CONFLICT_RESOLVE_TIMEOUT_MS = 900000;
14
14
 
15
15
  /**
16
16
  * 构建发送给 Claude Code 的冲突解决 prompt
@@ -1,17 +1,18 @@
1
1
  import { execSync, execFileSync, spawn, spawnSync, type ChildProcess, type SpawnSyncReturns, type StdioOptions } from 'node:child_process';
2
2
  import { logger } from '../logger/index.js';
3
3
  import { EXEC_MAX_BUFFER } from '../constants/git.js';
4
+ import { CLAUDE_CODE_ENTRYPOINT_VALUE } from '../constants/index.js';
4
5
  import { throwIfGitIndexLockError } from './git-lock.js';
5
6
 
6
7
  /**
7
- * 获取移除了 CLAUDECODE 嵌套会话标记的环境变量副本
8
+ * 获取移除了 CLAUDECODE 嵌套会话标记的环境变量副本,并注入 CLAUDE_CODE_ENTRYPOINT 标识
8
9
  * 仅用于 claude -p 等非交互式子进程,避免被 Claude Code 误判为嵌套会话而拒绝启动
9
10
  * 不适用于交互式启动 Claude Code(如 clawt resume),交互式场景应保留原始环境变量
10
- * @returns {NodeJS.ProcessEnv} 移除 CLAUDECODE 后的环境变量
11
+ * @returns {NodeJS.ProcessEnv} 移除 CLAUDECODE 并注入 CLAUDE_CODE_ENTRYPOINT 后的环境变量
11
12
  */
12
13
  export function getEnvWithoutNestedSessionFlag(): NodeJS.ProcessEnv {
13
14
  const { CLAUDECODE: _, ...env } = process.env;
14
- return env;
15
+ return { ...env, CLAUDE_CODE_ENTRYPOINT: CLAUDE_CODE_ENTRYPOINT_VALUE };
15
16
  }
16
17
 
17
18
  /** 并行命令执行的单个结果 */