refactor(todo): route promoted create through TypeScript - #3973
Conversation
Signed-off-by: huangruiteng <[email protected]>
Signed-off-by: huangruiteng <[email protected]>
Signed-off-by: huangruiteng <[email protected]>
Signed-off-by: huangruiteng <[email protected]>
Signed-off-by: huangruiteng <[email protected]>
Request changes conclusion (author-owned PR; GitHub blocks formal self-review)动机这个 PR 要把已 promotion 的 goal 上 改动思路入口仍是 正向路径的 CAS、replay/readback、完整 read-model digest 和 deleted-Markdown subprocess readback 已覆盖。负向路径会在 malformed request、actor/claim mismatch、projection drift、operation reuse、Todo id collision 和 concurrent CAS conflict 时 fail closed。不过当前 semantic duplicate predicate 与既有 Markdown 语义不等价,见下方 blocker。 具体改动本次 exact head 关键代码讲解
对主干的风险[P1] deferred Todo 被错误当作未完成 semantic duplicate,阻止合法重新添加触发条件:canonical provider 中已有一个 独立 exact-head 反事实使用真实 其余验证:TypeScript typecheck 通过;完整 control-plane tests 我的整体评价将 promoted create 收口到与 claim 相同的 TypeScript provider authority 是合理、比例适当的迁移切片:真实 caller 已接入,默认未 promotion 路径保留,authority 名称与实际 lifecycle 对齐,CAS/receipt/outbox 也避免形成第二 semantic owner。820 行新增主要来自完整 transaction 与三 provider conformance,维护成本与消除 promoted Markdown writer 缺口相称。 但 deferred terminal semantics 是公共 Todo lifecycle 的可见行为,当前精确 head 会在 promotion 前后产生不一致,因此结论为 REQUEST CHANGES。修复 duplicate predicate、加入 terminal counterfactual,并取得当前 exact head 的 required checks 全绿后可快速重审。 English verdict: REQUEST CHANGES at exact head d60bd0c. Promoted TypeScript create treats an active deferred ( |
huangruiteng
left a comment
There was a problem hiding this comment.
Request changes conclusion (author-owned PR; GitHub blocks formal self-review)
动机
这个 PR 要把已 promotion 的 goal 上 loopx todo add 从 Markdown writer fence 后的不可用状态推进为 provider-first create:Python 继续承接已有 CLI 参数与错误兼容,跨一次 typed runtime boundary 后,由 TypeScript 统一处理 semantic duplicate、actor/owner eligibility、CAS、receipt/readback recovery 和 projection outbox。此前 claim-only 已走这条 authority owner;create 是 live promotion 前必须补齐的高频写命令。未 promotion 的 goal 仍保留原 Markdown 路径,update/complete/archive 也仍 fail closed,不在本 PR 宣称范围内。
改动思路
入口仍是 add_goal_todo()。它先做既有 role/task-class、绑定、monitor、validation-command 等校验;随后 create_canonical_todo_if_promoted() 读取 promotion fence,若未 promotion 返回 None 并进入旧 Markdown transaction,若已 promotion 则构造 todo_domain_record_v0,通过 coordination.local_authority.todo_create 交给 createLocalCoordinationTodo()。TypeScript 的 executeCoordinationTodoCreate() 校验完整 canonical record 与身份,在 provider head 上检查 duplicate/id collision,产生候选 record,并用当前 provider revision 做一次 atomic commit;receipt 再作为 ambiguous-response recovery 和 exact-operation replay 的依据。
正向路径的 CAS、replay/readback、完整 read-model digest 和 deleted-Markdown subprocess readback 已覆盖。负向路径会在 malformed request、actor/claim mismatch、projection drift、operation reuse、Todo id collision 和 concurrent CAS conflict 时 fail closed。不过当前 semantic duplicate predicate 与既有 Markdown 语义不等价,见下方 blocker。
具体改动
本次 exact head d60bd0cdee587ff17a3feb7b0a94137204291f59 相对 base 3dfe874fd43e100946ecce5fabd868cf64699ef9 共 13 个文件、+827/-105:production 侧新增 TypeScript create transaction、local file adapter/effect handler、Python provider bridge,并重排 add_goal_todo() 的共享校验;tests 增加 file/NoKV/PostgreSQL conformance 与 real subprocess promotion 路径;双语 RFC 登记本阶段边界。没有 generated file 或机械搬迁占主体。
关键代码讲解
add_goal_todo()(loopx/todos.py)是公共 CLI caller:完成原有 typed 参数校验后,只在 promotion fence 存在时切到 provider bridge,否则保持 Markdown observable behavior。create_canonical_todo_if_promoted()(loopx/control_plane/todos/provider_create.py)构造 domain record、注册 agent evidence 和 operation id,并严格要求source_authority=file_v0、provider decision 与legacy_fallback_used=false。createLocalCoordinationTodo()(local_authority_runtime.ts)是唯一 effect-runtime adapter;它只解析路径/协议/时间与注册 agent,实际语义交给 provider-neutral transaction。executeCoordinationTodoCreate()(todo_create.ts)拥有 duplicate/id eligibility 和 read-model validation;commitCreate()用 head revision 产生 outbox mutation,随后从 durable receipt 回读 applied/recovered/replayed 结果。registerAuthorityStoreConformance()新增 create 的 dry-run、contention、operation replay/drift、semantic duplicate 与 malformed input 检查,并被 file、NoKV 和 PostgreSQL provider 共用。
对主干的风险
[P1] deferred Todo 被错误当作未完成 semantic duplicate,阻止合法重新添加
触发条件:canonical provider 中已有一个 status="deferred"、done=true、archive_state="active" 的 Todo,用户之后再次执行 todo add,文本和 role 相同但希望创建新的 open work。旧 Markdown 路径的 matching_todo_block() 通过 todo_done_for_status() 明确跳过 deferred(done 与 deferred 都是 terminal);当前 TypeScript 在 todo_create.ts:267-271 却只检查 archive_state === "active",没有排除 terminal status。它随后在 semanticDuplicateResult() 比较 done,返回 todo_semantic_duplicate_conflict。结果是 promotion 会改变既有 CLI contract:同一调用在未 promotion goal 可以创建新 Todo,在 promoted goal 会被永久拒绝,除非先改旧 Todo 或归档。
独立 exact-head 反事实使用真实 FileAuthorityStore 初始化一个 deferred active record,再调用 executeCoordinationTodoCreate() 创建同文本 open Todo,稳定得到:status=failed, reason_code=todo_semantic_duplicate_conflict, different done。最小修复是在 duplicate selector 中复用 typed terminal-state 判定,只把未完成 open/blocked(按现有 Markdown contract)记录纳入语义重复;补一组 deferred/done counterfactual,并保留 open/blocked duplicate coverage。
其余验证:TypeScript typecheck 通过;完整 control-plane tests 603 passed / 1 skipped;focused file-provider/local-runtime tests 36 passed;focused Python authority tests 8 passed;Python compile 与 git diff --check 通过;standard premerge 18/18、public-boundary scan 通过。远端当前 DCO/dependency/build 成功,但 pytest/Sonar 仍 pending,Windows check 为 failure,merge state 为 BLOCKED,需一并等作者修复/稳定后重审。
我的整体评价
将 promoted create 收口到与 claim 相同的 TypeScript provider authority 是合理、比例适当的迁移切片:真实 caller 已接入,默认未 promotion 路径保留,authority 名称与实际 lifecycle 对齐,CAS/receipt/outbox 也避免形成第二 semantic owner。820 行新增主要来自完整 transaction 与三 provider conformance,维护成本与消除 promoted Markdown writer 缺口相称。
但 deferred terminal semantics 是公共 Todo lifecycle 的可见行为,当前精确 head 会在 promotion 前后产生不一致,因此结论为 REQUEST CHANGES。修复 duplicate predicate、加入 terminal counterfactual,并取得当前 exact head 的 required checks 全绿后可快速重审。
English verdict: REQUEST CHANGES at exact head d60bd0c. Promoted TypeScript create treats an active deferred (done=true) Todo as an unfinished semantic duplicate, while the established Markdown path skips terminal deferred/done records; the real FileAuthorityStore counterfactual fails with todo_semantic_duplicate_conflict instead of creating new open work.
Signed-off-by: huangruiteng <[email protected]>
huangruiteng
left a comment
There was a problem hiding this comment.
Request changes conclusion (author-owned PR; GitHub blocks formal self-review)
动机
这个 PR 要把已 promotion 的 goal 上 loopx todo add 从 Markdown writer fence 后的不可用状态推进为 provider-first create:Python 继续承接已有 CLI 参数与错误兼容,跨一次 typed runtime boundary 后,由 TypeScript 统一处理 semantic duplicate、actor/owner eligibility、CAS、receipt/readback recovery 和 projection outbox。此前 claim-only 已走这条 authority owner;create 是 live promotion 前必须补齐的高频写命令。未 promotion 的 goal 仍保留原 Markdown 路径,update/complete/archive 也仍 fail closed,不在本 PR 宣称范围内。
改动思路
入口仍是 add_goal_todo()。它先做既有 role/task-class、绑定、monitor、validation-command 等校验;随后 create_canonical_todo_if_promoted() 读取 promotion fence,若未 promotion 返回 None 并进入旧 Markdown transaction,若已 promotion 则构造 todo_domain_record_v0,通过 coordination.local_authority.todo_create 交给 createLocalCoordinationTodo()。TypeScript 的 executeCoordinationTodoCreate() 校验完整 canonical record 与身份,在 provider head 上检查 duplicate/id collision,产生候选 record,并用当前 provider revision 做一次 atomic commit;receipt 再作为 ambiguous-response recovery 和 exact-operation replay 的依据。
正向路径的 CAS、replay/readback、完整 read-model digest 和 deleted-Markdown subprocess readback 已覆盖。负向路径会在 malformed request、actor/claim mismatch、projection drift、operation reuse、Todo id collision 和 concurrent CAS conflict 时 fail closed。不过当前 semantic duplicate predicate 与既有 Markdown 语义不等价,见下方 blocker。
具体改动
本次 exact head d60bd0cdee587ff17a3feb7b0a94137204291f59 相对 base 3dfe874fd43e100946ecce5fabd868cf64699ef9 共 13 个文件、+827/-105:production 侧新增 TypeScript create transaction、local file adapter/effect handler、Python provider bridge,并重排 add_goal_todo() 的共享校验;tests 增加 file/NoKV/PostgreSQL conformance 与 real subprocess promotion 路径;双语 RFC 登记本阶段边界。没有 generated file 或机械搬迁占主体。
关键代码讲解
add_goal_todo()(loopx/todos.py)是公共 CLI caller:完成原有 typed 参数校验后,只在 promotion fence 存在时切到 provider bridge,否则保持 Markdown observable behavior。create_canonical_todo_if_promoted()(loopx/control_plane/todos/provider_create.py)构造 domain record、注册 agent evidence 和 operation id,并严格要求source_authority=file_v0、provider decision 与legacy_fallback_used=false。createLocalCoordinationTodo()(local_authority_runtime.ts)是唯一 effect-runtime adapter;它只解析路径/协议/时间与注册 agent,实际语义交给 provider-neutral transaction。executeCoordinationTodoCreate()(todo_create.ts)拥有 duplicate/id eligibility 和 read-model validation;commitCreate()用 head revision 产生 outbox mutation,随后从 durable receipt 回读 applied/recovered/replayed 结果。registerAuthorityStoreConformance()新增 create 的 dry-run、contention、operation replay/drift、semantic duplicate 与 malformed input 检查,并被 file、NoKV 和 PostgreSQL provider 共用。
对主干的风险
[P1] deferred Todo 被错误当作未完成 semantic duplicate,阻止合法重新添加
触发条件:canonical provider 中已有一个 status="deferred"、done=true、archive_state="active" 的 Todo,用户之后再次执行 todo add,文本和 role 相同但希望创建新的 open work。旧 Markdown 路径的 matching_todo_block() 通过 todo_done_for_status() 明确跳过 deferred(done 与 deferred 都是 terminal);当前 TypeScript 在 todo_create.ts:267-271 却只检查 archive_state === "active",没有排除 terminal status。它随后在 semanticDuplicateResult() 比较 done,返回 todo_semantic_duplicate_conflict。结果是 promotion 会改变既有 CLI contract:同一调用在未 promotion goal 可以创建新 Todo,在 promoted goal 会被永久拒绝,除非先改旧 Todo 或归档。
独立 exact-head 反事实使用真实 FileAuthorityStore 初始化一个 deferred active record,再调用 executeCoordinationTodoCreate() 创建同文本 open Todo,稳定得到:status=failed, reason_code=todo_semantic_duplicate_conflict, different done。最小修复是在 duplicate selector 中复用 typed terminal-state 判定,只把未完成 open/blocked(按现有 Markdown contract)记录纳入语义重复;补一组 deferred/done counterfactual,并保留 open/blocked duplicate coverage。
其余验证:TypeScript typecheck 通过;完整 control-plane tests 603 passed / 1 skipped;focused file-provider/local-runtime tests 36 passed;focused Python authority tests 8 passed;Python compile 与 git diff --check 通过;standard premerge 18/18、public-boundary scan 通过。远端当前 DCO/dependency/build 成功,但 pytest/Sonar 仍 pending,Windows check 为 failure,merge state 为 BLOCKED,需一并等作者修复/稳定后重审。
我的整体评价
将 promoted create 收口到与 claim 相同的 TypeScript provider authority 是合理、比例适当的迁移切片:真实 caller 已接入,默认未 promotion 路径保留,authority 名称与实际 lifecycle 对齐,CAS/receipt/outbox 也避免形成第二 semantic owner。820 行新增主要来自完整 transaction 与三 provider conformance,维护成本与消除 promoted Markdown writer 缺口相称。
但 deferred terminal semantics 是公共 Todo lifecycle 的可见行为,当前精确 head 会在 promotion 前后产生不一致,因此结论为 REQUEST CHANGES。修复 duplicate predicate、加入 terminal counterfactual,并取得当前 exact head 的 required checks 全绿后可快速重审。
English verdict: REQUEST_CHANGES at exact head d60bd0c. Promoted TypeScript create treats an active deferred (done=true) Todo as an unfinished semantic duplicate, while the established Markdown path skips terminal deferred/done records; the real FileAuthorityStore counterfactual fails with todo_semantic_duplicate_conflict instead of creating new open work.
huangruiteng
left a comment
There was a problem hiding this comment.
Request changes conclusion (author-owned PR; GitHub blocks formal self-review)
动机
这个 PR 要把已 promotion 的 goal 上 loopx todo add 从 Markdown writer fence 后的不可用状态推进为 provider-first create:Python 继续承接已有 CLI 参数与错误兼容,跨一次 typed runtime boundary 后,由 TypeScript 统一处理 semantic duplicate、actor/owner eligibility、CAS、receipt/readback recovery 和 projection outbox。此前 claim-only 已走这条 authority owner;create 是 live promotion 前必须补齐的高频写命令。未 promotion 的 goal 仍保留原 Markdown 路径,update/complete/archive 也仍 fail closed,不在本 PR 宣称范围内。
改动思路
入口仍是 add_goal_todo()。它先做既有 role/task-class、绑定、monitor、validation-command 等校验;随后 create_canonical_todo_if_promoted() 读取 promotion fence,若未 promotion 返回 None 并进入旧 Markdown transaction,若已 promotion 则构造 todo_domain_record_v0,通过 coordination.local_authority.todo_create 交给 createLocalCoordinationTodo()。TypeScript 的 executeCoordinationTodoCreate() 校验完整 canonical record 与身份,在 provider head 上检查 duplicate/id collision,产生候选 record,并用当前 provider revision 做一次 atomic commit;receipt 再作为 ambiguous-response recovery 和 exact-operation replay 的依据。
正向路径的 CAS、replay/readback、完整 read-model digest 和 deleted-Markdown subprocess readback 已覆盖。负向路径会在 malformed request、actor/claim mismatch、projection drift、operation reuse、Todo id collision 和 concurrent CAS conflict 时 fail closed。不过当前 semantic duplicate predicate 与既有 Markdown 语义不等价,见下方 blocker。
具体改动
本次 exact head 71fe2d69fdc4235341cc9813ba4f72f87dda3473 相对 base 3dfe874fd43e100946ecce5fabd868cf64699ef9 共 14 个文件、+830/-137:production 侧新增 TypeScript create transaction、共享 agent normalizer、local file adapter/effect handler、Python provider bridge,并重排 add_goal_todo() 的共享校验;tests 增加 file/NoKV/PostgreSQL conformance 与 real subprocess promotion 路径;双语 RFC 登记本阶段边界。没有 generated file 或机械搬迁占主体。
关键代码讲解
add_goal_todo()(loopx/todos.py)是公共 CLI caller:完成原有 typed 参数校验后,只在 promotion fence 存在时切到 provider bridge,否则保持 Markdown observable behavior。create_canonical_todo_if_promoted()(loopx/control_plane/todos/provider_create.py)构造 domain record、注册 agent evidence 和 operation id,并严格要求source_authority=file_v0、provider decision 与legacy_fallback_used=false。createLocalCoordinationTodo()(local_authority_runtime.ts)是唯一 effect-runtime adapter;它只解析路径/协议/时间与注册 agent,实际语义交给 provider-neutral transaction。executeCoordinationTodoCreate()(todo_create.ts)拥有 duplicate/id eligibility 和 read-model validation;commitCreate()用 head revision 产生 outbox mutation,随后从 durable receipt 回读 applied/recovered/replayed 结果。registerAuthorityStoreConformance()新增 create 的 dry-run、contention、operation replay/drift、semantic duplicate 与 malformed input 检查,并被 file、NoKV 和 PostgreSQL provider 共用。
对主干的风险
[P1] deferred Todo 被错误当作未完成 semantic duplicate,阻止合法重新添加
触发条件:canonical provider 中已有一个 status="deferred"、done=true、archive_state="active" 的 Todo,用户之后再次执行 todo add,文本和 role 相同但希望创建新的 open work。旧 Markdown 路径的 matching_todo_block() 通过 todo_done_for_status() 明确跳过 deferred(done 与 deferred 都是 terminal);当前 TypeScript 在 todo_create.ts:267-271 却只检查 archive_state === "active",没有排除 terminal status。它随后在 semanticDuplicateResult() 比较 done,返回 todo_semantic_duplicate_conflict。结果是 promotion 会改变既有 CLI contract:同一调用在未 promotion goal 可以创建新 Todo,在 promoted goal 会被永久拒绝,除非先改旧 Todo 或归档。
独立 exact-head 反事实使用真实 FileAuthorityStore 初始化一个 deferred active record,再调用 executeCoordinationTodoCreate() 创建同文本 open Todo,稳定得到:status=failed, reason_code=todo_semantic_duplicate_conflict, different done。最小修复是在 duplicate selector 中复用 typed terminal-state 判定,只把未完成 open/blocked(按现有 Markdown contract)记录纳入语义重复;补一组 deferred/done counterfactual,并保留 open/blocked duplicate coverage。
其余验证:TypeScript typecheck 通过;前一代码等价 head 的完整 control-plane tests 603 passed / 1 skipped,当前 head focused file-provider/local-runtime tests 36 passed;当前 head focused Python authority tests 8 passed;Python compile 与 git diff --check 通过;standard premerge 18/18、public-boundary scan 通过。远端当前 DCO/dependency/build 成功,但 pytest/Sonar/Windows 仍在运行,merge state 为 BLOCKED,需一并等结果稳定后重审。
我的整体评价
将 promoted create 收口到与 claim 相同的 TypeScript provider authority 是合理、比例适当的迁移切片:真实 caller 已接入,默认未 promotion 路径保留,authority 名称与实际 lifecycle 对齐,CAS/receipt/outbox 也避免形成第二 semantic owner。820 行新增主要来自完整 transaction 与三 provider conformance,维护成本与消除 promoted Markdown writer 缺口相称。
但 deferred terminal semantics 是公共 Todo lifecycle 的可见行为,当前精确 head 会在 promotion 前后产生不一致,因此结论为 REQUEST CHANGES。修复 duplicate predicate、加入 terminal counterfactual,并取得当前 exact head 的 required checks 全绿后可快速重审。
English verdict: REQUEST_CHANGES at exact head 71fe2d6. Promoted TypeScript create treats an active deferred (done=true) Todo as an unfinished semantic duplicate, while the established Markdown path skips terminal deferred/done records; the real FileAuthorityStore counterfactual fails with todo_semantic_duplicate_conflict instead of creating new open work.
Signed-off-by: huangruiteng <[email protected]>
huangruiteng
left a comment
There was a problem hiding this comment.
Request changes conclusion (author-owned PR; GitHub blocks formal self-review)
动机
这个 PR 要把已 promotion 的 goal 上 loopx todo add 从 Markdown writer fence 后的不可用状态推进为 provider-first create:Python 保留既有 CLI 校验和兼容行为,TypeScript authority transaction 负责 semantic duplicate、actor/owner eligibility、CAS、receipt recovery 和 projection outbox。未 promotion 的 goal 仍走 Markdown 路径,update/complete/archive 也仍保持 fail closed。这个切片有真实公共 caller,且修复 promoted writer 缺口的方向合理。
改动思路
add_goal_todo() 先完成公共参数校验,再由 create_canonical_todo_if_promoted() 根据 promotion fence 决定是否构造 todo_domain_record_v0 并调用 coordination.local_authority.todo_create。createLocalCoordinationTodo() 是 effect-runtime adapter,executeCoordinationTodoCreate() 是 provider-neutral decision owner:它读取 canonical projection、判断 duplicate/id collision、准备 CAS commit,并从 durable receipt 回读 applied/recovered/replayed 结果。
新 head 修复了上一轮 deferred terminal blocker:duplicate selector 现在排除 done === true 的记录,新增 conformance counterfactual 在 file、NoKV 和可选 PostgreSQL provider 上验证 deferred record 后可创建同文本 open Todo。不过实现仍没有把 terminal 分类绑定到 authoritative typed status,见下方 blocker。
具体改动
Exact head 617b7dbba8c9736112e8c54d9cd9bfceac6fe0af 相对 base 3dfe874fd43e100946ecce5fabd868cf64699ef9 共 14 个文件、+857/-137。production 侧新增 TypeScript create transaction、共享 agent normalizer、local authority runtime/effect handler 和 Python provider bridge,并重排 add_goal_todo() 的共享校验;tests 增加 provider conformance 与真实 subprocess promotion 路径;双语 RFC 登记阶段边界。相对上一 review head,修复只有 todo_create.ts 的 duplicate predicate 和 authority_store_conformance.ts 的 deferred counterfactual。
关键代码讲解
add_goal_todo()(loopx/todos.py)是公共入口:校验完成后,promotion fence 决定 provider path 或旧 Markdown transaction。create_canonical_todo_if_promoted()(loopx/control_plane/todos/provider_create.py)构造 domain record 和稳定 operation identity,并严格要求 provider decision 与legacy_fallback_used=false。createLocalCoordinationTodo()(local_authority_runtime.ts)解析 runtime boundary;语义决策仍由 provider-neutral create transaction 独占。executeCoordinationTodoCreate()(todo_create.ts)处理 replay、projection validation、duplicate/id eligibility、CAS commit 与 readback recovery。registerAuthorityStoreConformance()将 create 的 contention、replay/drift、duplicate、malformed input 和新 deferred counterfactual复用于 file/NoKV/PostgreSQL provider。
对主干的风险
[P1] terminal duplicate 修复依赖冗余 done 布尔值,而不是 typed status authority
触发条件:canonical provider 中存在 status="done"、done=false、archive_state="active" 的同 role/text Todo,随后创建新的 open Todo。当前 domain decoder canonicalTodoDomainRecord() 只分别验证 status enum 与 boolean 类型,没有强制二者一致;projection mutation 也能持久化这个 record。新 selector 在 todo_create.ts:242-245 只检查 todo.done === false,于是把 typed status 已经 terminal 的记录当作未完成 duplicate,并返回 todo_semantic_duplicate_conflict。
独立 exact-head 反事实使用真实 FileAuthorityStore 写入上述 domain record,再调用 executeCoordinationTodoCreate(),稳定得到 status=failed、reason_code=todo_semantic_duplicate_conflict,而 established Markdown authority 的 todo_done_for_status() 以 status enum 将 done 与 deferred 都判为 terminal。该修复因此仍是 scattered-boolean classification,也没有满足上一轮要求的 typed terminal-state semantics;未来任一 status/done 漂移都会让 promotion 前后行为再次分叉。
最小修复:在 TypeScript contract 层提供基于 status: "open" | "blocked" | "done" | "deferred" 的 terminal helper(或在 canonical decoder 中强制 status/done coherence,并让 duplicate predicate调用该 typed rule),使 selector 明确只纳入 open/blocked;加入 status=done 与 status=deferred 的 counterfactual,避免测试仅证明某个 done=true 样例。保留现有 open/blocked duplicate conflict/replay coverage。
验证方面,当前 head 的 TypeScript typecheck 通过;完整 npm run test:control-plane 为 603 passed / 1 skipped,覆盖 file 与 NoKV create conformance;git diff --check 通过。远端 DCO、dependency review、Windows、release/frontstage build 已通过,pytest 与 Sonar workflow 在发表前仍 pending。上述真实 FileAuthorityStore 反事实是当前 head 未覆盖的负向行为。
我的整体评价
provider-first create 的 scope fit、CAS/receipt authority、默认未 promotion 隔离和整体比例仍然成立;新增约 850 行主要是 transaction、三 provider conformance 和兼容边界,不是无 caller 的 scaffolding。上一轮 deferred blocker也确实向正确方向收敛。
但 terminal 是 Todo lifecycle 的 typed 状态规则,不能由可漂移的冗余 boolean 单独拥有。当前 exact head 仍可在合法 schema 输入上复现 promotion parity failure,因此结论保持 REQUEST CHANGES。把 terminal 判定收口到 typed status helper(或先强制两字段一致)、补齐 done/deferred counterfactual 后可快速重审。
English verdict: REQUEST_CHANGES at exact head 617b7db. The terminal-duplicate repair keys on the redundant done boolean instead of the typed status authority; a canonical status="done", done=false record is accepted by the current domain contract and still blocks a same-text open create with todo_semantic_duplicate_conflict.
Signed-off-by: huangruiteng <[email protected]>
huangruiteng
left a comment
There was a problem hiding this comment.
Approval conclusion (author-owned PR; GitHub blocks formal self-approval)
动机
这个 PR 把已 promotion goal 的 loopx todo add 从 Markdown writer fence 后的不可用状态推进为 provider-first create:Python 保留公共 CLI 参数校验和兼容错误,TypeScript authority transaction 统一拥有 semantic duplicate、actor/owner eligibility、CAS、receipt recovery 与 projection outbox。此前 claim 已经由相同 authority owner 承接;create 是 live promotion 前的真实写路径缺口。未 promotion goal 继续走原 Markdown transaction,update/complete/archive 仍 fail closed,不在本切片范围内。
改动思路
公共入口 add_goal_todo() 完成既有 role/task-class、binding、monitor 与 validation-command 校验后,由 create_canonical_todo_if_promoted() 读取 promotion fence。未 promotion 返回 None 并保持旧行为;已 promotion 则构造 todo_domain_record_v0,通过 coordination.local_authority.todo_create 进入 createLocalCoordinationTodo()。provider-neutral executeCoordinationTodoCreate() 负责 canonical input、semantic duplicate/id collision、provider-head CAS、receipt replay/recovery 和 read-model validation。
当前 head 进一步将 terminal authority 收口到 typed status:domain decoder 强制 done 与 status in {done,deferred} 一致,duplicate selector 明确只纳入非 done/deferred 状态。这样既修复 deferred terminal 被误判,也消除了上一 head 仅依赖冗余 boolean 的漂移窗口。
具体改动
Exact head b65ca1f1e0bbaf06fff22579570cc9f874edc28d 相对 base 3dfe874fd43e100946ecce5fabd868cf64699ef9 共 15 个文件、+868/-138。production 侧新增 TypeScript create transaction、共享 agent normalizer、local authority adapter/effect handler 和 Python provider bridge,并重排 add_goal_todo() 的共享校验;tests 增加 file、NoKV、JSON-lines 与可选 PostgreSQL conformance、真实 subprocess promotion 路径;双语 RFC 登记阶段边界。没有 generated 或机械搬迁成为主要体积。
关键代码讲解
add_goal_todo()(loopx/todos.py)是公共 caller,先做已有校验,再按 promotion fence 选择 provider 或 Markdown path。create_canonical_todo_if_promoted()(loopx/control_plane/todos/provider_create.py)构造完整 domain record、注册 agent evidence 与稳定 operation id,并要求 provider decision 和legacy_fallback_used=false。canonicalTodoDomainRecord()(coordination_state_contract.ts)现在以 typed status 定义 terminal,并强制冗余done一致,阻止不连贯状态进入 canonical authority。executeCoordinationTodoCreate()(todo_create.ts)拥有 duplicate/id eligibility;selector 明确排除done/deferred,之后用 provider revision 做一次 atomic commit 并从 durable receipt 回读。registerAuthorityStoreConformance()覆盖 dry-run、CAS contention、operation replay/drift、open duplicate、deferred terminal 重建和 inconsistent terminal 拒绝,并复用于多种 provider。
对主干的风险
未发现 blocking finding。上一轮最强回归场景已经关闭:active deferred record 后创建同 role/text open Todo 现在成功;status="done", done=false 的不连贯输入在 contract boundary 被 invalid_coordination_todo_create 拒绝;open/blocked duplicate 语义仍保留。失败与重试由 provider CAS、operation receipt 和 fresh readback 拥有,不会回退到 Markdown 第二写者。
默认隔离成立:只有 promotion fence 开启时进入新 transaction,未 promotion 的 schema、accepted inputs、projection 和 side effects 保持旧路径。authority 命名与真实 actor lifecycle 对齐,没有新增更宽的 peer/remote authority。变更比例适当:约 850 行新增主要用于完整 transaction、三类 provider conformance 和 Python/TypeScript compatibility boundary,且已有真实 CLI caller。
独立验证:当前 exact head 的 npm run typecheck:control-plane 通过;完整 npm run test:control-plane 为 603 passed / 1 skipped;git diff --check 通过。远端 DCO、dependency review、Windows、release/frontstage build 与 Sonar code analysis 已通过;pytest 和非阻塞 Sonar workflow 在本结论发表时仍运行,合并前仍应以 required checks 最终成功为准。Python production diff自上一已验证 head 未变化;本地临时环境没有 pytest 包,因此没有把该重复执行伪装成已验证证据。
我的整体评价
这个切片已经把 provider-first create 的真实 caller、typed lifecycle semantics、atomic CAS、receipt recovery、projection readback 和默认未 promotion 隔离连成闭环。两轮 terminal parity finding 都已在精确 head 上关闭,新增测试也覆盖了导致回归的正负反事实。剩余风险主要是 required CI 的最终完成状态,而不是代码中的未解决 blocker。
结论为 APPROVE;由于是作者自己的 PR,GitHub 不允许正式 self-approval,因此发布此 titled COMMENTED fallback。合并仍需等待 required checks 全绿,并遵守单独的 merge authority。
English verdict: APPROVE at exact head b65ca1f. Typed status now owns terminal classification, done coherence is enforced at the domain boundary, deferred/done records no longer block a valid same-text open create, and the exact-head TypeScript suite passes 603 tests with 1 intentional skip.
Signed-off-by: huangruiteng <[email protected]>
huangruiteng
left a comment
There was a problem hiding this comment.
Approval conclusion (author-owned PR; GitHub blocks formal self-approval)
动机
这个 PR 把已 promotion goal 的 loopx todo add 从 Markdown writer fence 后的不可用状态推进为 provider-first create:Python 保留公共 CLI 参数校验和兼容错误,TypeScript authority transaction 统一拥有 semantic duplicate、actor/owner eligibility、CAS、receipt recovery 与 projection outbox。未 promotion goal 继续走原 Markdown transaction,update/complete/archive 仍 fail closed。
改动思路
add_goal_todo() 完成既有校验后,由 promotion fence 决定进入 provider bridge 或旧 Markdown transaction。provider-neutral executeCoordinationTodoCreate() 负责 typed canonical input、duplicate/id eligibility、provider-head CAS、receipt replay/recovery 和 read-model validation。当前增量 commit 只补强 promotion fence 的端到端测试:测试现在明确断言 override runtime root 下已 promotion 的 todo add 会先读取 provider authority,provider 不可用时 fail closed,并保持 Markdown state 不变。
具体改动
Exact head bb2cbb3da5f38e369a90f7b86b39601b004040bb 相对上一已批准 head b65ca1f1e0bbaf06fff22579570cc9f874edc28d 仅修改 tests/control_plane/test_legacy_coordination_writer_fence.py(+32/-5),没有 production 代码变化。
关键代码讲解
test_goal_todo_add_uses_provider_at_override_root_when_promoted()将原先只期待 legacy fence exception 的测试升级为 provider-first 行为断言。missing_provider()捕获 method/params,并返回 typed missing authority receipt,验证调用确实是coordination.local_authority.todo_list,且runtime_root是 override root 的解析后路径。- 测试在调用前后比较 goal state 文件,证明 provider authority 不可用时不会偷偷回退到 Markdown writer 或产生部分写入。
对主干的风险
未发现 blocking finding。这个测试增量与现有实现语义一致,并关闭了 promotion fence 路由缺少直接回归断言的残余风险。独立 worktree 验证:目标文件 6 passed,base-to-head git diff --check 通过。远端 DCO、dependency review、Windows、release/frontstage build 已通过;pytest 与非阻塞 Sonar workflow 仍在运行,合并前应等待 required checks 最终成功。
我的整体评价
新增测试很小但有实际价值:它同时覆盖 override-root 选择、provider-first routing、typed unavailable failure 和 legacy state 不变四个关键边界,没有扩大 production surface,也没有改变上一精确 head 已验证的 typed terminal semantics。结论为 APPROVE;由于是作者自己的 PR,GitHub 不允许正式 self-approval,因此发布此 titled COMMENTED fallback。合并仍需单独 authority。
English verdict: APPROVE at exact head bb2cbb3. The test-only delta verifies promoted todo add uses provider authority at the override runtime root, fails closed when that authority is unavailable, and leaves legacy Markdown state unchanged; the focused test file passes 6 tests.
Signed-off-by: huangruiteng <[email protected]>
huangruiteng
left a comment
There was a problem hiding this comment.
Approval conclusion (author-owned PR; GitHub blocks formal self-approval)
动机
这个 PR 把已 promotion goal 的 loopx todo add 从 Markdown writer fence 后的不可用状态推进为 provider-first create:Python 保留公共 CLI 校验和兼容错误,TypeScript authority transaction 统一拥有 semantic duplicate、actor/owner eligibility、CAS、receipt recovery 与 projection outbox。未 promotion goal 继续走旧 Markdown transaction,update/complete/archive 仍 fail closed。
改动思路
add_goal_todo() 完成既有参数校验后,由 promotion fence 选择 provider bridge 或旧路径;executeCoordinationTodoCreate() 负责 typed canonical input、duplicate/id eligibility、provider-head CAS、receipt replay/recovery 和 read-model validation。当前 head 只是把最新 origin/main 合入已批准分支,没有改变 PR 自身相对主干的 patch。
具体改动
Exact head 73e043b9c7351ca9943be23dbaebf1a1a535551c 的 merge-base 已更新为 788acc143296ab9995a1f1aa10ce1e63cb91ad77。独立 worktree 对比证明:旧 base 3dfe874fd43e100946ecce5fabd868cf64699ef9 到已批准 head bb2cbb3da5f38e369a90f7b86b39601b004040bb 的 patch,与新 base 到当前 head 的 patch 字节级一致,SHA-256 都是 3f84422ef9771648c439c34d3f2e9051492ecedb37023486f6dbc9161696953d。因此 merge commit 只吸收已在主干合并的 reliability-diagnostics 变更,没有把它们混入本 PR 的净 diff。
关键代码讲解
canonicalTodoDomainRecord()以 typed status 定义 terminal,并强制冗余done一致。executeCoordinationTodoCreate()排除 done/deferred semantic duplicates,用 provider revision 完成 atomic commit,并从 durable receipt 回读。test_goal_todo_add_uses_provider_at_override_root_when_promoted()覆盖 override root、provider-first routing、typed unavailable failure 和 legacy Markdown state 不变。
对主干的风险
未发现 blocking finding。最强风险是 merge resolution 悄然改变已批准 patch;独立 base..head patch digest 相等直接排除了这一点。当前 head 的两个 focused Python 文件为 14 passed,git diff --check 通过。TypeScript 本地依赖未安装,因此没有把无法重复执行的 typecheck 伪装成当前验证;其代码 patch 与上一已验证 head完全相同。远端 DCO、dependency review、Windows 和 release build 已通过,pytest、frontstage build 与非阻塞 Sonar workflow 仍在运行,合并前应等待 required checks 最终成功。
我的整体评价
当前 merge head 保留了此前已验证的真实 caller、typed terminal semantics、CAS/receipt authority 和默认未 promotion 隔离;分支同步没有引入新的净改动或冲突分辨漂移。结论为 APPROVE。由于是作者自己的 PR,GitHub 不允许正式 self-approval,因此发布此 titled COMMENTED fallback;合并仍需单独 authority。
English verdict: APPROVE at exact head 73e043b. After merging current main, the base-to-head patch is byte-identical to the previously approved bb2cbb3 patch; the focused Python authority/fence tests pass 14 tests and no merge-resolution drift was introduced.
Merge readinessNo blocking findings remain at exact head The change solves the promoted Todo-create authority gap by routing the real CLI entrypoint through the TypeScript AuthorityStore transaction while retaining Python only as a typed bridge and preserving the unpromoted Markdown path. Typed status owns terminal classification; CAS, durable receipts, recovery, and projection outbox remain provider-neutral. A future-facing cleanup shared agent normalization with claim; the larger update/complete/archive migration stays a focused follow-up. Validation and holds:
Merge decision: merge. This does not promote an active provider or mutate live Goal state. |
Summary
todo addthrough TypeScript while retaining the unpromoted Markdown compatibility pathValidation
npm run typecheck:control-planenpm run test:control-plane(603 passed, 1 intentionally skipped)loopx canary premerge --from-git-diff --goal-id loopx-meta(18/18 selected checks passed)cqr_458544754519b8bda463Repository-wide mypy is not a clean oracle (913 pre-existing errors across 122 files); the newly surfaced narrowing issue in the changed boundary was fixed.