






















@@ -101,6 +101,16 @@ async function withTaskExecutorStateDir(run: (stateDir: string) => Promise<void>
101101});
102102}
103103104+function expectParentFlowId(task: { parentFlowId?: string }): string {
105+expect(task.parentFlowId).toMatch(
106+/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/u,
107+);
108+if (task.parentFlowId === undefined) {
109+throw new Error("Expected task parent flow id");
110+}
111+return task.parentFlowId;
112+}
113+104114function createRunningAcpChildTaskRun(
105115overrides: Partial<Parameters<typeof createRunningTaskRun>[0]> = {},
106116) {
@@ -289,11 +299,9 @@ describe("task-executor", () => {
289299deliveryStatus: "pending",
290300});
291301292-expect(created.parentFlowId).toMatch(
293-/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/u,
294-);
295-expect(getTaskFlowById(created.parentFlowId!)).toMatchObject({
296-flowId: created.parentFlowId,
302+const parentFlowId = expectParentFlowId(created);
303+expect(getTaskFlowById(parentFlowId)).toMatchObject({
304+flowId: parentFlowId,
297305ownerKey: "agent:main:main",
298306status: "running",
299307goal: "Write summary",
@@ -307,8 +315,8 @@ describe("task-executor", () => {
307315terminalSummary: "Done.",
308316});
309317310-expect(getTaskFlowById(created.parentFlowId!)).toMatchObject({
311-flowId: created.parentFlowId,
318+expect(getTaskFlowById(parentFlowId)).toMatchObject({
319+flowId: parentFlowId,
312320status: "succeeded",
313321endedAt: 40,
314322goal: "Write summary",
@@ -366,16 +374,17 @@ describe("task-executor", () => {
366374terminalOutcome: "blocked",
367375terminalSummary: "Writable session required.",
368376});
369-expect(getTaskFlowById(created.parentFlowId!)).toMatchObject({
370-flowId: created.parentFlowId,
377+const parentFlowId = expectParentFlowId(created);
378+expect(getTaskFlowById(parentFlowId)).toMatchObject({
379+flowId: parentFlowId,
371380status: "blocked",
372381blockedTaskId: created.taskId,
373382blockedSummary: "Writable session required.",
374383endedAt: 40,
375384});
376385377386const retried = retryBlockedFlowAsQueuedTaskRun({
378-flowId: created.parentFlowId!,
387+flowId: parentFlowId,
379388runId: "run-executor-retry",
380389childSessionKey: "agent:codex:acp:retry-child",
381390});
@@ -387,17 +396,17 @@ describe("task-executor", () => {
387396taskId: created.taskId,
388397}),
389398task: expect.objectContaining({
390-parentFlowId: created.parentFlowId,
399+ parentFlowId,
391400parentTaskId: created.taskId,
392401status: "queued",
393402runId: "run-executor-retry",
394403}),
395404});
396-expect(getTaskFlowById(created.parentFlowId!)).toMatchObject({
397-flowId: created.parentFlowId,
405+expect(getTaskFlowById(parentFlowId)).toMatchObject({
406+flowId: parentFlowId,
398407status: "queued",
399408});
400-expect(findLatestTaskForFlowId(created.parentFlowId!)).toMatchObject({
409+expect(findLatestTaskForFlowId(parentFlowId)).toMatchObject({
401410runId: "run-executor-retry",
402411});
403412expect(findTaskByRunId("run-executor-blocked")).toMatchObject({
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。