clawt 2.16.3 → 2.16.5
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/.claude/agent-memory/docs-sync-updater/MEMORY.md +13 -1
- package/README.md +4 -0
- package/dist/index.js +379 -119
- package/dist/postinstall.js +12 -3
- package/docs/spec.md +97 -12
- package/package.json +2 -1
- package/src/commands/sync.ts +34 -14
- package/src/commands/validate.ts +50 -8
- package/src/constants/index.ts +12 -2
- package/src/constants/messages/run.ts +4 -4
- package/src/constants/messages/validate.ts +12 -0
- package/src/constants/progress.ts +36 -6
- package/src/utils/index.ts +2 -0
- package/src/utils/progress-render.ts +77 -13
- package/src/utils/progress.ts +110 -24
- package/src/utils/stream-parser.ts +251 -0
- package/src/utils/task-executor.ts +61 -27
- package/tests/unit/utils/progress-render.test.ts +96 -0
- package/tests/unit/utils/progress.test.ts +391 -10
- package/tests/unit/utils/stream-parser.test.ts +375 -0
|
@@ -47,6 +47,18 @@
|
|
|
47
47
|
- `confirmDestructiveAction` 在 `src/utils/formatter.ts`,被 reset、validate --clean 和 config reset 使用
|
|
48
48
|
- sanitizeBranchName 清理后为空串时抛出 BRANCH_NAME_EMPTY 错误
|
|
49
49
|
|
|
50
|
+
## 进度面板与流解析
|
|
51
|
+
|
|
52
|
+
- 进度面板使用备选屏幕缓冲区(Alt Screen)+ Synchronized Output 防闪烁 + 行宽截断
|
|
53
|
+
- `ProgressRenderer`(`src/utils/progress.ts`)负责面板生命周期:start(进入备选屏幕)、render(清屏重绘)、stop(退出备选屏幕+主屏幕输出最终状态)
|
|
54
|
+
- `src/utils/progress-render.ts` 包含纯渲染函数(`renderTaskLine`、`renderSummaryLine`、`truncateToTerminalWidth`)和 `TaskProgress` 类型
|
|
55
|
+
- `src/utils/stream-parser.ts` 负责 Claude Code stream-json 输出的流式解析,包含 `createLineBuffer`、`parseStreamLine`、`parseStreamEvent`、`formatActivityText`、`truncateText` 函数
|
|
56
|
+
- ANSI 转义常量(`ALT_SCREEN_ENTER/LEAVE`、`SYNC_OUTPUT_START/END`、`LINE_WRAP_DISABLE/ENABLE`、`CLEAR_SCREEN`、`CURSOR_HOME` 等)定义在 `src/constants/progress.ts`
|
|
57
|
+
- `ACTIVITY_TEXT_MAX_LENGTH`(30)、`TEXT_ACTIVITY_PREFIX`(思考中)、`RESULT_PREVIEW_MAX_LENGTH`(40)、`DEFAULT_TERMINAL_COLUMNS`(80)定义在 `src/constants/progress.ts`
|
|
58
|
+
- `string-width` 库用于计算含 ANSI 的字符串可见宽度(正确处理中文/emoji)
|
|
59
|
+
- docs/spec.md 中进度面板说明位于 `5.3 任务完成通知机制` 章节下的 `#### 进度面板渲染机制` 子章节
|
|
60
|
+
- run 命令使用 `--output-format stream-json --verbose` 调用 claude CLI(替代旧的 `--output-format json`)
|
|
61
|
+
|
|
50
62
|
## 配置项同步检查点
|
|
51
63
|
|
|
52
64
|
配置项变更时需在以下 4 处保持一致:
|
|
@@ -70,7 +82,7 @@ run 命令有两种模式(自 claudeCodeCommand 特性后):
|
|
|
70
82
|
- 批量任务执行逻辑从 `src/commands/run.ts` 提取到 `src/utils/task-executor.ts`(公共函数 `executeBatchTasks`)
|
|
71
83
|
- 进度面板渲染逻辑从 `src/utils/progress.ts` 拆分出 `src/utils/progress-render.ts`(纯渲染函数 + TaskProgress 类型)
|
|
72
84
|
- `formatDuration` 从 `src/utils/progress.ts` 移至 `src/utils/formatter.ts`
|
|
73
|
-
-
|
|
85
|
+
- 进度面板每个任务行第二列显示 worktree 路径(终端可点击跳转),运行中显示活动描述,完成/失败显示结果预览
|
|
74
86
|
|
|
75
87
|
## 命令清单(12 个)
|
|
76
88
|
|
package/README.md
CHANGED
|
@@ -128,6 +128,8 @@ clawt validate -b <branch> -r "pnpm test & pnpm build" # 并行执行多个命
|
|
|
128
128
|
|
|
129
129
|
支持增量模式:再次 validate 同一分支时,可通过 `git diff` 查看两次之间的增量差异。
|
|
130
130
|
|
|
131
|
+
当 patch apply 失败(目标分支与主分支差异过大)时,会自动询问是否执行 `sync` 同步主分支到目标 worktree,无需手动操作。
|
|
132
|
+
|
|
131
133
|
`-r, --run` 选项可在 validate 成功后自动在主 worktree 中执行指定命令(如测试、构建等),命令执行失败不影响 validate 结果。支持用 `&` 分隔多个命令并行执行:
|
|
132
134
|
|
|
133
135
|
| 用法 | 行为 |
|
|
@@ -142,6 +144,8 @@ clawt validate -b <branch> -r "pnpm test & pnpm build" # 并行执行多个命
|
|
|
142
144
|
clawt sync -b <branch>
|
|
143
145
|
```
|
|
144
146
|
|
|
147
|
+
当 `validate` 的 patch apply 失败时也会自动提示执行 sync,通常无需手动调用。
|
|
148
|
+
|
|
145
149
|
### `clawt merge` — 合并分支到主 worktree
|
|
146
150
|
|
|
147
151
|
```bash
|