Files
aios/docs/architecture/adr-task-lineage-supersession-p0.md
T

2.0 KiB
Raw Blame History

ADR: Owner Scoped Task Lineage Supersession P0

决策

TASK-SINGLEHOST-LINEAGE-SUPERSESSION-P0-20260905 新增一个只服务于 TASK-SINGLEHOST-TRUSTROOT-P0-20260904 到 TASK-SINGLEHOST-TRUSTROOT-P0-20260904-S1 的控制面 capability。 它创建 append-only child lineage;绝不重写 source Task、metadata、revision、attempt、claim 或 lease。

安全边界

请求只携带 Owner decision 和 source 身份断言。控制面复用正式 Task identity helper 与现有 Owner verifier,严格校验 namespace、principal、当前 Owner key、短 TTL、nonce、 decision ID、exact-CAS 字段以及唯一 child ID/ordinal。未知字段、任意 child payload、通配 Task/repository/branch、旧 signer 或 replay 均 fail-closed。

child payload 由 canonical initial-execution profile 在服务端构造:QUEUED、revision 1、 attempt 0、无 claim/lease、空初始 capabilities 和 pristine metadata。child 普通 event 链 只允许 TASK_CREATED;lineage/decision/receipt 审计必须写入独立 append-only 表。

一致性和重放

单一 BEGIN IMMEDIATE 事务重读 source exact-CAS、检查 source+ordinal/child/decision/nonce 唯一性、插入 child、lineage、decision 和 receipt,并整体提交。任一步失败必须回滚,不能 留下半创建 child。只有 decision digest 完全相同的请求可返回同一 receipt;相同唯一键而 digest 不同必须拒绝。append-only 表禁止 UPDATE 和 DELETE。

ClaimGuard

source 的 frozen ClaimGuard artifact 永不修改。child 的 Task identity 和 projected metadata identity 必然不同,必须使用新建的版本化、append-only child binding/receipt,精确绑定 child task、projected revision/metadata/capabilities、worker、execution digest、repository、 branch、generation 和 external job。dispatch 只识别 source 与 exact child;缺失或重复 binding 一律拒绝。不得使用 latest、通配符或 caller 指定路径。

验收

live invocation 前必须在 isolated SQLite 完成 source exact state 到 canonical projection、