clawt 2.12.0 → 2.12.1

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
@@ -19,22 +19,19 @@ npm i -g clawt
19
19
  ```bash
20
20
  # 1. 在项目根目录(包含 .git 的目录)下执行
21
21
  # 2. 并行执行 3 个任务,每个任务在独立的 worktree 中运行
22
- clawt run -b feature-auth \
23
- --tasks "实现用户登录功能" \
24
- --tasks "实现用户注册功能" \
25
- --tasks "实现密码重置功能"
22
+ clawt run -b <branch-1>
23
+ clawt run -b <branch-2>
24
+ clawt run -b <branch-3>
26
25
 
27
26
  # 3. 查看所有 worktree 状态
28
27
  clawt status
29
28
 
30
29
  # 4. 验证某个分支的变更(在主 worktree 中测试)
31
- clawt validate -b feature-auth-1
30
+ clawt validate -b branch-1
32
31
 
33
32
  # 5. 确认无误后合并到主分支
34
- clawt merge -b feature-auth-1 -m "feat: 实现用户登录功能"
33
+ clawt merge -b branch-1 -m "feat: 实现xxx功能"
35
34
 
36
- # 6. 清理不需要的 worktree
37
- clawt remove -b feature-auth
38
35
  ```
39
36
 
40
37
  ## 命令一览
package/dist/index.js CHANGED
@@ -119,7 +119,7 @@ var MERGE_MESSAGES = {
119
119
  /** merge 后清理 worktree 和分支成功 */
120
120
  WORKTREE_CLEANED: (branch) => `\u2713 \u5DF2\u6E05\u7406 worktree \u548C\u5206\u652F: ${branch}`,
121
121
  /** 目标 worktree 有未提交修改但未指定 -m */
122
- TARGET_WORKTREE_DIRTY_NO_MESSAGE: "\u76EE\u6807 worktree \u6709\u672A\u63D0\u4EA4\u7684\u4FEE\u6539\uFF0C\u8BF7\u901A\u8FC7 -m \u53C2\u6570\u63D0\u4F9B\u63D0\u4EA4\u4FE1\u606F",
122
+ TARGET_WORKTREE_DIRTY_NO_MESSAGE: (worktreePath) => `${worktreePath} \u6709\u672A\u63D0\u4EA4\u7684\u4FEE\u6539\uFF0C\u8BF7\u901A\u8FC7 -m \u53C2\u6570\u63D0\u4F9B\u63D0\u4EA4\u4FE1\u606F`,
123
123
  /** 目标 worktree 既干净又无本地提交 */
124
124
  TARGET_WORKTREE_NO_CHANGES: "\u76EE\u6807 worktree \u6CA1\u6709\u4EFB\u4F55\u53EF\u5408\u5E76\u7684\u53D8\u66F4\uFF08\u5DE5\u4F5C\u533A\u5E72\u51C0\u4E14\u65E0\u672C\u5730\u63D0\u4EA4\uFF09",
125
125
  /** merge 命令检测到 validate 状态的提示 */
@@ -2205,7 +2205,7 @@ async function handleMerge(options) {
2205
2205
  const targetClean = isWorkingDirClean(targetWorktreePath);
2206
2206
  if (!targetClean) {
2207
2207
  if (!options.message) {
2208
- throw new ClawtError(MESSAGES.TARGET_WORKTREE_DIRTY_NO_MESSAGE);
2208
+ throw new ClawtError(MESSAGES.TARGET_WORKTREE_DIRTY_NO_MESSAGE(targetWorktreePath));
2209
2209
  }
2210
2210
  gitAddAll(targetWorktreePath);
2211
2211
  gitCommit(options.message, targetWorktreePath);
@@ -111,7 +111,7 @@ var MERGE_MESSAGES = {
111
111
  /** merge 后清理 worktree 和分支成功 */
112
112
  WORKTREE_CLEANED: (branch) => `\u2713 \u5DF2\u6E05\u7406 worktree \u548C\u5206\u652F: ${branch}`,
113
113
  /** 目标 worktree 有未提交修改但未指定 -m */
114
- TARGET_WORKTREE_DIRTY_NO_MESSAGE: "\u76EE\u6807 worktree \u6709\u672A\u63D0\u4EA4\u7684\u4FEE\u6539\uFF0C\u8BF7\u901A\u8FC7 -m \u53C2\u6570\u63D0\u4F9B\u63D0\u4EA4\u4FE1\u606F",
114
+ TARGET_WORKTREE_DIRTY_NO_MESSAGE: (worktreePath) => `${worktreePath} \u6709\u672A\u63D0\u4EA4\u7684\u4FEE\u6539\uFF0C\u8BF7\u901A\u8FC7 -m \u53C2\u6570\u63D0\u4F9B\u63D0\u4EA4\u4FE1\u606F`,
115
115
  /** 目标 worktree 既干净又无本地提交 */
116
116
  TARGET_WORKTREE_NO_CHANGES: "\u76EE\u6807 worktree \u6CA1\u6709\u4EFB\u4F55\u53EF\u5408\u5E76\u7684\u53D8\u66F4\uFF08\u5DE5\u4F5C\u533A\u5E72\u51C0\u4E14\u65E0\u672C\u5730\u63D0\u4EA4\uFF09",
117
117
  /** merge 命令检测到 validate 状态的提示 */
package/docs/spec.md CHANGED
@@ -751,7 +751,7 @@ clawt merge [-m <commitMessage>]
751
751
  5. **根据目标 worktree 状态决定是否需要提交**
752
752
  - 检测目标 worktree 工作区是否干净(`git status --porcelain`)
753
753
  - **工作区有未提交修改**:
754
- - 如果用户未提供 `-m`,提示 `目标 worktree 有未提交的修改,请通过 -m 参数提供提交信息`,退出
754
+ - 如果用户未提供 `-m`,提示 `<worktreePath> 有未提交的修改,请通过 -m 参数提供提交信息`(其中 `<worktreePath>` 为目标 worktree 的完整路径),退出
755
755
  - 提供了 `-m` → 执行提交:
756
756
  ```bash
757
757
  cd ~/.clawt/worktrees/<project>/<branchName>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "clawt",
3
- "version": "2.12.0",
3
+ "version": "2.12.1",
4
4
  "description": "本地并行执行多个Claude Code Agent任务,融合 Git Worktree 与 Claude Code CLI 的命令行工具",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -165,7 +165,7 @@ async function handleMerge(options: MergeOptions): Promise<void> {
165
165
  if (!targetClean) {
166
166
  // 目标 worktree 有未提交修改,必须提供 -m
167
167
  if (!options.message) {
168
- throw new ClawtError(MESSAGES.TARGET_WORKTREE_DIRTY_NO_MESSAGE);
168
+ throw new ClawtError(MESSAGES.TARGET_WORKTREE_DIRTY_NO_MESSAGE(targetWorktreePath));
169
169
  }
170
170
  gitAddAll(targetWorktreePath);
171
171
  gitCommit(options.message, targetWorktreePath);
@@ -11,7 +11,8 @@ export const MERGE_MESSAGES = {
11
11
  /** merge 后清理 worktree 和分支成功 */
12
12
  WORKTREE_CLEANED: (branch: string) => `✓ 已清理 worktree 和分支: ${branch}`,
13
13
  /** 目标 worktree 有未提交修改但未指定 -m */
14
- TARGET_WORKTREE_DIRTY_NO_MESSAGE: '目标 worktree 有未提交的修改,请通过 -m 参数提供提交信息',
14
+ TARGET_WORKTREE_DIRTY_NO_MESSAGE: (worktreePath: string) =>
15
+ `${worktreePath} 有未提交的修改,请通过 -m 参数提供提交信息`,
15
16
  /** 目标 worktree 既干净又无本地提交 */
16
17
  TARGET_WORKTREE_NO_CHANGES: '目标 worktree 没有任何可合并的变更(工作区干净且无本地提交)',
17
18
  /** merge 命令检测到 validate 状态的提示 */
@@ -45,7 +45,8 @@ export const MESSAGES = {
45
45
  /** 请提供提交信息 */
46
46
  COMMIT_MESSAGE_REQUIRED: '请提供提交信息(-m 参数)',
47
47
  /** 目标 worktree 有未提交修改但未指定 -m */
48
- TARGET_WORKTREE_DIRTY_NO_MESSAGE: '目标 worktree 有未提交的修改,请通过 -m 参数提供提交信息',
48
+ TARGET_WORKTREE_DIRTY_NO_MESSAGE: (worktreePath: string) =>
49
+ `${worktreePath} 有未提交的修改,请通过 -m 参数提供提交信息`,
49
50
  /** 目标 worktree 既干净又无本地提交 */
50
51
  TARGET_WORKTREE_NO_CHANGES: '目标 worktree 没有任何可合并的变更(工作区干净且无本地提交)',
51
52
  /** 检测到用户中断 */
@@ -26,7 +26,8 @@ vi.mock('../../../src/constants/index.js', () => ({
26
26
  MERGE_SQUASH_PENDING: (path: string, branch: string) => `请手动提交: ${path}`,
27
27
  MERGE_VALIDATE_STATE_HINT: (branch: string) => `分支 ${branch} 存在 validate 状态`,
28
28
  MAIN_WORKTREE_DIRTY: '主 worktree 有未提交的更改',
29
- TARGET_WORKTREE_DIRTY_NO_MESSAGE: '目标 worktree 有未提交修改,请提供 -m 参数',
29
+ TARGET_WORKTREE_DIRTY_NO_MESSAGE: (worktreePath: string) =>
30
+ `${worktreePath} 有未提交修改,请提供 -m 参数`,
30
31
  TARGET_WORKTREE_NO_CHANGES: '没有可合并的变更',
31
32
  MERGE_CONFLICT: '合并冲突',
32
33
  PULL_CONFLICT: 'pull 冲突',