#39 Phase 1.1: ThreadIndexEntry 加 status + completedAt 字段 #40

Closed
opened 2026-06-04 06:03:24 +00:00 by xiaoju · 0 comments
Owner

Parent: #39

目标

ThreadIndexEntry 类型中加入 statuscompletedAt 字段,为统一存储做准备。

改动

packages/protocol/src/types.ts

// 现在
export type ThreadIndexEntry = {
  head: CasRef;
  suspendedRole: string | null;
  suspendMessage: string | null;
};

// 改为
export type ThreadIndexEntry = {
  head: CasRef;
  status: "idle" | "suspended" | "completed" | "cancelled";
  suspendedRole: string | null;
  suspendMessage: string | null;
  completedAt: number | null;
};

packages/protocol/src/thread-index.ts

  • createThreadIndexEntry(head) 默认 status: "idle", completedAt: null
  • normalizeThreadIndexEntry 兼容旧格式(无 status 字段时默认 "idle"
  • updateThreadHead 清除 suspend 字段时同时将 status 设为 "idle"
  • markThreadSuspended 同时设 status: "suspended"
  • 新增 markThreadCompleted(entry, reason: "completed" | "cancelled"): ThreadIndexEntry

packages/protocol/src/__tests__/thread-index.test.ts

  • 更新现有测试的断言(加 status、completedAt 字段)
  • 新增 markThreadCompleted 测试

注意

  • 不改 store.ts 和 thread.ts,那是后续 issue
  • 只改 protocol 包
  • proman test 通过
Parent: #39 ## 目标 在 `ThreadIndexEntry` 类型中加入 `status` 和 `completedAt` 字段,为统一存储做准备。 ## 改动 ### `packages/protocol/src/types.ts` ```typescript // 现在 export type ThreadIndexEntry = { head: CasRef; suspendedRole: string | null; suspendMessage: string | null; }; // 改为 export type ThreadIndexEntry = { head: CasRef; status: "idle" | "suspended" | "completed" | "cancelled"; suspendedRole: string | null; suspendMessage: string | null; completedAt: number | null; }; ``` ### `packages/protocol/src/thread-index.ts` - `createThreadIndexEntry(head)` 默认 `status: "idle"`, `completedAt: null` - `normalizeThreadIndexEntry` 兼容旧格式(无 status 字段时默认 `"idle"`) - `updateThreadHead` 清除 suspend 字段时同时将 status 设为 `"idle"` - `markThreadSuspended` 同时设 `status: "suspended"` - 新增 `markThreadCompleted(entry, reason: "completed" | "cancelled"): ThreadIndexEntry` ### `packages/protocol/src/__tests__/thread-index.test.ts` - 更新现有测试的断言(加 status、completedAt 字段) - 新增 markThreadCompleted 测试 ## 注意 - 不改 store.ts 和 thread.ts,那是后续 issue - 只改 protocol 包 - `proman test` 通过
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: shazhou/united-workforce#40