Skip to content

fix(authority): complete canonical retirement and preserve recovery - #2

Merged
huangruiteng merged 43 commits into
Duang777:codex/remove-legacy-markdown-callers-20261012from
loopx-project:codex/duang-canonical-validation-20261014
Oct 15, 2026
Merged

huangruiteng merged 43 commits into
Duang777:codex/remove-legacy-markdown-callers-20261012from
loopx-project:codex/duang-canonical-validation-20261014

Conversation

@loopx-agent

@loopx-agent loopx-agent commented Oct 14, 2026 •

Copy link
Copy Markdown
Collaborator

Result and boundary

Complete the missing behavior around Duang's canonical retirement in loopx-project/loopx#6396. Normal mutations use canonical authority; current execution admits only soft_claim and hard_lease. Historical records, supported original-operation recovery, exact release, reviewed migration and permanent Markdown display remain available.

This is a breaking 2.0 alpha proposal, based on contributor head d9665e6bd2d27f37f6e2408be78cf77e3f15ab21; supplement head 83b63aed3bc823418ea20bc6bffcf55341cbe014. It does not authorize merge, release, default-provider promotion or a live Goal migration.

What this supplement changes

  • Absorbs useful feat: require canonical authority for 2.0 normal writes loopx-project/loopx#6366 contracts, now closed. Fixed original 1.x lease/team-plan artifacts exercise committed/prepared recovery, original identity, locks, CAS and later-generation protection. Candidate-generated receipts cannot stand in for historical compatibility.
  • Rejects legacy execution across canonical mutation, acquisition proof, inspection, Monitor and MCP delegation through the existing typed policy owner. Original recovery and exact release remain legal; reviewed backup/plan/migrate grants no new execution lease.
  • Migrates valuable tests to real File/SQLite paths: ownership, actor/role/archive refusal, completion/release, successor assignment, lost-response recovery, changed-intent refusal and reviewed Chat preview/commit races.
  • Deletes obsolete Python writers/factories, CAS/owner bridges, duplicate source projection and unreachable lifecycle branches. The dedicated cleanup was +153/-664 including tests/docs. Fixed historical fixtures replace producer-only tests; no production writer remains solely to construct fixtures.
  • Retains consumer repairs for Todo/Monitor/Explore/issue-fix/Chat/project callers, original Turn journals and Host process-group deadlines. Settings preserve disabled creation intent and explain the 2.0 boundary in both languages. No parallel decision owner, switch or speculative framework is added.

The reconciliation map names replacement owners and retained compatibility.

Latest integration and observed CI repairs

The history-preserving merge adopts Duang's latest canonical fixtures and asynchronous settings callbacks. Conflict resolution retains his record normalization and our File/SQLite coverage. Imported-completion tests explicitly use the current source policy while preserving rejection of scoped completion identities without original settlement receipts.

The preceding 2bb6a72b9 Full Public Smokes run failed six smoke entrypoints. This head fixes the concrete causes: retired two-stall prompt assertions, duplicate manual/help-only classification, missing declared YAML test dependency, and an omitted published v1.4.1 timeline entry. The canary failure was downstream of the install assertion. CI now installs the declared test extra. Production admission and test budgets were not weakened.

Current-source validation (overlapping counts, not additive):

  • Parent intersection: 166/168 initially passed. The two source-policy fixture failures were repaired; the final replan/fence and CI-policy selection passed all 167 cases, including both failures.
  • All six formerly failing smoke entrypoints and the workflow smoke passed locally. Installation exercised initial, fresh and stale installs.
  • Dashboard TypeScript compilation, Chat bundle build and packaged frontend readback/failure/retry against a disposable real backend passed.
  • Semantic advisory followed by full inventory, public/private boundary and diff checks passed.

Prior evidence retains its original revisions. At 2bb6a72b9, core176, typed209, real isolated PostgreSQL inspection15/store363/service11 and four assertion-killed fence mutants passed. Of the current 123 supplement paths, 116 have identical blobs; changed callers and inherited UI/test intersections were requalified. These older runs are not claimed as executions of the new head. The older PostgreSQL CI passed; its incomplete Python run was superseded by the new head.

Current qualification

The whole-PR exact-head review is published and read back. New complete CI targets 83b63aed3bc823418ea20bc6bffcf55341cbe014:

Full CI and adoption into the contributor branch remain required before upstream integration. Full C1/T4 historical/selected-store adoption, actual external Host/Lark and multi-developer use, sustained frozen D2/D3, release and default promotion remain open under their existing acceptance. An author review is neither merge readiness nor merge authority.

…ites

Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
(cherry picked from commit 3a5897e09401b5208eba5f01728e7835cb78992f)
…markdown-callers-20261012' into codex/duang-canonical-validation-20261014

Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
@loopx-agent loopx-agent changed the title fix: preserve pure imported completion repair through CLI fix: preserve imported repair and canonical caller coverage Oct 14, 2026
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
@loopx-agent loopx-agent changed the title fix: preserve imported repair and canonical caller coverage fix: preserve stored claim facts and migrate canonical smokes Oct 14, 2026
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>

@loopx-agent loopx-agent left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewer: model_agent; OpenAI gpt-6.1-sol; runtime_reported; reasoning_effort=xhigh.

Approval conclusion (author-owned PR; GitHub blocks formal self-approval)

动机

已导入 canonical 权威存储的维护者和自动化调用者,需要修复历史完成元数据并继续处理具体 PR 修正。

历史已完成任务携带与存储完全相同的 claim 仍被普通完成命令拒绝;维护者修正已经保存执行者或阻塞对象,命令摘要却显示为空。 这使一次合法重试无法恢复原任务,也让维护者看不清后续工作究竟归谁。同 claim 只读事实可通过原身份修复,issue-fix 摘要与持久记录一致,旧调用测试继续验证真实 canonical 行为。

这是一份补缺切片,不接管 Duang 的退役主体:完整退役的历史/App/Host 与全量资格仍由既有交付继续承接;本评审只判断当前27路径补缺切片。 此 PR 不关闭整个退役、自然 Host 采用、长期容量或跨主机验收,也不授权合并、发布或活跃 Goal 切换。

本次从 base 876458efcc85256ac43161b9c3ff0c69cf9227cf 到 head 5dff84771f8a95f01259b5f2492f1a1d3aa62a52 完整阅读27路径。规范依据为 docs/reference/canonical-todo-completion-update.md,spec_revision 876458efcc85256ac43161b9c3ff0c69cf9227cf,使用修改前的2.0 mutation/recovery合同;维护者修正的归属语义同时对照同 revision 的 issue-fix README。新增的修复说明不被当作自己的验收依据。

规范逐项对账:CLI and App canonical Todo mutations 由既有 provider-first owner继续实现;Unpromoted create/update/complete/supersede/archive 的截止规则继承父分支,本PR不恢复旧writer;Bootstrap, handoff, team-plan and Monitor 中 Monitor调用覆盖迁移,完整家族验收仍在上游;Markdown projection, reviewed source import and backup recovery 保留原receipt、备份、审核导入和永久展示职责,本轮真实导入及恢复读回已核对。

改动思路

原 TS owner 已有完整 Actor、身份、receipt 和 CAS 规则;这里仅放宽与已存 claim 相同的只读事实,CLI 只适配同一 canonical 记录,避免另一套决策。 当前 PR 交付两个真实调用修复及21个既有测试的 canonical 迁移,保持历史恢复和拒绝路径;主退役与整体验收继续由上游 loopx-project#6396 和既有工作承接。

我考虑过只删失败smoke,或加回旧响应别名。前者会丢失HTTP预览、lease交接、缓存、ACK与原操作恢复的独特覆盖,后者会保留另一份瞬时传输知识。当前方案沿现有owner做两个真实修复,再把已有测试放回可执行的canonical入口;没有新增模块、schema、journal或配置开关。

实际触发 修改前 当前head
导入的done记录重复声明原claim 普通完成命令拒绝 原身份下只补完成元数据
actionable patch/ambiguity 存储正确,摘要归属为空 摘要与独立存储读回一致
错Actor、不同claim或新内容 原准入拒绝 同样拒绝,数据和展示不变

可执行路径是普通CLI→Python事实传输→原typed事务→持久回执→独立读回。修复不会领取新lease或转移claim;展示文档也不能替代canonical记录。下一次政策修改仍只需修改原TS边界。File/SQLite/PG共享这条规则,测试夹具明确选择provider,不推断或提升运行权限。

具体改动

  • validateUntypedCompletionRepairPolicy 在 terminal owner 接收已存Todo;只读claim必须为空或与已存claim相同。planUntypedCompletionRepair 仍要求done/untyped、原身份、authority no_change,并拒绝新note、evidence、successor、validation和policy扩展。修复保留历史Actor、完成时间、正文、claim与原receipt,重复执行保留后写。
  • issue-fix CLI 在既有execute-transition分支读取 todo_write["todo"] 的claim/blocks_agent,修正摘要中的空值;创建和权限仍由原canonical owner执行。
  • import_fixture_authority 复用真实backup→saved plan→apply→provider readback;默认File保持,SQLite由夹具显式选择,并在备份前绑定合成源的物理路径。只用于明确的disposable setup,没有削弱真实备份准入。
  • 21个原smoke按调用族迁移:Todo归档/并发/容量/验证、user gate、Monitor、status/cache/无Git/预算、peer与独立Git worktree lease、Chat HTTP/action/contract/server、role successor、Explore及issue-fix。旧writer直接追加、旧flat别名和预览临时ID假设被替换,仍检查独立记录、原回执、错误Actor、CAS、无副作用、重放、取消与展示恢复;历史源诊断另保留只读场景。普通peer测试明确generic CLI/interactive,真实scheduler ACK仍由集成canary覆盖。
  • 两个既有Python/TS回归文件补齐匹配claim、错误claim/Actor、身份/policy扩展和后写重放;双语文档解释普通入口及原identity/proof要求。变更构成为生产/测试helper3路径+16/-7、文档1路径+30、既有测试23路径+866/-497,没有生成物或私有证据入库,所有新增提交DCO齐全。

对主干的风险

主要风险是把“相同事实”误当成新授权,或把测试迁移做成删断言绿测。我在真实File和SQLite上用同一合成输入分别执行base与head:28个观察点的fixture fingerprint一致,22个非变更观察完全一致。6个有意变化只对应两provider的合法matching claim和两种correction摘要修复;原Actor、不同claim、新note及重叠wrong-role/Actor的拒绝次序、完整错误和无副作用继续保留。

还执行了62条canonical记录、60个反向排序的无关条目、物理缺席的展示源及伪造展示归属。head能修复原目标并保持claim与历史Actor,随后原操作重放不改provider revision;展示和页上限不能劫持权威。普通后续新建和archive/terminal引用则由真实调用与provider回归继续覆盖,不把done当作整项目验收。

当前head的21个smoke已全部从源码和独立正常wheel重跑,Python3.11.17安装包的相关生产/TS/helper字节匹配,验证目录没有源码loopx或editable覆盖。初次私有验证副本漏了公共demo helper搜索路径,尚未执行产品即报import错误;修正验证环境后角色用例通过,原失败保留,demo并未冒充wheel的新能力。当前127项相关Python、737项真实File/SQLite测试通过且无skip;语义、公开边界、Ruff和5直接/19选择代码检查使用不变源码的已有准出记录。

真实PostgreSQL17.11的359项/0skip证据来自此前 6a600eef979167e733de764e3affabf7a8514d4b。本次逐路径核对terminal/store/fence、transport、conformance和依赖字节均未改变,因此只在这些范围复用,不说它是本轮重跑,也不相加测试总数。外部GitHub/model观察仍为模拟;真实Host、多人和长期采用没有由本PR证明。

我的整体评价

当前补缺具有实质价值:合法历史修复恢复进展,维护者看到正确归属,已有调用测试重新守护受支持路径。原 TS owner 已有完整 Actor、身份、receipt 和 CAS 规则;这里仅放宽与已存 claim 相同的只读事实,CLI 只适配同一 canonical 记录,避免另一套决策。 当前 PR 交付两个真实调用修复及21个既有测试的 canonical 迁移,保持历史恢复和拒绝路径;主退役与整体验收继续由上游 loopx-project#6396 和既有工作承接。

我对这个准确head给出 APPROVE,未发现需要当前PR修复的阻塞缺陷。此为author-owned模型评审的COMMENTED结论,不冒充GitHub正式自批准或另一位维护者的人类评审。原生policy21结果须经check-result和发布后readback校验;技术结论与作者全量资格、change-quality hold、merge readiness及维护者授权分别处理。此评审按Goal的wait_for_ci=false执行,没有查询或等待远端CI。

上游贡献仍由Duang主导;不整栈合入原6366,不用这份评审关闭C1/T4、Host、D2/D3或全量退役,也不借此推进未授权merge/release。

English verdict: APPROVE - head 5dff847. Existing typed owners repair matching stored claim facts and expose correct correction bindings. Matched real File/SQLite controls, all21 source/installed smokes,127 Python and737 local-provider tests cover the supplement; unchanged PG evidence is scoped reuse. Whole qualification and merge authority remain separate.

Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>

@loopx-agent loopx-agent left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewer: model_agent; OpenAI gpt-6.1-sol; runtime_reported; reasoning_effort=xhigh.

Approval conclusion (author-owned PR; GitHub blocks formal self-approval)

动机

维护者、项目 Agent 和自动化调用者,需要修复历史任务,并继续创建、审批和事件记录。

历史任务重复原 claim 被拒绝,修正摘要隐藏已存归属;退役后的项目测试还在要求旧 Markdown 写入成功,无法再守护任务完整性和审批门。 原任务已保存,调用却拒绝合法重试或显示空归属,维护者无法确信后续工作由谁继续。旧测试在失效入口上提前失败,也无法及时区分真正的数据损坏、审批绕过与普通夹具过时。合法历史修复和摘要归属得到修正,旧测试在真实 canonical 入口继续守护完整任务、审批、恢复与拒绝。

完整历史/App/Host、全量资格和上游整合仍开放,本评审交付当前30路径补缺的技术判断。 此 PR 不关闭整个退役、自然 Host 采用、长期容量或跨主机验收,也不授权合并、发布或活跃 Goal 切换。 本次判断覆盖 base 876458efcc85256ac43161b9c3ff0c69cf9227cf 到 head f63966e936635ac7e15bc1aa1ba2199541210b6f 的全部30路径;另行检查上次准确5d评审之后的三个 project caller 改动,没有继承先前 APPROVE。

改动思路

原 TS owner 已有完整 Actor、身份、receipt 和 CAS 规则;这里仅放宽与已存 claim 相同的只读事实,CLI 只适配同一 canonical 记录,避免另一套决策。 当前 PR 保留两个窄运行时修复和24个既有调用测试的有效语义;主退役及整体验收继续由 Duang 的上游贡献和既有交付承接。

最强的反对理由是这份改动的大部分为测试,可能只是在删除失败断言。只删旧smoke会丢失不同的HTTP预览、lease交接、ACK、历史回执、审批门与事件隐私覆盖;加回旧writer或flat别名则会重新保存另一份决策或传输知识。这里复用原terminal owner、返回的完整canonical记录和真实saved-plan importer,把有效不变量搬回受支持入口。数据不变量属于TS事务,Python负责CLI事实/响应传输,测试helper只为明确拥有的合成环境选择provider与备份。拒绝仍由原owner判定;展示由提交后的投影恢复,二者不会交换权威。

调用者遇到的触发 base行为/旧测试假设 当前head的判断
历史完成重复原claim 合法只读事实被拒绝 原身份下只修缺失元数据
maintainer patch或ambiguity 已存执行者/阻塞对象未反映到摘要 摘要从已提交Todo读取
force重建旧Markdown 测试仍要求旧writer成功 采用父分支截止:force拒绝;普通canonical reconnect保留工作
planned gate和claim 在未迁移source上要求正常写入 先确认拒绝,再真实导入并验证批准/事件流程

这张表是源码路径的解释,执行证据来自后述真实CLI和独立provider读回。既有配置owner和默认SQLite未改,File由现有profile显式选择;测试中的创建opt-out不会复活旧写入。下一次政策变化仍应在既有typed边界修改。

具体改动

规范为修改前的 docs/reference/canonical-todo-completion-update.md,spec_revision 876458efcc85256ac43161b9c3ff0c69cf9227cf;维护者修正也对照该revision的 issue-fix README。新增修复文档的文字由旧合同审视,没有用改后的文档为自己定义验收。

  • CLI and App canonical Todo mutations:本切片实现provider-first历史修复和真实response适配,沿用原事务/回执;真实CLI、Chat服务和安装包证据验证当前调用。
  • Unpromoted create/update/complete/supersede/archive:五mutation截止规则继承父分支,当前没有改变它;新增gate/claim调用验证未导入拒绝且source/registry不变。整族版本采用仍由原交付承接。
  • Bootstrap, handoff, team-plan and Monitor:新增bootstrap创建/reconnect资格,保留已迁移Monitor完整调用;全家族历史与Host资格仍未由本补缺关闭。
  • Markdown projection, reviewed source import and backup recovery:真实backup→saved plan→apply→完整读回保留;历史ID、归档、原receipt与永久展示恢复继续由原owner负责。

关键代码讲解

  1. validateUntypedCompletionRepairPolicy 接收已存Todo,只允许空claim事实或精确重复原claim。相邻repair planner继续要求done/untyped、原身份和authority no_change,拒绝新note、evidence、successor、validation、policy扩展和所有权编辑,保留原Actor、时间、正文和后写。
  2. handle_issue_fix_command 从 todo_write["todo"] 适配claim与blocks_agent。创建与幂等仍走原canonical owner;修正只解决摘要取错字段。
  3. import_fixture_authority 复用已有backup/import,File默认保持、SQLite显式选择;在备份前统一拥有的合成源物理路径,完整备份和保存的plan继续真实执行,没有弱化正常准入。
  4. assert_canonical_reconnect 删除已退役force/Markdown成功断言,保留SQLite默认和File/SQLite真实新建、普通reconnect完整Todo/revision、两种force无效果拒绝、opt-out截止。
  5. assert_adoption 先证明未导入gate创建拒绝,真实导入后继续原planned审批门、独立记录和只读handoff。单独operator approval不能绕过仍开放的User gate。

事件smoke的 assert_cli_events 保留原event identity/冲突拒绝/append-only/隐私检查,按File/SQLite导入后验证claim→refresh→quota三种原事件,不改日志owner。其余21个smoke及两个既有回归文件覆盖Todo归档/并发/容量/验证、user gate、Monitor、status/cache/无Git/预算、peer/独立worktree/lease、Chat HTTP/action/contract/server、role successor、Explore与issue-fix;旧raw writer、摘要别名和预览临时ID假设退役,原Actor/CAS/拒绝/重放/取消/恢复断言保留。双语文档解释原identity/proof与metadata-only repair。全部30路径为生产/testing3路径+16/-7、文档1路径+30、既有测试26路径+1072/-661,无新模块、协议、生成物或私有证据。

对主干的风险

本次最需要排除的是“一个Todo的reconnect过了,但展示外或归档的任务丢了”。我在同一逻辑fixture上分别运行base、当前head和正常安装包,真实saved-plan导入61个反序开放任务及一个明确归属的归档任务。用完整记录和归档精确读分别核对正文、归属、状态和provider revision;普通reconnect保持它们,展示文档物理缺失/伪造也不能重建或注入canonical数据。恢复展示后原reconnect继续可用。两种force都退出1,source、registry和provider不变。两provider的fixture与观察fingerprint在base/head/安装包完全一致。

新增三个完整caller已在源码和非editable Python3.11.17正常wheel通过,39项创建/状态事件/加载回归通过。原21个source/installed smoke、127项Python和737项真实File/SQLite回归保留其5d执行来源;此次逐路径及hash核对全部产品、测试、依赖、文档和原caller字节未变。旧28个配对CLI观察的六项有意修复与22项不变拒绝也保留原revision,未冒充本轮重跑。当前30路径的5直接/19风险代码检查、Ruff、先advisory后完整语义及公开边界检查通过。没有以这些数量相加宣布新的执行总数。

私有强对照夹具初次漏了归档role/runtime备份条件,并把归档视图和literal写错;两边均在前置阶段失败。按既有cold-import和archive合同补齐合法fixture及精确读后,才执行上述reconnect判断。原失败保留,产品源码和保护不变量未改。此前安装验证漏公共demo helper路径的环境失败也保留其已修环境的归属,不当作产品缺陷或隐藏的成功重跑。

359项真实隔离PostgreSQL17.11/0skip来自 6a600eef979167e733de764e3affabf7a8514d4b;store/todo/fence/transport/conformance和依赖字节未变,只在该范围复用。新的control确认installed module来自site-packages;测试caller不是新的已安装能力。外部GitHub/model观察仍为模拟,真实Host、多人和长期采用保持独立验收。技术判断遵循本packet的wait_for_ci=false,没有获取、轮询或等待CI;作者全量资格与change-quality失败记录保持为单独的合并门。

我的整体评价

我对当前准确head给出 APPROVE。当前 PR 保留两个窄运行时修复和24个既有调用测试的有效语义;主退役及整体验收继续由 Duang 的上游贡献和既有交付承接。 原 TS owner 已有完整 Actor、身份、receipt 和 CAS 规则;这里仅放宽与已存 claim 相同的只读事实,CLI 只适配同一 canonical 记录,避免另一套决策。 这份补缺让合法历史修复继续、摘要归属可信,并恢复原测试在受支持入口上的保护价值。长程进展改善来自原receipt与后写保留;使用体验改善来自沿已有命令恢复和读回,用户无需新增同步或重复审批步骤。

新增三条测试没有以删除保护语义换取通过:force成功属于退役入口,而完整数据、审批和事件归属已在真实canonical路径验证。已有provider/archive vocabulary继续复用;没有新的共享状态集合、substring denylist、领域化Core错误或把强制准入称为guidance。最近邻的简化是复用原importer与完整record、退役旧writer假设,已在当前切片应用。

该结论是author-owned模型评审的COMMENTED记录,来源和reasoning effort为最新host观测,不冒充GitHub正式自批准或另一位维护者的人类评审。完整历史/App/Host/C1T4/D2D3、全量资格、父分支整合、独立维护者审查及merge/release授权继续开放;贡献主体保持Duang,不整栈合入原6366。此前5d结论仅为历史记录,本结论经当前证据重新判断。

English verdict: APPROVE - head f63966e. Existing typed owners repair matching stored claim facts and expose correct correction bindings; 24 existing canonical caller smokes retain meaningful invariants. New complete-record File/SQLite reconnect controls match base/head/normal-installed behavior, with scoped unchanged-byte reuse of earlier source, store and PostgreSQL evidence. Whole qualification and merge authority remain separate.

Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
@loopx-agent loopx-agent changed the title fix: preserve stored claim facts and migrate canonical smokes fix: restore canonical caller coverage and retire unused governance prototype Oct 14, 2026

@loopx-agent loopx-agent left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewer: model_agent; gpt-6.1-sol; OpenAI; runtime_reported; reasoning_effort=xhigh

Approval conclusion (author-owned PR; GitHub blocks formal self-approval)

Exact head: c9be1562b927a8adc1dbdcc05d6f35669dad41f3; base: 876458efcc85256ac43161b9c3ff0c69cf9227cf. 整份 PR 重新评审;当前未发现阻塞该有界补缺的技术问题。作者的完整交付资格仍保留独立 hold。

动机

维护者和自动化调用者需要重试历史任务,并在旧写入路径退役后继续验证任务归属、审批与恢复。

历史任务携带原有 claim 重试被拒绝,修正摘要漏掉已保存的归属;旧测试还要求已退役的 Markdown 写入成功,因而到不了真正的数据安全断言。 canonical 在这里指保存完整任务、归属和原操作凭据的权威 provider;Markdown 是展示或经审核导入的材料。把旧写入成功断言直接删掉,会让审批、并发、历史恢复等有效覆盖一起消失。

合法历史修复和归属摘要得到修正,有价值的旧测试改走真实 canonical 入口;孤立治理原型被删除,真实状态读取、lease 和恢复覆盖保留。 删除孤立原型的依据是它没有生产调用者;删除本身不计作真实产品缺陷已修复。

此 PR 不关闭整个退役、真实 Host 采用、长期容量或跨主机验收,也不授权合并、发布或活跃 Goal 切换。 完整新 head 的作者资格、剩余调用族与真实 App/Host 验收仍开放,由 Duang 主贡献和既有补缺交付继续承接。

改动思路

实际状态 owner 已正确读取 canonical;两个真实修复复用原 typed owner,而孤立原型只有自身 smoke 使用,删除并把独有覆盖落到现有测试,比维护第二套读取结构更合适。

当前 PR 修复历史重试和摘要归属,迁移26个既有调用测试,删除孤立原型并验证真实状态恢复;主退役、整体验收和合并仍由上游贡献及既有交付承接。

普通 CLI 仍经现有 Python 传输进入 TypeScript terminal owner,使用完整 canonical Todo、注册 Actor 和原 completion identity 做决定,再由 provider 的事务/CAS 与 receipt 保存结果。issue-fix 只读取同一提交记录中的归属字段,不能转移 claim 或发出额外授权。测试共享 helper 只在隔离 fixture 内执行真实 backup→保存的 plan→import,不给活跃 Goal 做切换。

真实 status/Goal Channel 已通过 coordination_observation 调用 typed ownership_observation。这条现有路径是产品观察 owner,provider 不可用时返回不可用或拒绝;已删除的 visible_governance 只有自身 smoke 调用,继续修它不能改善真实入口。因此本次把 lease、失效和恢复覆盖落到现有 canonical 测试,不增加第二套状态或配置。

触发 决定 结果
历史 done 任务重复已存 claim 原 Actor/身份不变,只有缺失元数据 合法修复,原凭据和后写保留
改 claim、身份、内容或 policy 原 typed owner 拒绝 无状态、归属或 receipt 副作用
实际 canonical lease 与旧同 ID lease 文件冲突 完整 provider 事实优先 显示实际 owner/version,无写权
canonical provider 失效后恢复 不回退旧文件;恢复同一 provider 先不可用/拒绝,随后恢复准确观察

这是源码与真实用例的路径说明,不是另一个验收凭据。

具体改动

整份 diff 为 36 路径、+1,254/-1,763。运行时/测试 helper 四个路径 +16/-618;测试和 fixture 三十个路径 +1,207/-1,144;文档两个路径 +31/-1。没有新模块、协议、配置、生成日志或私有材料。615 行原型和509行专用 smoke 被物理删除,wheel 中也无该模块。历史文档保留已发生的事实,并把未来建议改到真实 canonical owner。

关键代码讲解

  1. validateUntypedCompletionRepairPolicy 现在拿到已存 Todo:显式 claim 只能为空或等于原 claim。Goal、注册 agents、原 Actor/identity、无新 policy/content/后继等检查仍保留。这里是读取原事实,不是给 repair 添加 ownership transfer。legacy/native、File/SQLite/真实隔离 PG 使用同一 typed owner,测试同时覆盖合法修复和拒绝。
  2. handle_issue_fix_command 的 created_todo 从 todo_write['todo'] 派生 claimed_by、blocks_agent,修复旧 flat response 取值造成的空摘要。实际 creation、权限和 replay owner 没变;独立 todo list 对照已存事实。
  3. import_fixture_authority 保持 File 默认,支持显式 SQLite,并统一临时路径的实际物理位置。它复用真实备份和已保存的导入 plan,保留历史字段;未迁移拒绝/历史只读案例独立保留。
  4. 实际 build_goal_channel_projection 无新增决策。新增现有测试里的真实 CLI 用例先 native acquire,再伪造同 Todo ID 的旧 lease;断言真实 owner/version、缺失展示不会重建、provider 失效不回退、准确恢复且原记录/revision/文档不变。原型没有调用者后退役;这不是新治理能力。

26 个既有 smoke 的价值逐族复核:completion、scoped/global User gate、claim/lease transfer/CAS、archive/Explore reference 保留实际状态和 no-effects 断言;quota/status/cache/perf 保留预算和 Turn settlement;Monitor/peer guard 保留 once-only ACK、实际工作区和返回后继;issue-fix 保留 patch/ambiguity/quiet、review ACK 与 provider 范围;Chat 保留 HTTP preview/apply、错误角色、stale preview、显示修复及持久读回;项目三例保留 canonical reconnect、审批门和原事件历史;custom CLI 验证同 Turn refresh/debit/replay,Lark human gate 验证变化通知和去重。没有为绿测试恢复旧 writer 或放宽 lineage/权限规则。

评审先读接受的 docs/reference/canonical-todo-completion-update.md,spec_revision=876458efcc85256ac43161b9c3ff0c69cf9227cf,再看 diff;新增修复指南不能作自己的验收 oracle。按该接受文本映射:

  • CLI and App canonical Todo mutations:implemented。两个窄修复与实际 native readback、Actor/identity/no-effects 控制成立。
  • Unpromoted create/update/complete/supersede/archive:out_of_scope。继承的五 mutation 准入 cutoff 不在本补缺中改写;测试保留迁移前拒绝,但整族关闭不因此完成。
  • Bootstrap, handoff, team-plan and Monitor:deferred。此补缺验证 canonical reconnect/既有 Monitor/custom/Lark caller;完整历史 outbox/真实 Host 仍由原上游交付验收。
  • Markdown projection, reviewed source import and backup recovery:implemented。真实完整 backup/保存 plan/import、显示缺失/伪造、原 receipt/后写与实际 status 恢复均保留,展示不能授予权威写入。

同时核对接受的 TypeScript migration RFC 与 authority retirement cadence:typed 决策、永久文档 IO 和最后调用者退役各有 owner;自然 cohort 与正式 D2 不因这个测试补缺关闭。

对主干的风险

最强反例是:一个自己喂数据的治理 smoke 可以通过,而真实产品根本不调用它,或真正状态入口仍读取伪造旧 lease。当前整树 caller 搜索证明原型唯一调用者;实际 native lease、同 ID forged file、展示删除、真实 provider 隔离失效/完整 status 拒绝与恢复经过 source 和正常非 editable wheel。失效注入只在临时 runtime;没有测试活跃 Goal 或改生产配置。

另一风险是原 claim 被误当新授权、历史 replay 吞掉后写或 reconnect 只保留可见摘要。保留的同 fixture base/head CLI 比较包括合法、遗漏/空值/不同 Actor/claim/content、重叠非法条件的完整诊断和拒绝顺序,以及后写、原 receipt replay。完整 source 控制读取61个 active加1个 archive记录;丢失/伪造展示、force 和普通 reconnect 均对照所有字段、归属和 provider revision。不能只看成功 payload 或相同 reason code。

验证:本次23个 source 回归、9个正常 wheel 测试和2个安装消费者通过,0 skip。此前24个 source/installed smoke、127 Python、737真实 File/SQLite、28 matched CLI 控制和完整 reconnect 证据,只在现 head 的 source/caller/dependency 字节核对后复用;没有把旧运行标成新 rerun。359个真实隔离 PostgreSQL17.11测试只用于未改变的6a store/conformance 字节。当前5 direct+19 risk/boundary、完整 semantic、docs治理与 focused Ruff通过。

先前 characterization 的2 fail/7 pass 保留:错误期望认为完整 status 在 provider 失效时还能返回 degraded queue;实际既有 contract 在 collection 先拒绝。修正测试 oracle 后,删除前9 pass、删除后23 pass、安装9 pass;真实 projection unavailable 和 status refusal 都明确断言,没有调整产品规则或删掉失败分支。独立 Auto Research lineage 诊断仍保留原 canonical 拒绝,不在此 PR 放宽。

语义与 CI 对齐

复用已有 Todo/Actor/claim/lease/receipt vocabulary,没有新共享 closed set。typed equality/schema/transition 负责分类;无新增 substring denylist 或领域专用 generic obligation。原 Actor/identity/CAS 和 metadata-only 条件是机器强制;指南明确拒绝后果。没有 opt-in/default-off 新主张,actual status、scheduler、quota、prompt 和功能默认均未改变。

本 managed review 的 native policy 为 wait_for_ci=false,本次没有 fetch、poll 或 wait GitHub CI。这里的 verdict 依据本地受影响 invariant 与资格范围;独立作者的完整新 head 全量资格仍 held,不能以局部通过、删除原型或技术 APPROVE 代替 merge-readiness。

我的整体评价

实际状态 owner 已正确读取 canonical;两个真实修复复用原 typed owner,而孤立原型只有自身 smoke 使用,删除并把独有覆盖落到现有测试,比维护第二套读取结构更合适。 当前 PR 修复历史重试和摘要归属,迁移26个既有调用测试,删除孤立原型并验证真实状态恢复;主退役、整体验收和合并仍由上游贡献及既有交付承接。

long_horizon 判定 improved:合法原操作可以修复后继续,原 receipt、后写与同 Turn 去重保留;删除无真实调用者的平行结构降低以后修改成本。user_experience 判定 improved:摘要准确、已有 command 可恢复、失败可观察,没有新导航/确认/重复输入。Lark 是受控 transport;真实 Host/cohort、长期和整体验收仍未证明。

重新阅读整个 head 后技术结论 APPROVE。这是已满足有界补缺的 justified_increment,兼容性保留已存记录/原操作恢复,两个真实修复复用原 owner;不继续批准中间 head 上只修孤立原型的路线。高价值的相关简化已在本 PR 实做;没有未完成的 simplify_now 被隐藏在通过结论里。36路径的完整当前 scope 独立评估,未继承旧 head 的批准。

没有未解决的本 scope 技术 blocker。完整作者质量资格、上游整合与剩余真实调用族仍 held;最强缺失验证是完整候选真实 Host/App/长期采用和整族交付,不是再加一个 synthetic reader。head/base、实际调用者、provider/dependency 或这些判断的事实改变时须重核。自评 COMMENTED 不是 GitHub formal approval,也不授予合并、发布或切换活跃 Goal 的权限。

English verdict: APPROVE - c9be156; bounded canonical retry/response fixes,26 durable caller migrations and physical unused-prototype retirement independently verified with real local-provider and installed-wheel evidence. Whole author/Host qualification and merge authority remain separate.

Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
…hority

Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
@loopx-agent loopx-agent changed the title fix: restore canonical caller coverage and retire unused governance prototype fix: restore canonical caller recovery and preserve failure lineage Oct 14, 2026
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>

@loopx-agent loopx-agent left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewer: model_agent; gpt-6.1-sol; OpenAI; runtime_reported; reasoning_effort=xhigh

Approval conclusion (author-owned PR; GitHub blocks formal self-approval)

Exact head: 52fbb56762e292f398938c21df9737f5468506eb; base: 876458efcc85256ac43161b9c3ff0c69cf9227cf. 当前未发现阻塞这份有界补缺的技术问题;完整作者资格继续保留独立 hold。

动机

维护者、项目 Agent 和研究工作者需要重试历史任务,并在旧写入路径退役后继续处理失败、审批和结算。

同一次研究失败的两份摘要请求不同父任务,合法后继复用被拒绝;Host 已返回的重规划结果也可能卡在恢复,错误地新开 Turn 会重复调用 Host。当前提交让摘要共享后继,并用原 journal 恢复结算,保持原任务、归属和回执。

这里的 canonical 指保存完整任务、归属和操作凭据的权威 provider;Markdown 保留展示与经审核导入的职责。合法历史重试和摘要归属得到修正,失败后继与缓存重规划能够继续;有价值的旧测试改走真实 canonical 存储,孤立原型退出生产树。

本 PR 不关闭整个退役、真实 Host 采用、长期容量或跨主机验收,也不授权合并、发布或活跃 Goal 切换。完整提交的作者资格、剩余调用族和真实 App/Host 验收仍开放,由 Duang 主贡献和既有补缺交付继续承接。

本次重新判断全部47路径。此前 c9be1562 的36路径源码未变,但没有继承它的 APPROVE;新增11路径及其实际消费者独立复核。父 loopx-project#6396 的分支仍为上述 base。最新 main 已核对到 3c681f113,邻近 Turn 家族的新变化属于 Codex session,未包含本次缓存 Vision 或研究后继修复。本 PR 继续针对明确的贡献者集成分支。

改动思路

真实失败由调用方表示与既有 typed owner 的契约不一致引起;沿原 owner 修复、保留历史 parent/CAS,并删除无调用者原型,比弱化核心规则或增加平行结构更合适。

当前 PR 交付历史重试、归属摘要、失败后继和缓存重规划恢复,迁移有效旧测试并退役孤立原型;主退役、完整作者资格和真实 App/Host 验收继续由既有贡献承接。

最强的反对理由是:大量测试修改可能只是隐藏旧入口失败,历史兼容可能形成另一份权限规则,缓存修复也可能让新 Host 提交内部字段。这里仍由原 TS owner 判定完整任务、duplicate intent、CAS、Vision 语义和 journal 阶段;Python 仅适配具体领域来源关系与 Host 表示。测试在受支持入口独立核对持久记录和副作用,核心拒绝规则未放宽。

触发 旧行为 当前行为与边界
done/untyped 记录重复已存 claim 合法修复被拒绝 原身份下仅补缺失元数据,不能转移归属
同失败来源被两份摘要处理 同标题却不同 parent,被原 duplicate fence 拒绝 新建时绑定失败 root;已存历史 parent 经完整证明和 CAS 后保留
Host 已返回,结算被 canonical 准入拒绝 缓存 decoded Vision 被当作新 wire packet,原恢复失败 用原 journal/key 重核缓存,继续结算且不重调 Host
新 Host 提交内部 agent_vision/坏缓存 拒绝或无法正确恢复 新 Host 仍拒绝内部字段;坏形状、语义预算和双表示继续拒绝

此表来自代码与实际反例,说明触发、决定和结果;它不替代执行证据。

历史 text_source_todo_id 没有被机械删除:真实历史任务已保存摘要 parent,而标题来自失败 root。删除该 seam 会使原意图无法重放。保留的是一个经 native conflict 指定、完整来源关系证明和 revision 约束的兼容输入;没有在 Python 重做标题归一化、duplicate 判定或 claim 权限。

具体改动

完整 diff 为47路径、+1,687/-1,873:7个生产/helper路径 +82/-644,3个文档路径 +45/-1,37个测试/fixture路径 +1,560/-1,228。按当前 base-to-head numstat,退役模块611行、专用 smoke477行;没有新框架、模块、schema、配置开关或生成日志。

  1. validateUntypedCompletionRepairPolicy 允许 null 或与已存 claim 相同的只读事实。planUntypedCompletionRepair 仍要求 done/untyped、原 Actor/Turn identity、authority no_change,无新 content/policy/successor/validation;原时间、claim、receipt 和后写保留。
  2. handle_issue_fix_command 从实际 todo_write['todo'] 读取 claim/blocks_agent,修正空摘要。持久创建和幂等仍归原 canonical owner。
  3. _maybe_add_role_successor_todos 让新失败后继的 title 与 parent 使用同一失败 root。遇到原 native todo_semantic_duplicate_conflict,只读取该冲突记录,并核对其历史 summary parent 的 action 和 root 关系;随后携带所读 provider revision 重试原 parent。不同意图仍拒绝,每份摘要保留自己的 completion link。role helper 只传输原 CAS 参数。
  4. validate_loopx_turn_host_result 对已缓存的 decoded Vision 复用原 TS normalizer,重核形状、绑定及预算。新 Host 的 wire grammar 不增加内部字段;缓存同时携带 wire/decoded 两种表示也拒绝。
  5. _host_result_stage 在任何 fresh Host 调用前,从原 completed typed_result 阶段派生缓存来源。fresh 分支只在该阶段缺席时调用 Host;原 journal identity、prepared-effect 和阶段检查未改变。

共享 fixture helper 仍走真实 backup→保存 plan→apply→完整 provider readback,File 默认保持、SQLite 显式选择,只用于已停止的合成环境。Todo/archive/concurrency/lease、User gate、quota/status/cache、Monitor/peer/worktree、Chat HTTP/action、Explore/issue-fix、项目创建/reconnect/event、custom CLI/Lark 等原调用族仍验证原身份、拒绝次序、CAS、取消、重放、后写和展示恢复。新增 Dreaming 和 durability 迁移保留审批/无扣额与30条完整记录;研究用例覆盖 fresh、历史 parent、归档、实际并发写后 CAS 拒绝及 fresh retry。

两个 quota smoke 没有把通知改成授权:未绑定 recommendation 不投影 write/spend;纯投影输入提供既有 bound receipt 后,原 owner notice 和 capability gate 命令保留。user_action 使用既有 bound_agent 路由,保持可见的 non-blocking notice,不能因为另一 Agent 的 gate 而抢占当前工作;generic 与 App scheduler context 明确分开。真实 binding 不由纯函数 fixture 认证。

孤立 visible_governance 及唯一 smoke 被删除。整树 caller 搜索及此前 source/wheel 物理缺席证据保持有效:真实 status/Goal Channel 继续经 goal_channel_projection→coordination_observation→typed ownership_observation。native lease、同 ID 伪旧文件、缺失展示、provider 失效拒绝与准确恢复覆盖仍在现有测试。删除原型不被计作一个真实产品缺陷已修复。

接受契约对账

先读修改前的 docs/reference/canonical-todo-completion-update.md,spec_revision 876458efcc85256ac43161b9c3ff0c69cf9227cf;同 revision 的 Auto Research role profile 和 Turn protocol 提供继续与恢复要求。新增说明不是自身验收依据。

  • CLI and App canonical Todo mutations:implemented。已有 provider-first owner 保持,窄修复与原 Actor/identity/no-effects 实际控制成立。
  • Unpromoted create/update/complete/supersede/archive:out_of_scope。继承的整族 cutoff 没有在此重写;原迁移前拒绝仍保留,整体验收归上游。
  • Bootstrap, handoff, team-plan and Monitor:deferred。既有 canonical reconnect/Monitor caller 有覆盖,完整历史 outbox 与真实 Host 验收仍由既有退役交付承接。
  • Markdown projection, reviewed source import and backup recovery:implemented。保存 plan、完整导入、旧回执/后写、显示失效与恢复保留,不产生旧写权。
  • continuation_policy:implemented。目标未完成且 role 条件满足时须创建或链接后继;两个摘要的真实继续和历史 parent/CAS 反例证明该义务得到执行,不增加 execution/claim grant。
  • recovery_decision:implemented。缓存结果可继续原 Turn;原身份与结算门保留,实际 invocation counter 证明不再调用已完成的 Host。

对主干的风险

关键风险是“fresh 成功”掩盖缓存失败,或“第一份摘要成功”掩盖第二份摘要冲突。本次重新执行六项完整源码 smoke 和136项 Turn/quota 回归,全部通过、零 skip。完整 caller 涉及真实 disposable File/SQLite;纯 quota projection 与合成 Host 的边界明确。

我另外做了受控 owner 回退反例:在相同当前 fixture 与其余 owner 下,仅恢复 base 的 executor 字节,真实 turn run-once 在原 cached-material resume 失败,原 journal 仍证明 Host 已调用且 reinvoke_host=false;当前完整 File/SQLite source 与正常 wheel 路径保持同一个 key,material Host 一次、独立 routine Host 一次。仅回退旧 research producer 时,同一 bounded CLI control 的第二份摘要无法继续;换回当前 producer 后相同 control 通过。它们是独立边界回退探针,不宣称跑过整仓 base 全套。

私有 lineage 对照第一次漏了公共 fixture helper,尚未执行产品便 import 失败;随后第一 parent 的断言错误地假定创建顺序等于调度顺序。修正环境后,bounded 对照允许两种合法历史 summary parent,保留第二份摘要必须继续并复用同一 successor 的独立 oracle。公开提交的完整原 smoke、wrong-lineage 和 CAS 断言没有被删改。初始失败保留为验证 setup,未冒充产品回归或成功证据。

更广证据按实际执行 revision 保留:原 paired CLI 的28观察点、完整62记录 reconnect、737 File/SQLite、127 Python、24个 source/installed caller 及后续真实 Goal Channel source23/installed9和两安装消费者,仅在路径、owner、依赖和前提的字节失效检查后复用。36个旧 changed paths 仍相同,新增 executor 使用当前136测试和实际缓存恢复重新覆盖;304项相关 Turn-family 作者回归仍保留其当前源码来源。没有把重叠数字相加或把旧执行标成重跑。

正常非editable Python3.11 wheel 的三项 quota/Turn complete smoke 与当前 source 字节相符;研究、Dreaming、durability 的正常安装证据保留在未变 caller/owner 范围。安装研究使用同提交的公共 source Demo toolkit 加 installed LoopX core,Demo 不由 wheel 分发。真实 PostgreSQL359项/零 skip 仅复用未改 store/conformance 的既有 revision,当前没有重跑或更改 PG store/fence。真实 App/live model、多人与长期采用仍未证明。

语义判断:复用原 Todo、Actor、claim、receipt、Vision、journal 与 duplicate/CAS vocabulary;from_journal 是原阶段派生事实,不是手写状态或 Host 提供的权限开关。没有新增 substring 分类、shared closed set、optional capability、自动 prompt 安装或领域化 generic obligation。文档公开新 failed-root parent 与历史 parent 的区别;新 Host 输入、provider 默认、claim、scheduler/quota 默认保持原契约。原拒绝属于机器强制规则,未被称为可忽略 guidance。最近邻简化已应用:共享 typed owner、删除无调用者结构,历史 seam 只因真实持久化兼容保留。

此 managed review 的 wait_for_ci=false,没有 fetch、poll 或 wait CI。当前 exact-head 作者 change-quality receipt 保持 fail,整头资格与真实 App/Host 仍为单独的合并门;它们没有被技术评审或此前 CI 结果代替。

我的整体评价

我对这份完整准确 head 给出 APPROVE,没有当前有界 scope 的技术 blocker。真实失败由调用方表示与既有 typed owner 的契约不一致引起;沿原 owner 修复、保留历史 parent/CAS,并删除无调用者原型,比弱化核心规则或增加平行结构更合适。

当前 PR 交付历史重试、归属摘要、失败后继和缓存重规划恢复,迁移有效旧测试并退役孤立原型;主退役、完整作者资格和真实 App/Host 验收继续由既有贡献承接。持续进展改善来自原操作可以恢复、后继能够复用且不重复 Host;使用体验改善来自已有命令的正确摘要和明确失败/恢复,而不是要求用户重复输入或重做批准。

这是 author-owned 模型自评的 COMMENTED 记录,来源如首行所示,不冒充 GitHub formal approval 或独立人类维护者意见。完整作者资格、父分支整合、真实 App/Host 与 C1/T4/D2/D3 保持开放;贡献主体仍是 Duang,旧 loopx-project#6366 保留为证据资产。head/base、真实调用者、依赖或验收边界改变时重新评审;此结论不授予 merge/release 权限。

English verdict: APPROVE - head 52fbb56. Whole47-path supplement reviewed: existing typed owners retain authority while canonical retries, one failure-lineage successor and original cached material-Turn recovery work. Six complete current smokes,136 regressions, old-owner counterfactuals and scoped source/installed reuse support this bounded judgment. Complete author qualification, actual App/Host adoption and merge authority remain separate.

@loopx-agent loopx-agent left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewer: model_agent; gpt-6.1-sol; OpenAI; runtime_reported; reasoning_effort=xhigh

Approval conclusion (author-owned PR; GitHub blocks formal self-approval)

Exact head: f3ac69772e0999d78af1a997d54fd20e91634af3;集成 base: 876458efcc85256ac43161b9c3ff0c69cf9227cf。没有阻塞本补缺的技术 finding,结论 APPROVE。 全面作者资格、上游采用和合并门仍独立开放;这不是正式 GitHub self-approval。

动机

维护者、项目 Agent 和研究工作者需要在旧写入退役后恢复原任务;Goal 设置用户需要确认保存后的真实值,Host 调用者需要确认进程组已停止。

两份摘要可能不能复用同次失败的后继,已返回的 Host 结果可能卡在原 Turn,保存设置后的读回还可能被提前编辑;旧清理观测甚至会把超时后的空输出当成停止。补缺恢复原操作、等待配置读回,并拒绝缺失或逾时的清理观测。

canonical 是保存完整任务、归属和原操作回执的权威 provider;Markdown 继续用于展示、审核导入及受约束的历史恢复。

合法历史重试、原 Turn 缓存和同来源后继可继续;有效旧测试走完整 canonical 存储,孤立原型删除;设置读回失败可恢复已提交值而不重复保存,真实进程监督保留合法结果并拒绝不可信清理。

本 PR 不关闭完整退役、真实 Desktop 或模型 Host 采用、长期容量及跨主机验收,也不授权合并、发布或活跃 Goal 切换。

当前整64路径的作者全面资格、Duang 上游采用和采用后的组合头验收仍开放;历史131 CI 的1020.835ms失败缺少同等追踪,不宣称其精确原因已证明。

本轮从原贡献路线重新判断全部64路径,并分别核对3b→f3的新增修复。贡献者父PR仍为876,当前main为3593cf17dada74b807719ba4fdbbb1738fa0a56c;以前62个树条目连同有意删除的路径均未改变,调用方、依赖、store、journal和UI的复用前提未失效。历史执行保留原revision,旧APPROVE不继承。

改动思路

原 typed owner 继续决定原操作修复、后继和结算;设置复用已有 loading,Host 复用私有进程观测边界,测试只建立真实 canonical 夹具,不增加第二份权限或状态规则。

本 PR 交付原操作恢复、有价值旧测试迁移、配置读回保护及有界进程清理修复;全面资格、贡献者采用和实际 App/模型 Host 验收继续由原交付承接。

最强反对理由是:测试迁移可能只换成全绿夹具,兼容修复可能复制权限,缓存修复可能放宽fresh Host输入,配置loading可能增加干预,而清理修复可能用延长预算掩盖偶发失败。更小的现有owner修复足够;无需另建状态机、锁或监督器,也不恢复旧writer或删除断言。

真实触发 原缺口 当前结果与约束
done/untyped重复已存claim 合法元数据修复拒绝 只补缺失完成字段,原Actor/身份/归属/回执保留
两份摘要处理同次失败 后继parent不同,不能复用 新后继用失败root;历史parent须完整关系和CAS证明
Host已返回,原Turn未结算 decoded缓存被当fresh wire 同typed owner重核原journal,不重调已完成Host
确认保存后读回未完成,切换能力 local busy重置,提前可编辑 复用root loading挡住编辑/预览/apply;失败Retry只读回
KILL后ps空输出或逾时回调 未报exec错误便接受停止 同一秒预算内要求有效观测;空/迟到拒绝,不延长timeout

表是当前源码和执行结果的说明,不作为独立测试证明。合法Host退出、僵尸/消失观测、拒绝/恢复和配置的原有一次确认journey同时检查;链接、进程观测和加载状态都不授予执行权限。

具体改动

全diff 64文件,+2,023/-1,991:生产/helper10项+120/-669,测试49项+1,853/-1,319,文档3项+45/-1,CI1项+4/-1,manual1项+1/-1。新增批仅两文件+37/-7;不是又增加一份框架。bundle是忽略的构建产物,由正常安装包验证。

  • terminal修复仅允许null或精确重复stored claim,done/untyped、原Actor/identity、authority no_change和无新内容/policy/successor/validation仍必需。issue-fix从实际committed Todo读取claim/blocks_agent,创建和幂等仍由native owner决定。
  • research producer使用失败root;只有native duplicate明确指向的历史记录,其完整summary/root关系证实时才用当前provider revision重试原parent。错误来源、归档与真实并发CAS继续拒绝;各摘要保留独立completion link。
  • executor只从原journal completed typed_result派生缓存来源,同TS Vision normalizer重核。fresh Host不能提交内部agent_vision;坏形状、超预算和双表示拒绝。journal身份、prepared effect、阶段和单次spend保持。
  • 有价值Todo/archive/claim/lease/Monitor/user-gate/quota/status/Chat/project/受控Lark测试通过真实backup→保存plan→apply→完整File/SQLite读回来初始化。保留preview/no-effect、CAS、原操作重放、后写、once-only及投影失败恢复。原proof六个测试函数AST不变;架构使用本地exact-edge夹具而不恢复已退役生产exception;bootstrap以实际JSON核对Goal/Turn并保留bash/zsh错误prefix拒绝。
  • 删除没有真实产品caller的visible_governance原型611行和唯一smoke477行;真正status/Goal Channel继续canonical typed owner。默认help/man正文保持;Finance结构化字段和Frontstage选中release-step token检测修复的是错误测试假设;LaunchAgent测试传实际selected doctor interpreter,真实helper仍在checkout外读回。
  • 配置读回采用已接受的loading/readback owner。失败503隐藏旧编辑器,Retry读到已提交值,不再次apply。test-only同源转发只重写完全相同Origin,foreign Origin交真实HTTP guard拒绝;无新配置、页面导航、样式或权限。
  • 新Host修复在现有50行observer内拒绝空snapshot、已到期的新probe和异步返回后的deadline;原一秒预算和Z/live/stopped/unknown规则不变。live负例改为拥有detached child group以匹配生产,保留原deadline拒绝断言并只杀自己的合成child。新增empty/blank及lateabsence反例,不弱化Windows、lease或协议。

关键代码

  1. validateUntypedCompletionRepairPolicy 读原Todo作为stored-claim事实,后续repair predicate仍拒绝新身份、claim、内容和权限转换;真正terminal owner执行回执/投影,不能从展示推导完成。
  2. _maybe_add_role_successor_todos 提供失败root或经过完整canonical关系核验的历史parent;native create/duplicate/CAS保留决定权,异常不能变成任意标题匹配或第二份Python政策。
  3. _host_result_stage 先核原journal阶段;只有缺少typed_result才调用Host。缓存走原typed normalizer后继续validation和settlement,而fresh wire的内部字段仍拒绝。
  4. waitForProcessGroupStop 每轮先检查remaining,再作signal-zero;ESRCH确认缺席,EPERM需新ps。await后再次检查deadline,再解析非空group/state。调用者clean在KILL后等待,包括leader已退出的情况;异常阻止正常Host结果,不改变completion或lease。
  5. useCapabilityMutation 将原root loading带到guided/JSON/draft/mode/preview/apply/clear准入。readGeneration拒绝旧读请求;当前读回失败由原load/error/Retry恢复,恢复的是已经提交的值,没有新增保存或确认。

接受契约

先读base876的canonical Todo契约,spec_ref docs/reference/canonical-todo-completion-update.md,spec_revision 876458efcc85256ac43161b9c3ff0c69cf9227cf;同revision的research profile、Turn/Host protocol和frontend delivery共同界定边界。新增文档不作为自身oracle。

  • CLI and App canonical Todo mutations:implemented,原provider-first、Actor/identity/no-effect保持,窄repair有真实入口验证,不宣布App整体采用。
  • Unpromoted create/update/complete/supersede/archive:out_of_scope,完整cutoff由上游承接,补缺不恢复未迁移writer。
  • Bootstrap, handoff, team-plan and Monitor:deferred,已验证现有canonical reconnect/Monitor;完整历史outbox/实际Host由原退役交付承接。
  • Markdown projection, reviewed source import and backup recovery:implemented,完整导入/旧回执/后写/展示恢复保留,展示不授写权。
  • continuation_policy:implemented,fresh/history/archive/并发CAS决定创建或复用;链接不授claim/execution grant。
  • recovery_decision:implemented,原缓存继续同Turn,不重复已完成Host,身份/阶段/扣额门保持。
  • Task-first delivery:implemented,现有配置journey确认后的实际读回和失败Retry保持,无新强制步骤;源码/正常wheel/实际Desktop区分。
  • Chat/App completion with original execution proof:implemented,原Agent/key/version/expiry完整,wrong/revoked/expired/malformed不重领执行,失响应恢复同proposal、不重复validation/完成,六个原测试body不变。
  • Managed Host Process Lifetime:implemented,已有一秒group观测、all-zombie/absence合法、live/stopped/unknown非终态;观测失败/缺失/逾时拒绝,不认证Todo完成、不续lease或建立sandbox。

对主干的风险

本轮独立执行完整source Host+group 21 passed/0 skip,19.468s,fresh normal非editable Python3.11 wheel实际安装的TS supervisor/observer在隔离Linux完成同21例 21 passed/0 skip,21.694s。包含真正detached组、descendant/pipe/drain/timeout/cancel和合成File lease路径。轮子SHA256 7f8e1050b09aed97d343fadf765140c38fe00c8efefe5ee3a492b67096d0ffd2,Host helper字节与f3一致。Linux为ARM64/Debian/Node22.23.3,不能冒充Ubuntu/x64/Node22.22.3、实际模型或Desktop采用。

同一公开5例放回immutable old3b helper,得到 3 pass/2个预期失败/0 skip:空观测没有抛异常,lateabsence没有拒绝;当前完整21例通过。lateness negative仅mock monotonic clock/signal-zero,ps仍真实;真实Linux旧观测追踪另外复现了仍存活的专属group后,error=null的empty callback超时返回并被接受。因此不是只用mock制造后置条件,也不是挑一个绿rerun。初次私有回执解析误按TAP读取本地Node的ℹ格式;原raw log不变,读回后两失败身份与3/2计数确认,未修改产品或公开断言。

原作者f3-byte阶段的全部Linux六轮group模块 30 passed/0 skip、source Python3.12真实Host/leased File/SQLite 30 passed/0 skip、正常Python3.11 generic Host 14 passed/0 skip,以及typecheck、advisory后完整semantic、bundle source完整性、diff/public-private scan和风险canary 3 direct+10 selected/0失败/0hold继续有效,标为原执行阶段,未冒充本轮重跑。store/PG规则未改,本轮未跑PG或宣称新的PG资格。

以前62路径通过逐项树/调用方/依赖核对后复用原执行证据:3b源码59、正常安装proof/bootstrap32、12个oldfixture预期失败及原proof AST保持;131正常wheel三个完整配置场景、old20c同public场景失败、实际HTTP同源201/foreign403/无重复写和205回归;更早canonical source/normal-wheel原操作与后继矩阵保留其原revision。demo不是wheel交付;原来未分发的可选JSON/metric及test-only文件不当成当前已安装。没有重贴旧结论当作f3批准。

历史131 CI的 Missing expected rejection 耗时1020.835ms仍缺少同等trace,不宣称精确历史原因已证明;当前新增guards、全部有界重复观测、独立负例和真实source/installed coupled结果覆盖现在的失败机制,未删除旧记录或放宽预算。外部effect逃出组、真实模型Host、长期cohort/C1/T4/D2/D3和上游采用后组合头仍未验证。

managed review wait_for_ci=false:本轮没有fetch、poll或wait CI。作者整64全面资格/CQR和实际采用继续独立承接;本技术结论不把pending状态当证据,也不取消贡献者工作。无合并或发布授权。

我的整体评价

APPROVE完整补缺,long_horizon和user_experience均improved:原操作/承诺得以继续,不重复Host或已确认的保存;当前Host合法路径仍可返回,不能以空或超时观测认证清理;有效旧测试重新保护业务与权限边界。

原 typed owner 继续决定原操作修复、后继和结算;设置复用已有 loading,Host 复用私有进程观测边界,测试只建立真实 canonical 夹具,不增加第二份权限或状态规则。

本 PR 交付原操作恢复、有价值旧测试迁移、配置读回保护及有界进程清理修复;全面资格、贡献者采用和实际 App/模型 Host 验收继续由原交付承接。

有价值的future-facing pass已经落在删除无人调用的原型、复用typed authority/loading和强化私有observer;没有必要再引入锁、schema或监督框架。真实historical parent/decoded journal有persisted消费者,保留这两个窄兼容不能等同保留legacy writer。当前全面资格、贡献者采用和真实App/Host验收保持开放,不把净删行数或测试数当完成。

English verdict: APPROVE — exact f3ac697. Whole64 is independently judged; prior62 evidence is revision-bound and byte/caller qualified. Fresh real source21 and normal-installed Linux21 pass; the immutable old helper fails the two new empty/late observation obligations under unchanged public tests. Existing typed recovery/readback owners, one-second budget and authority boundaries remain. No CI consulted; author full qualification, contributor adoption, combined-head acceptance and merge/release authority remain separate.

Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
… bridges

Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
@loopx-agent loopx-agent changed the title fix: restore canonical recovery, Host cleanup and settings readback fix(authority): complete canonical retirement and preserve recovery Oct 15, 2026
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>

@loopx-agent loopx-agent left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewer: model_agent — gpt-6-astra / OpenAI; runtime_reported; reasoning effort xhigh.

Approval conclusion (author-owned PR; GitHub blocks formal self-approval)

Exact head: 7867467d68bb43cf4761264a2b033d592842d976; contributor base: 876458efcc85256ac43161b9c3ff0c69cf9227cf. 本次重新判断整个 PR,未继承旧提交的批准结论。

动机

维护者和自动化 Agent 需要把旧任务迁入 canonical 存储,并继续完成有合法授权的工作。

旧操作已经成功却丢失响应时,直接删除旧路径会让重试失败;反过来,接受旧租约回执作为现行权限又会放行已退役策略。本次将历史恢复与新的执行授权分开,并让旧测试真正经过现行存储。

合法原操作可以恢复,后来写入不被回滚;legacy 记录仍可查和按原身份释放,但不能申请或证明新的执行权限。经备份和确认迁移后,调用者使用现行策略继续工作。

本 PR 不宣称整个 C1/T4 退役或长期容量验收完成,也不授权发布、合并、默认 provider 切换或迁移活跃 Goal。 Duang 尚需采用补缺并验证组合提交;完整历史快照演练、实际外部 Host/Lark 与多开发者采用、持续容量验收仍开放。

改动思路

新执行权由现有 TypeScript 策略和事务 owner 统一决定;旧文件路径只承担已证明需要的读取、原操作恢复与精确释放,因此删除多余 Python 决策和写入代码是合理的。

当前 PR 交付两种现行策略的执行截止、必要历史恢复和可用的备份迁移入口;完整历史采用、持续容量以及 Duang 采用后的组合资格继续由既有验收负责。

调用链是现有 CLI/Chat/Monitor/MCP → canonical provider 的真实策略、任务与租约 → TypeScript 决策和事务 → 原回执与独立读回。Python 继续负责适配和历史 IO。没有新增策略开关、平行状态机或第二个权威数据源。策略选择是用户意图,当前权限则由已存策略和真实租约推导,不能由状态摘要或旧成功回执代替。

请求 处理与结果
新工作或当前执行证明 只接受 soft_claim / hard_lease;后者仍需当前租约
原 committed/prepared 操作重试 原身份、锁和匹配字节决定恢复;不回滚后来写入
历史租约清理 原身份、版本、fence 下精确释放
legacy 策略迁移 现有备份、计划、确认、应用、读回;迁移本身不发租约

上表是当前源码关系说明。实际正向路径已经过 CLI 释放→备份迁移→新租约→任务操作;反向覆盖旧回执、错误 Actor、过期租约、伪造显示、provider 故障和后来 generation。设置保留现有关闭状态,用户通过已有设置入口完成必要的确认,无需另加一个配置面。

具体改动

共 118 个文件,+4706/−2968。增长主要来自旧测试迁到真实 canonical 存储、原始 1.x 回执和负例;生产代码总体减少。最后的职责清理批次净删 511 行:Python 租约 writer/factory、generation/CAS 辅助、旧 owner 准入桥、死 Todo projection 和不可达 lifecycle 分支。另有孤立 611 行原型及其专用 smoke 删除。历史 reader、原操作恢复、精确释放和永久 Markdown 显示仍有真实消费者,因此保留。

关键代码讲解

  1. retiredHandoffModeRejection 以明确类型值判定退役策略,供 claim/update/terminal/Monitor 共用;legacy 可解码不等于可执行。
  2. currentLeaseAcquisitionProof 读当前策略与原 acquisition lineage,阻止旧成功回执绕过现行策略;MCP 恢复也遵循此证明。
  3. executeTaskLeaseLifecycle 将 canonical 操作交给原 owner。source 路径仅恢复已提交或已应用且字节匹配的原操作,并在原锁内重读;fresh renew/transfer 拒绝,release 保留 CAS/fence。
  4. executeCoordinationTodoTerminalLifecycle 保留原子完成/释放/后继;只有需要 delegation 时读取相应授权,普通合法持有者不因无关坏记录而失败,真实 delegated reason 写入回执,公共 reclaim 仍被禁止。

其余改动包括 Chat 创建把预览 revision 绑定到操作身份并覆盖三种竞争;旧 completion/Monitor/Explore/issue-fix/project 测试使用现行 provider;保留同来源后继和原 Turn 缓存恢复;设置等待提交后读回;Host 清理仍使用原一秒预算。CI 的源码解释器准备、帮助分类和示例适配都按完整 diff 检查,没有把附带修复视作新功能授权。

验收基准为提交 876458efcc85256ac43161b9c3ff0c69cf9227cf 的 docs/reference/local-authority-provider-selection.md,并交叉阅读当时的 handoff、canonical mutation、TS migration RFC 和 overall roadmap。新增文档只是披露,不反过来定义验收:

  • Canonical store with legacy ownership policy — implemented:当前授权截止和历史恢复分别由现有 typed owner 处理;真实 CLI、原始回执和 provider 用例覆盖。
  • CLI and App canonical Todo mutations — implemented:归属、角色、Actor、atomic release、同次重试和 Chat CAS 都保留。
  • Markdown projection, reviewed source import and backup recovery — implemented:保留显示、显式迁移和原操作恢复,禁止失败后回落旧 writer。
  • T4 — deferred(整体退出条件):本批完成上述删除与有界恢复验证;完整历史快照演练仍未取得资格。
  • R5 — deferred(持续与默认采用):多开发者、实际外部 Host/Lark、持续容量和默认 promotion 继续由既有验收负责。

对主干的风险

最危险的两个方向是“删掉恢复导致原操作卡死”和“保留回执却误发当前权限”。评审既检查合法恢复,也检查错误 identity/后续写入/过期/角色/Actor 和 provider 故障。1.x fixtures 来自原始提交 60d833b13c85135587b725013b247e827663ffb9,避免用新实现生成的回执自证兼容。source release 仍受 promotion fence 与原锁保护;历史检视明确不表示当前执行。

本次发现并修复 mutation runner 的旧定位:原指针引用已删除的分支,会在反例断言前失败。最终提交改为唯一的现存 release 上下文,没有恢复旧运行时代码。移除保护、截短 TS/Python 完整修复指引、泄漏错误 envelope 四种变异,均是正常代码通过、变异后断言失败;定位失败未计作杀死变异。

本次重新执行 176 项 Python 检查全部通过,包含真实 File/SQLite、CLI、Chat 竞争与 delegation 生命周期。最终 runtime 删除边界此前 42 项 typed 检查全过、零跳过,包含独立真实 PostgreSQL 17.11;这些产品字节与当前提交一致。普通非 editable Python 3.12 wheel 的 27 个产品模块逐字节匹配,84 项先通过;8 项复制测试因 source locator 在进入 owner 前失败,仅修正私有测试定位后 8/8 通过。初始失败仍保留。

已有两策略范围 1293 typed/297 Python、最终 canary 5 direct + 19 selected、packaged 设置迁移及先前 Host/配置的配对反例按原来源与失效条件复用,数量不相加。前次 64 路径中 63 个字节不变;terminal 的新增变化通过本轮真实用例重新检验。广泛历史快照演练因 serializer/read-model setup 不匹配仍为 unqualified,不是通过,也不借此恢复多余旧 writer。

语义与 CI 对齐

采用现有 handoff vocabulary/typed transition;legacy 的历史可读性与当前不可执行性明确披露为 2.0 行为改变。配置关闭状态没有被启用,迁移不发租约。错误指引是恢复建议,执行截止是机器强制条件,没有用 guidance 掩饰义务。semantic advisory、完整 drift/typecheck/Ruff/bundle 和既有风险 canary 有独立结果;语义清单仍有未验证 producer/cross-runtime 项,不宣称覆盖所有语义。

本次 review packet 的 wait_for_ci=false,因此没有抓取、轮询或等待 CI。旧 d3 的三个运行不能称作新 786 提交资格;最终 head 的作者 CI/质量门仍待单独确认。parent loopx-project#6396 与 main 的测试文件冲突、Duang 采用和组合后的真实验收也不由本 PR 的文本可合并性解决。

我的整体评价

APPROVE,范围限定为这个完整、可回滚的补缺提案。 long_horizon 与 user_experience 均有改善证据:原操作能继续、后来结果不会回滚,旧权限不能复活,现有设置可以从拒绝走到备份迁移和真实读回;这不等于持续容量或实际团队采用已验证。

从原问题重新衡量,净删旧生产职责比维持两套执行语义更有价值;保留原始回执所需的少量恢复不是保留整个 legacy 策略。现有 typed owner 足够,没有新增框架。118 文件的成本主要是迁移仍有价值的测试,未靠测试数或删行数认定完成。后续最重要的是 Duang 采用后的组合资格与既有历史验收,而不是再建立平行 PR 或恢复无调用者的兼容层。没有本轮未修复的有界实现阻塞;合并、发布和质量放行仍是独立门。

English verdict: APPROVE — 7867467: canonical two-policy cutoff, original-operation recovery and obsolete-writer removal form a justified bounded increment. Current176 real-path tests and four assertion-killed fence counterfactuals pass; final42-provider and normal-wheel evidence is byte-qualified. Historical/cohort qualification and final-head CI remain explicit holds, with no merge or release authorization.

Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
@huangruiteng

Copy link
Copy Markdown
Collaborator

@Duang777,能否邀请 @huangruiteng 成为 Duang777/loopx 的协作者,并授予可合并 PR 的 Write 权限?目前该账号对 fork 只有 Read 权限,无法合并这里的 PR(包括 #2)。

权限仅用于这个 fork 的 PR 整合;合并前仍会遵守相应的评审、验证和分支保护要求。不需要 Admin 权限。谢谢!

@huangruiteng

Copy link
Copy Markdown
Collaborator

给 @loopx-agent 也加下

@loopx-agent loopx-agent left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewer: model_agent — gpt-6-astra / OpenAI; runtime_reported; reasoning effort xhigh.

Approval conclusion (author-owned PR; GitHub blocks formal self-approval)

Exact head: 8cad0cb2ac5443c1790b12989cc9641db14065d1; base: 876458efcc85256ac43161b9c3ff0c69cf9227cf. 这次重新判断完整提案,并单独审查上一提交后的测试迁移;旧批准结论不作为本次依据。

动机

维护者和自动化 Agent 需要把旧任务迁入 canonical 存储,并继续完成有合法授权的工作。

旧操作已经成功却丢失响应时,直接删除旧路径会让重试失败;反过来,接受旧租约回执作为现行权限又会放行已退役策略。本次将历史恢复与新的执行授权分开,并让旧测试真正经过现行存储。

合法原操作可以恢复,后来写入不被回滚;legacy 记录仍可查和按原身份释放,但不能申请或证明新的执行权限。经备份和确认迁移后,调用者使用现行策略继续工作。

本 PR 不宣称整个 C1/T4 退役或长期容量验收完成,也不授权发布、合并、默认 provider 切换或迁移活跃 Goal。 Duang 尚需采用补缺并验证组合提交;完整历史快照演练、实际外部 Host/Lark 与多开发者采用、持续容量验收仍开放。

上一轮局部验证有遗漏:5 个未迁移测试文件仍把显式或缺省 legacy 当作当前可执行策略,导致 41 项失败。这个提交补齐它们,既保留有效行为验证,也确认被退役的策略会拒绝执行;没有为了让测试通过恢复旧策略。

改动思路

新执行权由现有 TypeScript 策略和事务 owner 统一决定;旧文件路径只承担已证明需要的读取、原操作恢复与精确释放,因此删除多余 Python 决策和写入代码是合理的。

当前 PR 交付两种现行策略的执行截止、必要历史恢复和可用的备份迁移入口;完整历史采用、持续容量以及 Duang 采用后的组合资格继续由既有验收负责。

沿用 CLI/Chat/Monitor/MCP → 当前 canonical 存储 → TypeScript 决策与事务 → 回执和独立读回的路径。Python 保留适配、历史读取和原操作恢复。用户选择的策略是输入意图;能否执行则由真实策略、任务、租约及验收状态判断。旧成功回执本身不能授权新的工作。

触发 当前结果
新执行或当前授权证明 soft_claim 使用有效归属;hard_lease 还需当前租约
legacy 记录或旧成功回执 可历史读取;不能取得或证明当前执行
已提交或效果字节匹配的原操作重试 在原身份和锁下恢复,保留后来写入
历史清理与迁移 精确释放;备份、计划、确认、迁移和读回;迁移不发租约

表格解释当前源码关系,并非执行证据。真实调用验证覆盖释放到迁移再到新执行的正向路径,也覆盖错误身份、过期、后来 generation、provider 故障和陈旧预览。设置复用现有页面,不新增平行状态或策略开关。

具体改动

整个 PR 为 123 文件,+4749/−2985。生产职责的删除仍包括旧 Python 租约 writer/factory、generation/CAS helpers、owner 准入桥、无调用 Todo projection 和孤立 prototype;原始记录读取、精确释放、原操作恢复、Markdown 显示与显式迁移仍有消费者。测试数量和删除量都不是完成标准。

关键代码:

  • handoff_mode_policy.ts 的 retiredHandoffModeRejection 统一当前策略截止;claim、update、terminal、Monitor 和执行证明复用它。
  • lease_acquisition_proof.ts 的 currentLeaseAcquisitionProof 重新检查当前策略和原租约 lineage;MCP 恢复即使持有旧“不需要租约”记录也不能跳过。
  • work_items/task_lease_lifecycle.ts 在原锁内核对原 receipt 和实际效果字节;fresh renew/transfer 拒绝,release 仍保留身份、版本和 promotion fence。
  • todo_terminal_lifecycle.ts 保留原子完成、释放和后继;普通持有者不因无关 delegation 配置失效,真正 delegated 操作仍记录理由,公共 reclaim 仍拒绝。

完整范围还包括 Chat 将预览 revision 绑定到原操作身份并验证竞争,设置等待写入后的读回,原 Turn 的已解码 vision 恢复,Host 清理的一秒期限,以及 completion/Explore/issue-fix/demo 的 canonical 调用适配。CI 源码解释器准备、help 分类和 mutation 定位修复均已纳入范围。

最后一批仅改变 5 个现有测试文件,+43/−17:Todo update、Monitor、receipt-only claim 的正向 fixture 明确使用 soft_claim;租约执行、恢复与 deferral 使用 hard_lease。goal acceptance 分别检查 soft claim 和 hard lease,不以错误策略提前拒绝来冒充验收约束。legacy 分支保留拒绝、无 receipt/authority 写入及不泄漏旧 proof 的断言。HandoffMode 直接复用现有类型。

验收基准为提交 876458efcc85256ac43161b9c3ff0c69cf9227cf 的 docs/reference/local-authority-provider-selection.md,结合当时的 handoff、TS migration RFC 和整体 roadmap;新增说明不反过来充当验收来源:

  • Canonical store with legacy ownership policy — implemented:当前授权截止与历史恢复分离,真实 provider、CLI 及原始回执证据覆盖。
  • CLI and App canonical Todo mutations — implemented:归属、角色、Actor、原子释放、重试、Chat CAS 和迁移读回保留。
  • Markdown projection, reviewed source import and backup recovery — implemented:显示、显式迁移和原操作恢复保留,失败不回落旧 writer。
  • T4 — deferred(整体退出条件):当前删除及有界恢复成立,完整历史快照演练仍不具备资格。
  • R5 — deferred(持续与默认采用):真实外部 Host/Lark、多开发者、持续容量和默认 promotion 仍需既有验收。

对主干的风险

最大风险仍是两端:删除过度会卡住已经完成的原操作;保留过度会把历史记录变成当前权限。历史 fixtures 来自原始 1.x 提交 60d833b13c85135587b725013b247e827663ffb9,不能由候选版本自己生成回执再证明兼容。原锁、fence、CAS、后来写入与完全相同操作身份必须继续生效。

本次本地完整 TypeScript 验证在最终 5 个文件的相同字节上运行:5033 项中 5032 通过、0 失败、1 跳过,约 512 秒;Node 24.21.0,隔离 PostgreSQL 17.11,真实 File/SQLite/PG 以及 NoKV transport。跳过项是需要另设 LOOPX_TEST_POSTGRES_SERVICE_URL 的 service integration;它不是已运行的 PG store 集成,也不声称已通过。最低支持 Node 22.22.3 的 SQLite admission 与 lifecycle 18/18 通过、零跳过。

原 786 提交的相同五文件为 125 项、41 失败;第一轮迁移后剩 1 个 acceptance fixture 策略不当,最终用分开的软归属和硬租约 fixture 修正。所有原归属、过期、CAS、验收和恢复约束保留。附加反例将唯一 legacy 拒绝 guard 暂时改为不拒绝:正常代码 3/3 通过,变异后 3/3 因 AssertionError 失败,随后逐字节恢复源码。安装缺 tsx、初始缺少本地 inventory 报告等 setup 失败单独保留,没有当作产品缺陷或变异杀死证据。

从 786 到本提交,产品、依赖、界面和既有 Python 验证文件逐字节不变,因此复用其原来源的 176 项实际 CLI/File/SQLite/Chat/MCP 验证、42 项最终 provider 验证、四组 fence 反例,以及普通非 editable wheel 的 27 模块字节匹配、84+8 项验证;这些数量不相加、不改称本轮重跑。packaged 设置迁移和先前 Host/config 配对反例仍按各自 revision、平台和失效条件保留。5 个新 fixture 的完整套件填补了此前局部验证的遗漏。

语义 advisory、完整 inventory 检查、generated binding 检查、类型检查与 diff 检查通过。advisory 没发现新生产 vocabulary carrier 不代表自动证明语义等价。机器强制的 2.0 截止与可选恢复建议清楚区分;现有关闭配置保持关闭,迁移不取得执行权。此前广泛历史快照演练的 serializer/read-model 不匹配仍是 unqualified。

本次 review packet 的 wait_for_ci=false;评审期间没有获取、轮询或等待 CI。作者完整 CI 和组合提交的资格仍是独立门。Duang 的 parent loopx-project#6396 与 main 的冲突也没有被补缺 PR 文本可合并性解决。

我的整体评价

APPROVE,针对这个完整且可回滚的补缺提案。 重新看原问题,保留历史恢复而删除旧执行职责仍比双轨执行更合适;最新测试修正复用已有案例,未增加生产框架。先前局部通过不足以证明全部旧测试已迁移,本轮发现、归因并修复了这个缺口。

长期继续工作和用户操作两方面都有具体改善:原操作可恢复且不回滚后续状态,历史权限不能复活,用户能在已有设置中完成备份迁移和读回。当前123文件的成本主要来自必要的测试迁移和历史契约验证;没有以大 diff 或绿测试替代需求判断。下一步仍是贡献者采用、组合后的资格,以及既有历史/外部采用验收。没有发现本轮尚未修复的有界实现阻塞;不授予合并、发布、活跃 Goal 迁移或持续容量通过的权限。

English verdict: APPROVE — 8cad0cb. Canonical retirement preserves original-operation recovery while refusing legacy execution. Whole-PR evidence is re-evaluated; final-tree5032 tests pass with one explicit service-URL skip, minimumNode18 pass, and three deliberate policy mutants fail assertions. Final CI, contributor adoption and broader historical/cohort qualification remain separate holds.

Copy link
Copy Markdown
Owner

@huangruiteng 你好,已经向 @huangruiteng 和 @loopx-agent 发送了协作者邀请,麻烦抽空接受一下。接受后应该就能合并 PR 了,如果权限还有问题随时告诉我。谢谢!

(本条由 Hark 代 @Duang777 发送)

…urce records

Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>

@loopx-agent loopx-agent left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewer: model_agent — gpt-6-astra / OpenAI; runtime_reported; reasoning effort xhigh.

Approval conclusion (author-owned PR; GitHub blocks formal self-approval)

Exact head: dcdb7305a44234436036584e6f4133d7a81ce6ba; base: 876458efcc85256ac43161b9c3ff0c69cf9227cf. 本次重新判断完整提案,并独立审查8cad之后的演练修正;旧批准结论不作为本次依据。

动机

维护者和自动化 Agent 需要把旧任务迁入 canonical 存储,并继续完成有合法授权的工作。

旧操作已经成功却丢失响应时,直接删除旧路径会让重试失败;反过来,接受旧租约回执作为现行权限又会放行已退役策略。本次将历史恢复与新的执行授权分开,并让旧测试真正经过现行存储。

合法原操作可以恢复,后来写入不被回滚;legacy 记录仍可查和按原身份释放,但不能申请或证明新的执行权限。经备份和确认迁移后,调用者使用现行策略继续工作。

本 PR 不宣称整个 C1/T4 退役或长期容量验收完成,也不授权发布、合并、默认 provider 切换或迁移活跃 Goal。 Duang 尚需采用补缺并验证组合提交;完整历史快照演练、实际外部 Host/Lark 与多开发者采用、持续容量验收仍开放。

上一轮局部验证有遗漏:5 个未迁移测试文件仍把显式或缺省 legacy 当作当前可执行策略,导致 41 项失败。这个提交补齐它们,既保留有效行为验证,也确认被退役的策略会拒绝执行;没有为了让测试通过恢复旧策略。

本轮再检查发现演练本身有三个过时假设:把 legacy 当可执行策略,期待基线重启失败,以及只读到有关联的归档。现在在临时样本中使用 soft_claim/hard_lease,四组共用恢复断言并比较完整最终状态,调用既有完整源读取和 Unicode 排序。删除过时的基线专用分支,没有增加生产 owner、配置或迁移机制。

改动思路

新执行权由现有 TypeScript 策略和事务 owner 统一决定;旧文件路径只承担已证明需要的读取、原操作恢复与精确释放,因此删除多余 Python 决策和写入代码是合理的。

当前 PR 交付两种现行策略的执行截止、必要历史恢复和可用的备份迁移入口;完整历史采用、持续容量以及 Duang 采用后的组合资格继续由既有验收负责。

沿用 CLI/Chat/Monitor/MCP → 当前 canonical 存储 → TypeScript 决策与事务 → 回执和独立读回的路径。Python 保留适配、历史读取和原操作恢复。用户选择的策略是输入意图;能否执行则由真实策略、任务、租约及验收状态判断。旧成功回执本身不能授权新的工作。

触发 当前结果
新执行或当前授权证明 soft_claim 使用有效归属;hard_lease 还需当前租约
legacy 记录或旧成功回执 可历史读取;不能取得或证明当前执行
已提交或效果字节匹配的原操作重试 在原身份和锁下恢复,保留后来写入
历史清理与迁移 精确释放;备份、计划、确认、迁移和读回;迁移不发租约

表格解释当前源码关系,并非执行证据。真实调用验证覆盖释放到迁移再到新执行的正向路径,也覆盖错误身份、过期、后来 generation、provider 故障和陈旧预览。设置复用现有页面,不新增平行状态或策略开关。

具体改动

整个 PR 为 125 文件,+4779/−3007。生产职责的删除仍包括旧 Python 租约 writer/factory、generation/CAS helpers、owner 准入桥、无调用 Todo projection 和孤立 prototype;原始记录读取、精确释放、原操作恢复、Markdown 显示与显式迁移仍有消费者。测试数量和删除量都不是完成标准。

关键代码:

  • handoff_mode_policy.ts 的 retiredHandoffModeRejection 统一当前策略截止;claim、update、terminal、Monitor 和执行证明复用它。
  • lease_acquisition_proof.ts 的 currentLeaseAcquisitionProof 重新检查当前策略和原租约 lineage;MCP 恢复即使持有旧“不需要租约”记录也不能跳过。
  • work_items/task_lease_lifecycle.ts 在原锁内核对原 receipt 和实际效果字节;fresh renew/transfer 拒绝,release 仍保留身份、版本和 promotion fence。
  • todo_terminal_lifecycle.ts 保留原子完成、释放和后继;普通持有者不因无关 delegation 配置失效,真正 delegated 操作仍记录理由,公共 reclaim 仍拒绝。

完整范围还包括 Chat 将预览 revision 绑定到原操作身份并验证竞争,设置等待写入后的读回,原 Turn 的已解码 vision 恢复,Host 清理的一秒期限,以及 completion/Explore/issue-fix/demo 的 canonical 调用适配。CI 源码解释器准备、help 分类和 mutation 定位修复均已纳入范围。

最后一批仅改变 5 个现有测试文件,+43/−17:Todo update、Monitor、receipt-only claim 的正向 fixture 明确使用 soft_claim;租约执行、恢复与 deferral 使用 hard_lease。goal acceptance 分别检查 soft claim 和 hard lease,不以错误策略提前拒绝来冒充验收约束。legacy 分支保留拒绝、无 receipt/authority 写入及不泄漏旧 proof 的断言。HandoffMode 直接复用现有类型。

验收基准为提交 876458efcc85256ac43161b9c3ff0c69cf9227cf 的 docs/reference/local-authority-provider-selection.md,结合当时的 handoff、TS migration RFC 和整体 roadmap;新增说明不反过来充当验收来源:

  • Canonical store with legacy ownership policy — implemented:当前授权截止与历史恢复分离,真实 provider、CLI 及原始回执证据覆盖。
  • CLI and App canonical Todo mutations — implemented:归属、角色、Actor、原子释放、重试、Chat CAS 和迁移读回保留。
  • Markdown projection, reviewed source import and backup recovery — implemented:显示、显式迁移和原操作恢复保留,失败不回落旧 writer。
  • T4 — deferred(整体退出条件):当前删除及有界恢复成立,完整历史快照演练仍不具备资格。
  • R5 — deferred(持续与默认采用):真实外部 Host/Lark、多开发者、持续容量和默认 promotion 仍需既有验收。

本轮补充 authority-monitor-poll-rehearsal.py 和协议说明:基线须支持相同存储格式与 Monitor 重启;完整源快照包括不被引用的归档。这里显式构造的策略转换只属于隔离 fixture,不能解释为真实策略迁移。

对主干的风险

最大风险仍是两端:删除过度会卡住已经完成的原操作;保留过度会把历史记录变成当前权限。历史 fixtures 来自原始 1.x 提交 60d833b13c85135587b725013b247e827663ffb9,不能由候选版本自己生成回执再证明兼容。原锁、fence、CAS、后来写入与完全相同操作身份必须继续生效。

上一轮8cad的本地完整 TypeScript 验证在最终 5 个文件的相同字节上运行:5033 项中 5032 通过、0 失败、1 跳过,约 512 秒;Node 24.21.0,隔离 PostgreSQL 17.11,真实 File/SQLite/PG 以及 NoKV transport。跳过项是需要另设 LOOPX_TEST_POSTGRES_SERVICE_URL 的 service integration;它不是已运行的 PG store 集成,也不声称已通过。最低支持 Node 22.22.3 的 SQLite admission 与 lifecycle 18/18 通过、零跳过。

原 786 提交的相同五文件为 125 项、41 失败;第一轮迁移后剩 1 个 acceptance fixture 策略不当,最终用分开的软归属和硬租约 fixture 修正。所有原归属、过期、CAS、验收和恢复约束保留。附加反例将唯一 legacy 拒绝 guard 暂时改为不拒绝:正常代码 3/3 通过,变异后 3/3 因 AssertionError 失败,随后逐字节恢复源码。安装缺 tsx、初始缺少本地 inventory 报告等 setup 失败单独保留,没有当作产品缺陷或变异杀死证据。

从 786 到本提交,产品、依赖、界面和既有 Python 验证文件逐字节不变,因此复用其原来源的 176 项实际 CLI/File/SQLite/Chat/MCP 验证、42 项最终 provider 验证、四组 fence 反例,以及普通非 editable wheel 的 27 模块字节匹配、84+8 项验证;这些数量不相加、不改称本轮重跑。packaged 设置迁移和先前 Host/config 配对反例仍按各自 revision、平台和失效条件保留。5 个新 fixture 的完整套件填补了此前局部验证的遗漏。

语义 advisory、完整 inventory 检查、generated binding 检查、类型检查与 diff 检查通过。advisory 没发现新生产 vocabulary carrier 不代表自动证明语义等价。机器强制的 2.0 截止与可选恢复建议清楚区分;现有关闭配置保持关闭,迁移不取得执行权。此前跨旧格式的历史快照演练仍未资格化。本轮修正的是受支持基线上的合成源 Monitor 演练;它不关闭完整历史迁移验收。

本次 review packet 的 wait_for_ci=false;评审期间没有获取、轮询或等待 CI。作者完整 CI 和组合提交的资格仍是独立门。Duang 的 parent loopx-project#6396 与 main 的冲突也没有被补缺 PR 文本可合并性解决。

当前新增验证:以明确合成的12条源记录(4条独立归档、长文本和Unicode)及3条保留租约运行真实File、SQLite、隔离PostgreSQL17.11和贡献者基线876四组;最终完整状态一致,原源字节未变,失效proof、过期执行、混合编辑、dry-run、原操作重放与新执行epoch均断言通过。16项cold-source读取/导入测试通过。相同输入下旧helper失败;故意去掉完整归档读取后只捕获8条,独立12条记录要求能发现遗漏。这是有界合成验收,既不是真实用户快照,也不是全部迁移验收。

8cad到当前只有这两文件变化,产品、UI、工作流、依赖和既有测试均经Git字节比较不变。上述5032项、最低Node18项、176项CLI及安装态证据保留各自原revision和平台边界,未声称本轮重跑。新增helper、16项调用者回归、语义advisory及全树inventory检查在当前字节执行;未获取CI。

我的整体评价

APPROVE,针对这个完整且可回滚的补缺提案。 重新看原问题,保留历史恢复而删除旧执行职责仍比双轨执行更合适;最新测试修正复用已有案例,未增加生产框架。先前局部通过不足以证明全部旧测试已迁移,上一轮已发现并修复这些fixture;本轮进一步修正完整源演练的覆盖缺口。

长期继续工作和用户操作两方面都有具体改善:原操作可恢复且不回滚后续状态,历史权限不能复活,用户能在已有设置中完成备份迁移和读回。当前125文件的成本主要来自必要的测试迁移和历史契约验证;没有以大 diff 或绿测试替代需求判断。下一步仍是贡献者采用、组合后的资格,以及既有历史/外部采用验收。本轮修正提升了验收可信度并删除过时测试分支;它不增加生产结构,也不把测试夹具的策略切换当成实际迁移成功。没有发现本轮尚未修复的有界实现阻塞;不授予合并、发布、活跃 Goal 迁移或持续容量通过的权限。

English verdict: APPROVE — dcdb730. The whole canonical-retirement supplement preserves original-operation recovery and rejects legacy execution. Current synthetic12-record/3-lease four-arm Monitor recovery and16 source tests pass; the original helper and archive-omission controls expose the prior gaps. Unchanged runtime evidence remains revision-bound. Full author CI, contributor adoption, actual historical migration and Host/cohort acceptance remain separate.

Preserve canonical recovery and admission assertions, combine Pages permission checks, and remove the duplicate completion-proof fixture initialization introduced by automatic merging.

Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>

@loopx-agent loopx-agent left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approval conclusion (author-owned PR; GitHub blocks formal self-approval)

Reviewer: model_agent; gpt-6-astra; OpenAI; runtime_reported; reasoning_effort=xhigh.

结论:APPROVE;当前未发现阻塞这份补缺提案的代码问题。 本次评审覆盖整个 d294f70ab3ea01757da5b3212b3bc18c7e396f6f..2bb6a72b94582825f8aa2d5997ae4641f96ccdc8,重新核对合入 main 后的调用链与证据,不沿用旧 head 的批准。该结论只适用于上述提交,不包含合并或发布授权。

动机

维护者和自动化 Agent 需要把旧任务迁入 canonical 存储,并继续完成有合法授权的工作。

这里的 canonical 是由选定存储统一保存、并通过同一事务规则修改的任务权威状态。旧操作已经成功却丢失响应时,直接删除旧路径会让重试失败;反过来,接受旧租约回执作为现行权限又会放行已退役策略。本次将历史恢复与新的执行授权分开,并让旧测试真正经过现行存储。

合法原操作可以恢复,后来写入不被回滚;legacy 记录仍可查和按原身份释放,但不能申请或证明新的执行权限。经备份和确认迁移后,调用者使用现行策略继续工作。

本 PR 不宣称整个 C1/T4 退役或长期容量验收完成,也不授权发布、合并、默认 provider 切换或迁移活跃 Goal。 Duang 尚需采用补缺并验证组合提交;完整历史快照演练、实际 Host/Lark 与多开发者采用、持续容量及发布验收仍开放。

规格依据是已接受基线 d294f70ab3ea01757da5b3212b3bc18c7e396f6f 的 docs/reference/local-authority-provider-selection.md,并结合该基线的 handoff-mode、TS migration 与整体 roadmap。补丁中新添的解释不能作为自己的正确性依据。逐项结论:

  • Canonical store with legacy ownership policy:当前执行只接受 soft_claim / hard_lease;旧 mode 解码和原回执恢复保留,legacy 不再产生当前执行 proof。
  • CLI and App canonical Todo mutations:现有 typed owner 处理真实归属、终态、原子释放和独立读回;Chat 确认绑定已审核的 provider revision,过期预览拒绝。
  • Markdown projection, reviewed source import and backup recovery:保留读取、原操作恢复、精确释放与有备份的审核迁移;不恢复正常 Markdown writer。
  • T4:这批退役有真实调用方搜索、固定 1.x 数据和现行入口验证;完整历史来源与安装采用验收仍未关闭。
  • R5:本地/隔离后端资格与持续容量、真实 Host、默认推广资格继续分别判断。

改动思路

新执行权由现有 TypeScript 策略和事务 owner 统一决定;旧文件路径只承担已证明需要的读取、原操作恢复与精确释放,因此删除多余 Python 决策和写入代码是合理的。

当前 PR 交付两种现行策略的执行截止、必要历史恢复和可用的备份迁移入口;完整历史采用、持续容量以及 Duang 采用后的组合资格继续由既有验收负责。

下面是依据当前源码归纳的分支表,方便核对边界;它不是测试证据:

请求 当前路径和结果
新 claim/update/complete、Monitor、acquire/renew/transfer 读取当前 provider/policy;legacy 在产生新执行或写入前拒绝
原来的 committed 回执,或 prepared 且效果字节完全吻合 在原身份、原锁和字节校验下恢复;不能用它覆盖后来状态或得到新权限
精确 release 保留 owner/key/version 校验及 promotion fence;释放历史执行,不授予新的执行
审核后的 policy 迁移 先处理原执行,再 backup/plan/migrate;保留任务与历史,随后另行申请当前执行

存储选择与 ownership policy 是不同轴:已有 File Goal 不因升级被强制换成 SQLite;soft_claim 也不能偷偷沿用 hard lease proof。MCP 在首次启动及 running 恢复时都询问 typed inspection;旧记录中的“无需租约”不能绕过已退役策略。没有新增手工同步状态、配置开关、CLI 或平行 Python 决策源。

具体改动

  1. retiredHandoffModeRejection 是统一的 mode 截止规则,claim/update/terminal/Monitor、acquisition proof 和 lease lifecycle 复用它。inspectTaskLease 保留原记录但明确无有效执行;execution_policy.supported 只表达策略支持,显式不授予 authority。
  2. ordinaryOperation / executeTaskLeaseLifecycle 将原回执恢复与 fresh source mutation 分开。committed 与 prepared-matching 分支先验证原身份和效果;不存在、不同 intent、后续 generation 或不匹配字节都不能补发旧执行。release 仍受原 CAS/fence 约束。
  3. terminal owner 接受与已保存 claim 一致的只读事实来修复导入完成元数据;不同 claim、夹带新内容/策略仍拒绝。真实 delegation grant 才能越过普通 claim owner,且理由写入原回执;无关坏 grant 不应阻断合法持有者。Chat 的 _bound_todo_review_preview 将预览操作和当前存储 revision 绑定,避免确认时另造身份。
  4. 旧测试的有价值语义迁到 canonical 或固定 1.x artifact:owner/claim、过期与错误 proof、并发/CAS、完成时释放、succession、原回执与后来写入都保留。删除的是只验证已退役 producer 的构造路径及无实际调用方的治理原型;Python 的旧 lease writer/factory/CAS/owner 链和二次 Todo projection 同时删除,避免为了造 fixture 而保留生产写入口。
  5. 同一条验证路径暴露的 consumer 修复也保留:issue-fix 从实际返回的 Todo 取归属;研究失败后继以原失败 lineage 去重并校验历史 parent;Turn journal 的已解码 Vision 重新经过现有 typed 校验,fresh Host 不能冒充 journal;process-group 清理不把空快照或超时后的“消失”当成成功。settings 中英文说明明确 2.0 的 disabled-creation 行为,相关协议、RFC、manpage 与 smoke 环境同步。

本次 diff 为 121 个文件,+4647/-2978;其中生产/交付 33 个文件 +338/-1370,验证 79 个文件 +4130/-1571,文档与生成 manpage 9 个文件。测试增加主要用于保留真实语义,不是新增运行框架。110 个补缺路径与旧提交字节一致(含两个仍删除的文件);另外 11 个路径及 main 带来的调用方变化重新审查。基线已经包含的设置读回修复不再计作本 PR 独立贡献。

对主干的风险

最强反例是“历史成功被误当成当前授权”,其次是“一刀切删除后无法恢复已成功操作”。当前测试分别验证:旧 mode 加旧 active lease 仍不能更新;精确 release 后审核迁移才能用新 epoch 工作;迁移重试不覆盖后来写入;prepared/running delegation 的旧 no-lease 标注不能启动 Host;固定 1.x 原 receipt 能恢复且 intent 修改被拒绝。

本轮在 2bb6a72b94582825f8aa2d5997ae4641f96ccdc8 重跑的证据:

  • 真实 CLI / File / SQLite / Chat / delegation 五组 176 项通过、0 跳过。
  • 13 个 typed 测试文件 209 项通过;初次 3 个 PostgreSQL inspection 跳过项,随后在隔离真实 PostgreSQL 16.15 的完整 inspection 文件中补跑,15 项通过、0 跳过。
  • 四个独立副本中的 fence 变体:对照均成功,去掉 fence、截断 TS/Python 恢复指引、泄露错误 envelope 的变体均被断言捕获;不是导入失败或超时冒充有效反例。

同一最终 tree 的集成证据还包括:executor 90、completion proof 21、lease CLI 14、六个受影响 smoke、真实 PostgreSQL store 363 / service 11,以及 typecheck、semantic advisory 后的完整 inventory、manpage 和打包前端的真实后端读回。集成中曾有重复 canonical fixture 导致 21 个失败,删除重复初始化后全部通过;service 初次误用 store 测试数据库触发 incarnation 拒绝,改用独立数据库后通过,未弱化保护。

早期 baseline/head、正常 wheel、policy UI 和最小 Node 证据保留各自 revision 与平台限制:本次通过 blob、依赖和 caller 核对复用,而非宣称旧执行发生在新 head。main 的锁、settlement、HTTP 和设置外层改变后,使用上述当前测试及集成读回重新覆盖交汇处。本评审遵循 wait_for_ci=false,没有获取、轮询或等待 GitHub CI;最终 CI 由作者资格步骤独立跟进。

尚未证明完整历史 Goal/selected-store 采用、所有真实 Host/Lark、多开发者持续使用及冻结的 D2/D3 容量要求。此前 D2 失败没有因本轮通过而变成成功;这些是现有更大验收的开放边界,不是把无关长期实验强塞进这份补缺的理由。

我的整体评价

这份 PR 的价值已经从“保留旧实现”收敛到“让 Duang 的退役路线可靠落地”:减少生产代码,同时守住现行执行、历史恢复和迁移后的继续工作。仅删除全部旧测试会丢掉这些约束;保留整个旧 writer 家族又会延续重复权威。当前选择复用既有 typed owner,删除无调用的内部写路径,保留有真实持久化消费者的读取/恢复,成本与问题相称。

未发现需要继续扩展框架或维持 loopx-project#6366 竞争实现的理由。已应用相关的未来维护清理;保留历史 reader 的退出条件是其持久化消费者完成受支持迁移,不能仅按代码行数删除。建议按贡献者主线采用这份补缺,随后在实际组合提交上继续已有验收。批准这份有界提案不代表 Duang 已采用、长期退役已完成或可以自动合并发布。

English verdict: APPROVE - 2bb6a72. No blocking finding in the bounded canonical-retirement supplement: current core176, typed209, real PostgreSQL inspection15 and four assertion-killed fence mutants pass; same-tree integration evidence covers PostgreSQL store/service and affected caller paths. Historical evidence remains revision-scoped. Contributor adoption, broader historical/Host/capacity qualification and merge/release authority remain separate.

Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>

@loopx-agent loopx-agent left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approval conclusion (author-owned PR; GitHub blocks formal self-approval)

Reviewer: model_agent; gpt-6-astra; OpenAI; runtime_reported; reasoning_effort=xhigh.

结论:APPROVE;当前未发现阻塞这份补缺提案的代码问题。 本次评审覆盖整个 d9665e6bd2d27f37f6e2408be78cf77e3f15ab21..83b63aed3bc823418ea20bc6bffcf55341cbe014,重新核对 Duang 最新提交、冲突整合、CI 修复与证据,不沿用旧 head 的批准。该结论只适用于上述提交,不包含合并或发布授权。

动机

维护者和自动化 Agent 需要把旧任务迁入 canonical 存储,并继续完成有合法授权的工作。

这里的 canonical 是由选定存储统一保存、并通过同一事务规则修改的任务权威状态。旧操作已经成功却丢失响应时,直接删除旧路径会让重试失败;反过来,接受旧租约回执作为现行权限又会放行已退役策略。本次将历史恢复与新的执行授权分开,并让旧测试真正经过现行存储。

合法原操作可以恢复,后来写入不被回滚;legacy 记录仍可查和按原身份释放,但不能申请或证明新的执行权限。经备份和确认迁移后,调用者使用现行策略继续工作。

本 PR 不宣称整个 C1/T4 退役或长期容量验收完成,也不授权发布、合并、默认 provider 切换或迁移活跃 Goal。 Duang 尚需采用补缺并验证组合提交;完整历史快照演练、实际 Host/Lark 与多开发者采用、持续容量及发布验收仍开放。

规格依据是已接受基线 d9665e6bd2d27f37f6e2408be78cf77e3f15ab21 的 docs/reference/local-authority-provider-selection.md,并结合该基线的 handoff-mode、TS migration 与整体 roadmap。补丁中新添的解释不能作为自己的正确性依据。逐项结论:

  • Canonical store with legacy ownership policy:当前执行只接受 soft_claim / hard_lease;旧 mode 解码和原回执恢复保留,legacy 不再产生当前执行 proof。
  • CLI and App canonical Todo mutations:现有 typed owner 处理真实归属、终态、原子释放和独立读回;Chat 确认绑定已审核的 provider revision,过期预览拒绝。
  • Markdown projection, reviewed source import and backup recovery:保留读取、原操作恢复、精确释放与有备份的审核迁移;不恢复正常 Markdown writer。
  • T4:这批退役有真实调用方搜索、固定 1.x 数据和现行入口验证;完整历史来源与安装采用验收仍未关闭。
  • R5:本地/隔离后端资格与持续容量、真实 Host、默认推广资格继续分别判断。

改动思路

新执行权由现有 TypeScript 策略和事务 owner 统一决定;旧文件路径只承担已证明需要的读取、原操作恢复与精确释放,因此删除多余 Python 决策和写入代码是合理的。

当前 PR 交付两种现行策略的执行截止、必要历史恢复和可用的备份迁移入口;完整历史采用、持续容量以及 Duang 采用后的组合资格继续由既有验收负责。

下面是依据当前源码归纳的分支表,方便核对边界;它不是测试证据:

请求 当前路径和结果
新 claim/update/complete、Monitor、acquire/renew/transfer 读取当前 provider/policy;legacy 在产生新执行或写入前拒绝
原来的 committed 回执,或 prepared 且效果字节完全吻合 在原身份、原锁和字节校验下恢复;不能用它覆盖后来状态或得到新权限
精确 release 保留 owner/key/version 校验及 promotion fence;释放历史执行,不授予新的执行
审核后的 policy 迁移 先处理原执行,再 backup/plan/migrate;保留任务与历史,随后另行申请当前执行

存储选择与 ownership policy 是不同轴:已有 File Goal 不因升级被强制换成 SQLite;soft_claim 也不能偷偷沿用 hard lease proof。MCP 在首次启动及 running 恢复时都询问 typed inspection;旧记录中的“无需租约”不能绕过已退役策略。没有新增手工同步状态、配置开关、CLI 或平行 Python 决策源。

具体改动

关键代码讲解

  1. retiredHandoffModeRejection 是统一的 mode 截止规则,claim/update/terminal/Monitor、acquisition proof 和 lease lifecycle 复用它。inspectTaskLease 保留原记录但明确无有效执行;execution_policy.supported 只表达策略支持,显式不授予 authority。
  2. ordinaryOperation / executeTaskLeaseLifecycle 将原回执恢复与 fresh source mutation 分开。committed 与 prepared-matching 分支先验证原身份和效果;不存在、不同 intent、后续 generation 或不匹配字节都不能补发旧执行。release 仍受原 CAS/fence 约束。
  3. terminal owner 接受与已保存 claim 一致的只读事实来修复导入完成元数据;不同 claim、夹带新内容/策略仍拒绝。真实 delegation grant 才能越过普通 claim owner,且理由写入原回执;无关坏 grant 不应阻断合法持有者。Chat 的 _bound_todo_review_preview 将预览操作和当前存储 revision 绑定,避免确认时另造身份。
  4. 旧测试的有价值语义迁到 canonical 或固定 1.x artifact:owner/claim、过期与错误 proof、并发/CAS、完成时释放、succession、原回执与后来写入都保留。删除的是只验证已退役 producer 的构造路径及无实际调用方的治理原型;Python 的旧 lease writer/factory/CAS/owner 链和二次 Todo projection 同时删除,避免为了造 fixture 而保留生产写入口。
  5. 同一条验证路径暴露的 consumer 修复也保留:issue-fix 从实际返回的 Todo 取归属;研究失败后继以原失败 lineage 去重并校验历史 parent;Turn journal 的已解码 Vision 重新经过现有 typed 校验,fresh Host 不能冒充 journal;process-group 清理不把空快照或超时后的“消失”当成成功。settings 中英文说明明确 2.0 的 disabled-creation 行为,相关协议、RFC、manpage 与 smoke 环境同步。

本次完整 diff 为123个文件、+4620/-2952;生产与交付33个文件+336/-1371,验证81个文件+4097/-1545,文档/manpage9个文件。相对上轮评审,123个补缺路径中116个字节未变;全部14个提交增量路径另行核对,包含父分支继承的设置异步回调和发布 fixture 修复。没有把贡献者已有修复重复计作本补缺的贡献。

这次冲突解决采用 Duang 的 canonical record fixture,保留我们的 File/SQLite 参数化覆盖;导入完成记录的测试显式声明 soft_claim,仍分别验证无原结算回执的 scoped identity 被拒绝、合法 unscoped 元数据可修复。测试改动没有恢复旧 writer 或放宽实际准入。

对主干的风险

主要风险仍是把历史成功误当成当前授权,或一刀切删除后无法恢复原操作。当前 TypeScript policy/provider/lifecycle 与 Host 执行 owner 及相关依赖在此增量中未变,因此保留2bb提交上的176项真实CLI/File/SQLite/Chat测试、209项typed测试、真实隔离PostgreSQL inspection15/store363/service11,以及四项有效fence变体证据;这些是经过失效核查后的历史证据,不是83b上的重复执行或沿用批准。

本轮验证集中于真正变化的交汇处:

  • 合并测试初次168项中166通过;两项失败均因fixture未声明策略而先被legacy截止拦住。补齐源frontmatter后,最终replan/fence及CI策略套件167项全部通过,包含这两项;计数有重叠。
  • 六个原失败Public Smoke入口全部本地通过,另加full-public workflow smoke通过。安装测试实际执行初始、新鲜和过期安装三条路径。
  • dashboard TypeScript编译、当前Chat包构建、真实隔离后端的打包界面设置读回/失败重试通过;开发界面同场景也通过。最初尝试了不存在的npm typecheck脚本,随后运行实际tsc通过。
  • changed-diff语义建议检查后执行完整inventory,语义值冲突为0;公开边界与diff检查通过。没有新增共享词汇、状态来源或生产策略。

语义与 CI 对齐

旧2bb完整Public Smokes的失败真实存在,不能用更早的514项通过覆盖。两个提示词断言仍要求已退役的“两次停滞”规则,现按既有“服从当前replan/stop、禁止按唤醒次数推断”契约校验;帮助分类取消重复归类;工作流安装pyproject已声明的test extra,包含YAML读取依赖;发布时间线补记已核实的v1.4.1。六个失败入口中的canary失败是安装断言的下游影响。生产策略没有为绿灯退回旧行为。

本评审遵守wait_for_ci=false,未在评审阶段查询或等待CI。作者已另行启动新提交的完整Python/Public/PG资格任务,但这些仍待完成;本地通过不代表完整CI已绿。完整历史Goal/selected-store采用、实际Host/Lark、多开发者持续使用及冻结D2/D3仍未证明,保持既有验收边界。

我的整体评价

这份 PR 的价值已经从“保留旧实现”收敛到“让 Duang 的退役路线可靠落地”:减少生产代码,同时守住现行执行、历史恢复和迁移后的继续工作。仅删除全部旧测试会丢掉这些约束;保留整个旧 writer 家族又会延续重复权威。当前选择复用既有 typed owner,删除无调用的内部写路径,保留有真实持久化消费者的读取/恢复,成本与问题相称。

未发现需要继续扩展框架或维持 loopx-project#6366 竞争实现的理由。已应用相关的未来维护清理;保留历史 reader 的退出条件是其持久化消费者完成受支持迁移,不能仅按代码行数删除。建议按贡献者主线采用这份补缺,随后在实际组合提交上继续已有验收。批准这份有界提案不代表 Duang 已采用、长期退役已完成或可以自动合并发布。

English verdict: APPROVE - 83b63ae. No blocking finding in the whole bounded supplement. Contributor updates and conflicts are integrated; all six failing public smoke entrypoints, merged fixture regressions, current packaged readback and static checks pass. Unchanged-owner evidence remains pinned to2bb. Full hosted CI, contributor adoption, broader historical/Host/capacity qualification and merge/release authority remain separate.

@huangruiteng
huangruiteng merged commit 4aaec2d into Duang777:codex/remove-legacy-markdown-callers-20261012 Oct 15, 2026
@huangruiteng
huangruiteng deleted the codex/duang-canonical-validation-20261014 branch October 15, 2026 10:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants