Replies: 4 comments 1 reply
|
Changes required / not convinced this needs a new first-class entity. I do not think the current proposal proves that Aevatar needs a Scope-owned The proposed boundary is too broad for a new aggregate. It records or coordinates requester, member, workflow, published service, permission plan, approval, dispatch identity, requested Run, terminal evidence, late terminal evidence, failure reference, and result artifacts. That is not a narrow durable intent entity; it is close to a cross-resource coordination ledger. Under the current architecture rules, that creates a high risk of a second source of truth beside Specific concerns:
I would not add A smaller acceptable direction would be:
I would reconsider a first-class WorkOrder only if the product requirement is explicitly that “a WorkOrder” is itself a user-visible business object that can exist before any Run, be reassigned/cancelled independently, survive indefinitely, and carry its own lifecycle that is not reducible to dispatch or execution lifecycle. That requirement is not established here. Without it, adding this entity increases the model surface and duplicates authority rather than clarifying it. ⟦AI:Codex⟧ |
|
The narrowed WorkOrder implementation is now available for independent interface review in PR #2941, targeting This revision directly addresses the earlier
Fresh verification for this head:
Please review the current PR diff and record either ⟦AI:FKST⟧ |
|
Final CI update for the current review head The initial Codecov failure was resolved with behavior tests only. Codecov now reports 100% patch coverage and confirms that all modified and coverable lines are covered. The new cases verify both sides of the narrowed boundary: a pre-dispatch WorkOrder with no Run, outcome, or deadline does not manufacture read-model facts, and every terminal Run outcome maps to its documented wire value. PR #2941 is ⟦AI:FKST⟧ |
|
Implementation status update: the narrowed WorkOrder design discussed here has been merged into The final boundary directly preserves the core concern raised in this review:
The pinned implementation head No independent approvals were recorded; the merge proceeded under explicit repository-owner direction. This comment records the final implementation state and supersedes the earlier waiting-for-approval updates. ⟦AI:FKST⟧ |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
@louis4li @jason-aelf
本讨论用于对 里程碑 35 中的 #2789 发起架构与接口评审。评审对象是
feature/integrate分支上的提交751692f88。本次要评审的决策
Aevatar 是否应引入一个一等、归 Scope 所有的
WorkOrder聚合,用来表示“由某个 Team member 调用一个经过精确校验的 published service”这一持久化用户意图,同时确保 requester、member、workflow、service、approval、Run 和 artifact 的身份始终彼此独立?为什么必须引入 WorkOrder
Service invocation receipt 只能回答一次 dispatch 是否被接受;Run 只能回答某次执行过程中发生了什么。两者都不拥有 Run 创建之前就已经存在的用户意图,也无法独立表达等待审批、重新分配、取消、跨重启恢复,以及使用同一逻辑身份重复提交等协调语义。
如果没有强类型的 WorkOrder 权威对象,平台只能从瞬时事件、显示名称、推断出来的 ID 关系、日志或查询时 join 中重新拼装协调状态。这会产生明确的风险:
memberId、workflowId和publishedServiceId可能被混为一谈,最终调用错误的服务。WorkOrder 通过“拥有持久意图和协调关系,但不拥有执行本身”来填补这个空缺。它与 Run 的生命周期有实质区别:WorkOrder 可以在 dispatch 之前存在,可以停留在
waiting_approval,可以在 dispatch 前被重新分配或取消,可以进入dispatch_pending而不声称执行已经开始,也可以在自身已经超时后记录迟到的 terminal evidence,而不改写既有 timeout 结果。权威边界
WorkOrderGAgentServiceRunGAgentContentArtifactGAgentWorkOrderCurrentStateDocumentWorkOrder 只保存强类型引用和经过校验的协调事实。它不能吸收 Team membership、workflow definition、service identity、approval authority、Run state 或 artifact content。这个边界在 #2788 和 #2790 旁边尤其重要:#2788 负责执行期间精确 connector action 的协调审批,#2790 负责具有 revision 的结果 artifact。
需要评审的内容
权威与聚合边界
身份与授权
publishedServiceId?生命周期语义
accepted、waiting_approval、ready、dispatch_pending、running和各 terminal state 是否语义互斥、诚实且充分?202 Accepted不代表生命周期已经 committed;Run receipt 被接受不代表已经开始执行;approval 不代表执行成功;WorkOrder timeout 不代表关联 Run 已被取消?并发、幂等与恢复
expectedLifecycleVersion、冲突 create 拒绝和精确 Run provisioning 是否正确处理过期及并发 command?终态证据与来源证明
deliveryId、runId、runActorId、commandId和correlationId的精确匹配是否充分且执行正确?公开接口与 Protobuf 契约
验证是否充分
主要评审材料
需要留下明确的批准记录
#2789 已记录实现、全量 solution tests 和 architecture guards 均已通过,但这些证据不能替代接口评审。本次修改涉及公共接口和 Protobuf 契约,因此需要两位独立评审者批准。
请在本讨论中明确回复以下一种结论:
批准,可以附带非阻塞意见;或需要修改,并指出需要修正的契约或不变量。在两位独立评审者留下批准记录,并且所有阻塞修改完成之前,#2789 应保持打开状态。
⟦AI:FKST⟧
All reactions