小橘 <xiaoju@shazhou.work>
- CLI: history, rollback, pause, resume commands - Registry: rollbackWorkflowToHistoryHash - Engine: awaitAfterEachYield hook for pause gate - Worker: ThreadPauseGate with Promise-based latch - TCP IPC: bidirectional response for kill/pause/resume - 44 tests pass, biome clean 小橘 <xiaoju@shazhou.work>
- WorkflowFn first param is now ThreadInput { prompt, steps } - threadId removed from WorkflowFnOptions and ThreadContext (engine-only) - createRoleModerator seeds context from input.steps (fork/resume ready) - New test: pre-filled steps skip already-completed roles Closes #6 小橘 <xiaoju@shazhou.work>
- First param is now { prompt, steps } instead of bare prompt - steps: [] for new thread, pre-filled for fork/resume - createRoleModerator naturally handles resume via moderator routing - No special replay logic needed 小橘 <xiaoju@shazhou.work>
- types.ts: START/END, RoleMeta, ThreadContext, Role, Moderator, WorkflowDefinition - engine.ts: executeThread with JSONL persistence + AbortSignal - worker.ts: per-bundle process, TCP IPC, kill individual threads - CLI: run/ps/kill/threads/thread/thread rm commands - 32 tests pass, biome clean 小橘 <xiaoju@shazhou.work>