Skip to content

对齐 Workflow / WorkflowRun 数据模型 #60

Description

@huyanxius

背景

后端目前不存 Workflow,以后接管。前端已在 entities/workflow-run 实现本地状态推进
(见 #59),模型为单方面假设。本 Issue 只确认边界,不要求现在实现。

前端当前模型

interface WorkflowRun {
  id: string
  projectId: number
  characterId: number | null            // 建出角色前为 null
  driver: 'ai' | 'manual'
  intent: 'create-character' | 'edit-character' | 'add-action'
  status: 'draft' | 'running' | 'paused' | 'completed' | 'failed'
  currentStepId: string | null
  steps: WorkflowStep[]
}

interface WorkflowStep {
  id: string
  type: 'generate-template' | 'confirm-template'
      | 'add-action' | 'generate-action' | 'review'
  status: 'pending' | 'running' | 'done' | 'failed'
  actionId: number | null
  taskId: string | null
}

推进方式:前端提交命令,本地校验后改写步骤状态,如 { kind: 'add-action', name: '行走' }

需要确认

1. Workflow 与 WorkflowRun 是一个对象还是两个?
可保存复用的节点图与一次具体执行,前端当成了同一个。07-22 会议提过这个歧义。

2. 一个项目能有几条 WorkflowRun?
前端按一对多实现,项目详情页列出未完成的供用户选择。但 windup_project.workflow_id
是单数字段——若为一对多,该字段表示什么?

3. 步骤在创建时排好,还是随操作追加?
前端是追加:初始两步(生成母版、确认母版),每加一个动作追加两步。
五种步骤类型是否够用?

4. 一个步骤能关联几个任务?
前端每步只有一个 taskId。生成失败重试会产生第二个任务,是否需要保留任务历史?

5. 后端接管后谁校验命令、谁推进状态?
现在前端全权。将来后端是只负责存取(前端算好整份提交),还是校验命令并返回权威状态?
前端提交非法状态(母版未确认就加动作)时,后端是否拦截?

6. 三个字段的归属

  • characterId:谁在何时写入?实测走完建角色流程后仍为 null,「给已有角色补动作」
    入口因此不可达。
  • intent:区分新建角色 / 编辑角色 / 补动作三种入口,后端持久化还是纯前端状态?
  • id:架构文档写 stringwindup_project.workflow_idBIGINT

本次范围

只确认领域模型与责任边界。SSE 事件格式、精灵尺寸口径、鉴权、动作帧数另开 Issue。

Refs #58 #59

Metadata

Metadata

Labels

questionFurther information is requested

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions