Phase 3 Testing: 版本管理 + 高级 Thread 操作 #4

Closed
opened 2026-05-06 04:37:37 +00:00 by xiaoju · 1 comment
Owner

验证目标

能查看 workflow 历史版本并回滚,能暂停/恢复运行中的 thread。

前置条件

Phase 2 完成。注册同一 workflow 多个版本:

bunx uncaged-workflow add solve-issue /path/to/v1.mjs
bunx uncaged-workflow add solve-issue /path/to/v2.mjs

测试步骤

版本管理

  • Step 1: uncaged-workflow history

    bunx uncaged-workflow history solve-issue
    

    预期: 显示当前版本 + 历史版本列表(hash, timestamp),按时间倒序

  • Step 2: uncaged-workflow rollback

    OLD_HASH=$(bunx uncaged-workflow history solve-issue | tail -1 | awk '{print $1}')
    bunx uncaged-workflow rollback solve-issue $OLD_HASH
    bunx uncaged-workflow show solve-issue
    

    预期: 当前 hash 变为旧版本,原当前版本进入 history

  • Step 3: rollback 到不存在的 hash

    bunx uncaged-workflow rollback solve-issue NONEXISTENT1
    

    预期: 报错,提示 hash 不存在于 history 中

暂停/恢复

  • Step 4: uncaged-workflow pause

    THREAD_ID=$(bunx uncaged-workflow run test-slow --prompt "hello")
    sleep 0.5
    bunx uncaged-workflow pause $THREAD_ID
    bunx uncaged-workflow ps
    

    预期: thread 状态变为 paused,不再执行下一个 role

  • Step 5: uncaged-workflow resume

    bunx uncaged-workflow resume $THREAD_ID
    bunx uncaged-workflow ps
    

    预期: thread 恢复执行,状态变回 running

  • Step 6: pause 已完成的 thread

    bunx uncaged-workflow pause $COMPLETED_THREAD_ID
    

    预期: 报错,提示 thread 已完成无法暂停

验证完成标准

所有 checkbox 打勾
rollback 后新 thread 使用旧版本 bundle 执行
pause/resume 不丢失 thread 状态

Ref: #1

## 验证目标 能查看 workflow 历史版本并回滚,能暂停/恢复运行中的 thread。 ## 前置条件 Phase 2 完成。注册同一 workflow 多个版本: ```bash bunx uncaged-workflow add solve-issue /path/to/v1.mjs bunx uncaged-workflow add solve-issue /path/to/v2.mjs ``` ## 测试步骤 ### 版本管理 - [ ] **Step 1: `uncaged-workflow history`** ```bash bunx uncaged-workflow history solve-issue ``` **预期:** 显示当前版本 + 历史版本列表(hash, timestamp),按时间倒序 - [ ] **Step 2: `uncaged-workflow rollback`** ```bash OLD_HASH=$(bunx uncaged-workflow history solve-issue | tail -1 | awk '{print $1}') bunx uncaged-workflow rollback solve-issue $OLD_HASH bunx uncaged-workflow show solve-issue ``` **预期:** 当前 hash 变为旧版本,原当前版本进入 history - [ ] **Step 3: rollback 到不存在的 hash** ```bash bunx uncaged-workflow rollback solve-issue NONEXISTENT1 ``` **预期:** 报错,提示 hash 不存在于 history 中 ### 暂停/恢复 - [ ] **Step 4: `uncaged-workflow pause`** ```bash THREAD_ID=$(bunx uncaged-workflow run test-slow --prompt "hello") sleep 0.5 bunx uncaged-workflow pause $THREAD_ID bunx uncaged-workflow ps ``` **预期:** thread 状态变为 paused,不再执行下一个 role - [ ] **Step 5: `uncaged-workflow resume`** ```bash bunx uncaged-workflow resume $THREAD_ID bunx uncaged-workflow ps ``` **预期:** thread 恢复执行,状态变回 running - [ ] **Step 6: pause 已完成的 thread** ```bash bunx uncaged-workflow pause $COMPLETED_THREAD_ID ``` **预期:** 报错,提示 thread 已完成无法暂停 ## 验证完成标准 ✅ 所有 checkbox 打勾 ✅ rollback 后新 thread 使用旧版本 bundle 执行 ✅ pause/resume 不丢失 thread 状态 Ref: #1
Author
Owner

Phase 3 验证结果

版本管理

  • Step 1: history — 显示当前版本 + 历史,按时间倒序,(current) 标记
  • Step 2: rollback — 版本切换成功,原当前版本进入 history
  • Step 3: rollback 不存在的 hash — 正确报错

暂停/恢复

  • Step 4: pause — ThreadPauseGate Promise-based latch 验证通过
  • Step 5: resume — 恢复执行验证通过
  • Step 6: pause 已完成的 thread — 错误处理验证通过

补充验证

  • bun test — 44 tests, 0 fail
  • bun run check (biome) — 61 files, no errors
  • Engine awaitAfterEachYield hook 正确集成
  • TCP IPC 双向响应(kill/pause/resume 均返回 ok/error)

小橘 🍊(NEKO Team)

## Phase 3 验证结果 ✅ ### 版本管理 - ✅ Step 1: `history` — 显示当前版本 + 历史,按时间倒序,(current) 标记 - ✅ Step 2: `rollback` — 版本切换成功,原当前版本进入 history - ✅ Step 3: rollback 不存在的 hash — 正确报错 ### 暂停/恢复 - ✅ Step 4: `pause` — ThreadPauseGate Promise-based latch 验证通过 - ✅ Step 5: `resume` — 恢复执行验证通过 - ✅ Step 6: pause 已完成的 thread — 错误处理验证通过 ### 补充验证 - ✅ `bun test` — 44 tests, 0 fail - ✅ `bun run check` (biome) — 61 files, no errors - ✅ Engine awaitAfterEachYield hook 正确集成 - ✅ TCP IPC 双向响应(kill/pause/resume 均返回 ok/error) 小橘 🍊(NEKO Team)
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: uncaged/workflow#4