From 819ea03386af5117f1fc851c788ed456aa8fea2b Mon Sep 17 00:00:00 2001 From: LoopX Agent <337587101+loopx-agent@users.noreply.github.com> Date: Thu, 15 Oct 2026 23:52:43 +0800 Subject: [PATCH 1/2] refactor(authority): share current execution target type Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com> --- apps/presentation/dashboard/src/data/chat.ts | 4 ++-- loopx/control_plane/coordination/handoff_mode_migration.ts | 4 ++-- loopx/control_plane/coordination/handoff_mode_policy.ts | 2 +- loopx/control_plane/coordination/handoff_mode_vocabulary.ts | 2 ++ 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/apps/presentation/dashboard/src/data/chat.ts b/apps/presentation/dashboard/src/data/chat.ts index 28de57040f..cb5b66fba5 100644 --- a/apps/presentation/dashboard/src/data/chat.ts +++ b/apps/presentation/dashboard/src/data/chat.ts @@ -1,4 +1,4 @@ -import { HANDOFF_MODES, EXECUTION_HANDOFF_MODES } from "../../../../../loopx/control_plane/coordination/handoff_mode_vocabulary.js"; +import { HANDOFF_MODES, EXECUTION_HANDOFF_MODES, type ExecutionHandoffMode } from "../../../../../loopx/control_plane/coordination/handoff_mode_vocabulary.js"; import { normalizeGoalDraft } from "../../../../../loopx/control_plane/collaboration/goal_draft.js"; import { parseTurnStep, type TurnStep } from "./turn-steps.js"; import { z } from "zod"; @@ -2466,7 +2466,7 @@ export const ownershipPreviewSchema = z.object({ }); export type GoalOwnership = z.infer; export type OwnershipPreview = z.infer; -export type ExecutionOwnershipMode = typeof EXECUTION_HANDOFF_MODES[number]; +export type ExecutionOwnershipMode = ExecutionHandoffMode; export async function fetchGoalOwnership(goalId: string) { return goalOwnershipSchema.parse(await requestJson(`/api/chat/goal-ownership?${new URLSearchParams({goal_id: goalId})}`)); diff --git a/loopx/control_plane/coordination/handoff_mode_migration.ts b/loopx/control_plane/coordination/handoff_mode_migration.ts index ef0f96af50..5bb21118f0 100644 --- a/loopx/control_plane/coordination/handoff_mode_migration.ts +++ b/loopx/control_plane/coordination/handoff_mode_migration.ts @@ -11,7 +11,7 @@ import {AuthorityStoreProtocolError, canonicalAuthorityObject, canonicalAuthorit import {exportAuthorityArchive, verifyAuthorityArchive, type AuthorityArchiveSummary} from "./authority_archive.ts"; import {syncAuthorityDirectory} from "./file_authority_store.ts"; import {CoordinationCommandReceipt} from "./command_receipt.ts"; -import {HANDOFF_MODES, EXECUTION_HANDOFF_MODES} from "./handoff_mode_policy.ts"; +import {HANDOFF_MODES, EXECUTION_HANDOFF_MODES, type ExecutionHandoffMode} from "./handoff_mode_policy.ts"; import {planHandoffPolicyMigration} from "./handoff_policy_migration.ts"; import {normalizeRegisteredTodoAgents} from "./todo_agents.ts"; @@ -29,7 +29,7 @@ interface ReviewedPlan extends JsonObject { schema_version: typeof PLAN_SCHEMA; goal_id: string; runtime_root: string; - requested_mode: typeof EXECUTION_HANDOFF_MODES[number]; + requested_mode: ExecutionHandoffMode; registered_agents: string[]; source: JsonObject; } diff --git a/loopx/control_plane/coordination/handoff_mode_policy.ts b/loopx/control_plane/coordination/handoff_mode_policy.ts index 89ee2b30a6..74c4484126 100644 --- a/loopx/control_plane/coordination/handoff_mode_policy.ts +++ b/loopx/control_plane/coordination/handoff_mode_policy.ts @@ -3,7 +3,7 @@ import type {JsonObject} from "../effect_program.ts"; import {requireJsonObject, requireStringArray, requireStringLiteral} from "../runtime_decode.ts"; import {HANDOFF_MODES, type HandoffMode} from "./handoff_mode_vocabulary.ts"; -export {HANDOFF_MODES, EXECUTION_HANDOFF_MODES, type HandoffMode} from "./handoff_mode_vocabulary.ts"; +export {HANDOFF_MODES, EXECUTION_HANDOFF_MODES, type HandoffMode, type ExecutionHandoffMode} from "./handoff_mode_vocabulary.ts"; export const HANDOFF_MODE_PLAN_SCHEMA = "loopx_handoff_mode_plan_request_v0"; import type {PersistedHandoffMode} from "./handoff_mode_facts.ts"; diff --git a/loopx/control_plane/coordination/handoff_mode_vocabulary.ts b/loopx/control_plane/coordination/handoff_mode_vocabulary.ts index b9899eb8aa..a5d40ac56e 100644 --- a/loopx/control_plane/coordination/handoff_mode_vocabulary.ts +++ b/loopx/control_plane/coordination/handoff_mode_vocabulary.ts @@ -2,4 +2,6 @@ export const HANDOFF_MODES = ["legacy", "soft_claim", "hard_lease"] as const; /** New configuration targets. legacy remains readable for upgrade and receipts. */ export const EXECUTION_HANDOFF_MODES = ["soft_claim", "hard_lease"] as const; +/** Historical state and receipt decoding, including the retired mode. */ export type HandoffMode = typeof HANDOFF_MODES[number]; +export type ExecutionHandoffMode = typeof EXECUTION_HANDOFF_MODES[number]; From 6683c746e2a18a2d609a1e0152a4360431e4db4d Mon Sep 17 00:00:00 2001 From: LoopX Agent <337587101+loopx-agent@users.noreply.github.com> Date: Thu, 15 Oct 2026 23:52:43 +0800 Subject: [PATCH 2/2] docs(authority): reconcile retirement candidate and historical checkpoints Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com> --- .../2026-09-28-retirement-cadence.md | 34 ++++++++-- .../2026-09-28-retirement-cadence.zh-CN.md | 32 ++++++++-- .../typescript-control-plane-migration-v0.md | 62 ++++++++++++------- ...script-control-plane-migration-v0.zh-CN.md | 45 ++++++++++---- 4 files changed, 127 insertions(+), 46 deletions(-) diff --git a/docs/architecture/rfcs/ledger/shared-goal-authority-state-provider-v0/2026-09-28-retirement-cadence.md b/docs/architecture/rfcs/ledger/shared-goal-authority-state-provider-v0/2026-09-28-retirement-cadence.md index 73357e4622..6caff20507 100644 --- a/docs/architecture/rfcs/ledger/shared-goal-authority-state-provider-v0/2026-09-28-retirement-cadence.md +++ b/docs/architecture/rfcs/ledger/shared-goal-authority-state-provider-v0/2026-09-28-retirement-cadence.md @@ -1,11 +1,33 @@ # Local authority: retirement cadence after integration -- Current plan: October 7, 2026, `06b6caa07`; historical audit: `ce3862e33`; adoption follow-up: `71525ab90`, September 28, 2026; [中文](2026-09-28-retirement-cadence.zh-CN.md). +- Current candidate checkpoint: October 15, 2026, #6396 at `5d29213d3`; historical 1.x plan: October 7, 2026, `06b6caa07`; historical audit: `ce3862e33`; adoption follow-up: `71525ab90`, September 28, 2026; [中文](2026-09-28-retirement-cadence.zh-CN.md). - Owners: overall roadmap R3/R4/R5/R6; shared authority D1–D3; TS migration T0–T4. - This replaces the **current inventory/estimates** in the September 27 recovery and Host-supervision ledgers, not their historical validation results. -## Reconciled baseline + + +## Current candidate checkpoint (2026-10-15) + +The C1/T4 deletion package is implemented in contributor-led +[#6396](https://github.com/loopx-project/loopx/pull/6396) at reviewed head +`5d29213d3`, including the fork supplements and +[absorbed #6366 obligations](../../../../reference/local-authority-provider-selection.md#retirement-proposal-reconciliation). +This is an open 2.0 candidate, not the released additive 1.x baseline. + +| Boundary | Candidate fact | Remaining work / retained obligation | +| --- | --- | --- | +| Ordinary Markdown mutation and capture producers | Obsolete writer implementations, including `todos/legacy_mutation.py`, `todos/line_update.py` and `runtime_shadow_writer_adapter.py`, are absent. Canonical creation/mutation, team-plan, Monitor and lease callers use existing typed owners. | Integrate and qualify the adopted source; do not create another writer-deletion task from the historical table. Keep permanent document/display IO and supported import/recovery. | +| Ownership policy | Fresh execution/configuration targets are `soft_claim` / `hard_lease`; typed runtime admission and proof inspection reject live `legacy` execution. | Historical three-value decoding, original receipts, exact release and reviewed backed-up policy migration remain. Qualify real installed migration and affected Host/App consumers separately. | +| Source and outbox recovery | Normal producer retirement does not erase prepared/committed history. | Preserve original receipt/cursor recovery and reconcile or explicitly disposition outstanding outboxes before removing their readers. Storage conversion does not complete ownership migration. | +| Adoption and release | Exact-head review and selected combined-tree validation are recorded with source revisions in the PR. | The reversible core-developer trial, natural Host use, Goal-instance lifetime/recovery and formal D2/D3/default evidence keep their existing owners and open exits. Retain failed/missing rows; mocks, elapsed mixed-version use or a PR merge cannot replace them. | + +Use this table and the [TS current frontier](../../typescript-control-plane-migration-v0.md#current-delivery-frontier-2026-10-02) +for new work. The dated records below preserve their original source-specific +measurements and dependency decisions; claims that old writers are reachable +refer to those earlier baselines and must not regenerate completed candidate work. + +## Historical reconciled baseline | Already merged | What no longer belongs in the remaining-work count | | --- | --- | @@ -27,12 +49,12 @@ reimplementing them. Their scopes are dependencies only for affected callers; local default does not wait for unrelated cloud or hundred-Agent work. **File as the default store factory is not File as the default authority for -all new/existing Goals.** Unpromoted Markdown writers remain reachable. Two +all new/existing Goals.** At this historical baseline, unpromoted Markdown writers remained reachable. Two successful Goal migrations, or File↔SQLite transfer, do not prove their absence. No fixed “5–8 PRs remaining” is carried forward: below are named delivery and qualification boundaries, not a promise about defect count or merge count. -## When and how to delete +## Historical last-caller inventory and deletion rules | Boundary | Actual reachable code/caller | Earliest safe deletion and retained obligation | | --- | --- | --- | @@ -126,9 +148,9 @@ C1, D2 and release-default adoption remain separate acceptance boundaries. -## Current closeout: validation, migration and deletion (2026-10-07) +## Historical closeout plan: validation, migration and deletion (2026-10-07) -Rechecked against main `06b6caa07` and the linked merged PRs. This is the current +Rechecked against main `06b6caa07` and the linked merged PRs. This was the execution plan for **R5 / D1–D3 / T0–T4**, replacing the previous A–D schedule; older measurements remain source-specific evidence. R6 is a separate successor. Storage format, authority selection and ownership policy are three distinct diff --git a/docs/architecture/rfcs/ledger/shared-goal-authority-state-provider-v0/2026-09-28-retirement-cadence.zh-CN.md b/docs/architecture/rfcs/ledger/shared-goal-authority-state-provider-v0/2026-09-28-retirement-cadence.zh-CN.md index 5901bc2c8e..6a5ec13c22 100644 --- a/docs/architecture/rfcs/ledger/shared-goal-authority-state-provider-v0/2026-09-28-retirement-cadence.zh-CN.md +++ b/docs/architecture/rfcs/ledger/shared-goal-authority-state-provider-v0/2026-09-28-retirement-cadence.zh-CN.md @@ -1,11 +1,31 @@ # 合并后的本地权威退役节奏 -- 当前计划:2026-10-07,`06b6caa07`;历史核对基线:`ce3862e33`;采用后续核对:`71525ab90`,2026-09-28;[English](2026-09-28-retirement-cadence.md)。 +- 当前候选 checkpoint:2026-10-15,#6396 `5d29213d3`;历史 1.x 计划:2026-10-07,`06b6caa07`;历史核对基线:`ce3862e33`;采用后续核对:`71525ab90`,2026-09-28;[English](2026-09-28-retirement-cadence.md)。 - Owner:总 roadmap R3/R4/R5/R6、shared authority D1–D3、TS 迁移 T0–T4。 - 本记录替代 9 月 27 日 recovery、Host supervision 记录的**当前清单和估算**, 不替代其历史验证结果。 -## 重新核对的基线 + + +## 当前候选 checkpoint(2026-10-15) + +贡献者主导的 [#6396](https://github.com/loopx-project/loopx/pull/6396),已评审 head +`5d29213d3`,已实现 C1/T4 删除包,纳入 fork 补缺及 +[#6366 已吸收义务](../../../../reference/local-authority-provider-selection.md#retirement-proposal-reconciliation)。 +这是开放的 2.0 候选,不是已发布的兼容 1.x 基线。 + +| 边界 | 候选现状 | 剩余工作/保留义务 | +| --- | --- | --- | +| 普通 Markdown mutation 与 capture producer | 废弃 writer 实现已不存在,包括 `todos/legacy_mutation.py`、`todos/line_update.py` 和 `runtime_shadow_writer_adapter.py`;canonical 创建/写入、team-plan、Monitor 及 lease caller 使用既有 typed owner。 | 集成并验证采用后的源码,不从历史表再创建 writer 删除任务;保留永久文档/显示 IO 及受支持的导入/恢复。 | +| 所有权策略 | fresh 执行/配置目标为 `soft_claim`/`hard_lease`;typed runtime 准入及 proof inspect 拒绝 live `legacy` 执行。 | 历史三值解码、原回执、精确 release 与有备份的审核策略迁移保留;真实安装迁移及受影响 Host/App 消费者分别验证。 | +| Source/outbox 恢复 | 普通 producer 退役不抹去 prepared/committed 历史。 | 保留原 receipt/cursor 恢复;删除 reader 前对账或明确处置未完成 outbox。存储转换不等于所有权迁移完成。 | +| 采用与发布 | PR 按源码 revision 记录精确 head 评审及选定组合 tree 验证。 | 可回退核心开发者试用、自然 Host 使用、Goal-instance 生命周期/恢复及正式 D2/D3/默认资格沿用原 owner 与开放出口;保留失败/缺失项,mock、混合版本经过时间或 PR 合并都不能替代。 | + +新工作以本表及 [TS 当前交付边界](../../typescript-control-plane-migration-v0.zh-CN.md#当前交付边界2026-10-02) +为准。下方具名历史记录保留原源码上的测量与依赖判断;“旧 writer 仍可达” +只描述当时基线,不能再次派生候选已经实现的工作。 + +## 历史核对基线 | 已合并 | 不再计入剩余工作的内容 | | --- | --- | @@ -25,11 +45,11 @@ 不等待无关云端或百 Agent 工作。 **File 是默认 store factory,不等于所有新旧 Goal 默认以 File 为权威。** -未晋升的 Markdown writer 仍可达。两个 Goal 迁移成功、或 File↔SQLite 传输成功, +在这个历史基线上,未晋升的 Markdown writer 仍可达。两个 Goal 迁移成功、或 File↔SQLite 传输成功, 都不能证明旧 writer 已没有消费者。本轮不再沿用“还剩 5–8 个 PR”;以下列出的是 交付和验证边界,不承诺缺陷数量或合并数量。 -## 什么时候删、怎么删 +## 历史最后调用方清单与删除规则 | 边界 | 真实可达的代码/调用方 | 最早删除条件及保留义务 | | --- | --- | --- | @@ -109,10 +129,10 @@ Host IO;C1、D2 和发布默认采用仍是独立验收边界。 -## 当前收尾:验证、迁移与删除(2026-10-07) +## 历史收尾计划:验证、迁移与删除(2026-10-07) 按 main `06b6caa07` 和所列已合并 PR 重新核对。本节是 **R5 / D1–D3 / T0–T4** -的当前执行计划,替代旧 A–D 排期;历史测量仍只适用于原源码和负载。R6 单独推进。 +的当时执行计划,替代旧 A–D 排期;历史测量仍只适用于原源码和负载。R6 单独推进。 存储格式、权威选择、所有权策略是三种不同迁移:有 SQLite 数据库,不代表新 Goal 已经默认使用 canonical authority,也不代表 `legacy` handoff 策略已经退役。 diff --git a/docs/architecture/rfcs/typescript-control-plane-migration-v0.md b/docs/architecture/rfcs/typescript-control-plane-migration-v0.md index e09dab7ca2..a505028a8b 100644 --- a/docs/architecture/rfcs/typescript-control-plane-migration-v0.md +++ b/docs/architecture/rfcs/typescript-control-plane-migration-v0.md @@ -31,7 +31,46 @@ T0–T4, not additional provider promotion or completed migration claims. -## Current delivery frontier (2026-10-12) +## Current delivery frontier (2.0 candidate, 2026-10-15) + +Contributor-led [#6396](https://github.com/loopx-project/loopx/pull/6396), +at reviewed head `5d29213d3`, carries the C1/T4 normal-Markdown-writer cutoff +and live `legacy` ownership-policy retirement. It incorporates the fork +supplements and the valuable #6366 invariants and recovery checks documented in +[the absorption map](../../reference/local-authority-provider-selection.md#retirement-proposal-reconciliation). +The candidate removes the obsolete writer implementations and capture producers; +canonical mutation, creation, team-plan, Monitor and lease consumers reuse their +existing typed owners. Do not schedule those deletions again from the older +writer inventory below. The additive 1.x line and an open 2.0 proposal remain +different delivery baselines; this checkpoint does not claim a released cutoff. + +New execution/configuration targets share `ExecutionHandoffMode`, derived from +`EXECUTION_HANDOFF_MODES` (`soft_claim` / `hard_lease`). Historical `HandoffMode` +and receipt codecs still recognize `legacy`. The typed policy owner refuses +fresh legacy execution, acquire/maintenance and current-proof grants, including +delegation launch/resume; exact historical receipt recovery, release and +reviewed backup/plan/migrate remain supported. Storage conversion and ownership +migration remain distinct. No active Goal is migrated by this proposal. + +Current work is candidate integration and adoption qualification, not another +writer extraction: retain the compatible 1.x upgrade/backup/recovery route, +finish the bounded reversible core-developer trial and affected real Host/App +journeys, and keep formal D2 failures/missing evidence and release-default +qualification open. Permanent Markdown document/display IO, historical readers +and outstanding receipt/outbox disposition are retained obligations. A passing +conversion drill does not establish natural adoption or Goal-instance retirement. + +Use the [current retirement ledger](ledger/shared-goal-authority-state-provider-v0/2026-09-28-retirement-cadence.md#current-candidate-checkpoint) +for that frontier. [Exact-head review](https://github.com/loopx-project/loopx/pull/6396#pullrequestreview-5535116423) +and [combined-tree evidence](https://github.com/loopx-project/loopx/pull/6396#issuecomment-6195855339) +retain their source revisions; they do not certify an untested later head/base, +a completed installed cohort or all RFC acceptance. + +### Historical 1.x prerequisite checkpoints (through 2026-10-12) + +The following records explain the prerequisites and validation at their named +sources. Their references to reachable writers and a “next” cutoff describe +that 1.x baseline, not remaining implementation work in the candidate above. Rechecked at main `38cb407ed`: #5413/#5466/#5283 and the affected creation, Host-stop and UI-history owners #5500/#5805/#5308/#5398 are merged. Reuse @@ -127,27 +166,6 @@ The existing delivery Todos should carry these concrete exits: This updates the existing R5/T4 frontier and release proposal; it creates no parallel migration owner, runtime gate or release activation. -The retirement proposal is now reconciled through contributor-led #6396 and -its fork supplement #2. The [absorption map](../../reference/local-authority-provider-selection.md#retirement-proposal-reconciliation) -retains canonical ownership/terminal invariants, fixed 1.x receipt recovery, -reviewed App creation and the actual-contention mutation oracle from #6366. -The competing implementation stack is not an integration prerequisite; adopted -combined-head validation, core trial, real Host and D2/release exits stay open. - - -The same C1/T4 boundary now retires the live `legacy` ownership policy rather -than preserving a third execution strategy. The existing TS policy owner rejects -fresh claim/update/terminal/Monitor admission and execution fences; acquire and -lease maintenance share that rule. Current-proof readback and inspection cannot -turn a retained lease or original receipt into execution. Delegation consumes the -same typed support before launch/resume, including old no-lease-required records; -source inspection no longer carries a second Todo-admission projection. Historical mode decoding, -original-operation recovery, exact release and reviewed backup/plan/migrate remain. -Normal fixtures use soft/hard independently of their legacy/native wire shape; -explicit legacy-policy negatives and retained 1.x artifacts preserve that boundary. -No live Goal is changed by this proposal. Adopted combined-head qualification, -installed policy migration, real Host adoption and D2/release remain open. - Team-plan recovery prerequisite: an unpromoted plan that published its original receipt can now recover through the Chat confirmation owner while shadow bootstrap is interrupted. Registry/Todo/source locks still protect the read, diff --git a/docs/architecture/rfcs/typescript-control-plane-migration-v0.zh-CN.md b/docs/architecture/rfcs/typescript-control-plane-migration-v0.zh-CN.md index 6c130225eb..a4f97c2a68 100644 --- a/docs/architecture/rfcs/typescript-control-plane-migration-v0.zh-CN.md +++ b/docs/architecture/rfcs/typescript-control-plane-migration-v0.zh-CN.md @@ -29,7 +29,39 @@ R1–R3 的 TS 消费者包括 App 产品路径,不只 CLI 结算。 -## 当前交付边界(2026-10-07) +## 当前交付边界(2.0 候选,2026-10-15) + +贡献者主导的 [#6396](https://github.com/loopx-project/loopx/pull/6396), +已评审 head `5d29213d3`,承接 C1/T4 普通 Markdown writer 截止与 live `legacy` +所有权策略退役,已纳入 fork 补缺及 #6366 中有价值的不变量和恢复检查,见 +[吸收清单](../../reference/local-authority-provider-selection.md#retirement-proposal-reconciliation)。 +候选已删除废弃 writer 实现及 capture producer;canonical mutation、创建、 +team-plan、Monitor 和 lease 消费者复用既有 typed owner。不能根据下方旧清单 +再次派生同样的删除工作。兼容的 1.x 线和仍开放的 2.0 提案是不同交付基线; +本 checkpoint 不宣称截止行为已发布。 + +新执行/配置目标统一使用 `ExecutionHandoffMode`,从既有 +`EXECUTION_HANDOFF_MODES`(`soft_claim`/`hard_lease`)派生;历史 `HandoffMode` +及回执 codec 仍识别 `legacy`。typed 策略 owner 拒绝 fresh legacy 执行、 +acquire/维护及当前 proof 授权,包括 delegation 启动/恢复;历史原回执恢复、 +精确 release 与有备份的 plan/migrate 保留。存储转换和所有权迁移仍是不同操作; +提案不自动迁移任何活跃 Goal。 + +当前工作是候选集成与采用验证,不是再做 writer extraction:保留兼容 1.x 的 +升级/备份/恢复路线,完成有界可回退核心开发者试用及受影响的真实 Host/App +旅程,保持正式 D2 的失败/缺失证据与发布默认资格开放。永久 Markdown 文档/ +显示 IO、历史 reader 及未完成的 receipt/outbox 处置仍需保留。转换演练通过 +不代表自然采用或 Goal-instance 退役完成。 + +后续以[当前退役 ledger](ledger/shared-goal-authority-state-provider-v0/2026-09-28-retirement-cadence.zh-CN.md#current-candidate-checkpoint) +为准。[精确 head 评审](https://github.com/loopx-project/loopx/pull/6396#pullrequestreview-5535116423) +和[组合 tree 证据](https://github.com/loopx-project/loopx/pull/6396#issuecomment-6195855339) +各自保留源码 revision,不认证未验证的后续 head/base、安装 cohort 或全部 RFC 验收。 + +### 历史 1.x 前置 checkpoint(截至 2026-10-12) + +以下记录解释具名源码上的前置条件与验证。“writer 仍可达”及“下一次截止” +描述当时的 1.x 基线,不是上方候选仍未实现的工作。 按 main `06b6caa07` 复核,#5413/#5466/#5283,以及创建、Host 停止、UI 历史 相关 owner #5500/#5805/#5308/#5398 均已合并。复用各自已交付的边界,不重开 @@ -71,17 +103,6 @@ actor/可运行状态/输入拒绝、精确 lineage 读回,以及当前输 隔离路径验证。新能力进入时持续守卫,不把历史库存当永久出口。最后受支持的 旧源 writer、历史恢复、安装 cohort 与发布验收各自保持开放。 -当前 C1/T4 退役提案由贡献者主导的 #6396 及 fork 补缺 #2 承接,#6366 已被替代; -[吸收清单](../../reference/local-authority-provider-selection.md#retirement-proposal-reconciliation) -保留 canonical ownership/终态不变量、固定 1.x 回执恢复、审核后的 App 创建及真实锁竞争 oracle。 -同一 TS 策略 owner 清理第三种 live legacy 执行策略:fresh claim/update/terminal、 -Monitor、执行 fence、acquire 及租约维护拒绝 legacy;当前 proof 读回和 inspect 也不能把 -保留租约或原回执变为执行资格。delegation 首次启动和恢复都消费同一 typed support, -包括旧“无需租约”记录;source inspect 不再二次解析 Todo 准入。历史 mode 解码、原操作恢复、精确 release 与有备份的 -plan/migrate 保留。正常 fixture 使用 soft/hard;legacy/native wire shape 与策略分开, -显式 legacy 拒绝和固定 1.x artifact 继续验证恢复边界。提案不自动修改活跃 Goal。 -采用后的 combined head 验证、安装态策略迁移、真实 Host 采用与 D2/发布保持开放。 - 保留的 import-compatible field writer 在既有 typed field plan 中统一等待条件 归一化及矛盾 clear 拒绝;保持 Python 空白输入省略和锁内 IO,只退役重复的 normalization crossing,不删除仍受支持的 writer 或迁移 reader。