diff --git a/docs/architecture/rfcs/complete-state-recovery-v0.md b/docs/architecture/rfcs/complete-state-recovery-v0.md index 066dcaad8e..6f842878f8 100644 --- a/docs/architecture/rfcs/complete-state-recovery-v0.md +++ b/docs/architecture/rfcs/complete-state-recovery-v0.md @@ -42,6 +42,27 @@ remains partial for compound worst cases and broader platform/provider profiles. This checkpoint does not qualify M2/M3, live adoption, remote providers or the G1 team journey. No original identity or receipt is rewritten. +### Delivery after the writer cutoff (2026-10-16) + +The landed [R5/T4 cutoff](loopx-overall-roadmap-v0.md#post-6396-delivery-plan) +provides a simpler current mutation owner, not a stronger capture profile or +activation receipt. Reuse M1's verifier, safe extraction and readable audit. +The next implementation is the existing M2 for one local File/SQLite profile: +record required component-owner revisions and achieved capture consistency; +exercise concurrent/quiescence/crash and downgrade cases, while v0 remains +readable and incomplete audits remain held. + +Then deliver M3's one-Goal packaged recovery, reusing the Goal-lifetime work in +[#5206](https://github.com/loopx-project/loopx/issues/5206). Before the drill, +freeze owner support, source/destination fencing, the replacement/new-lifetime +decision, effect disposition and RPO/RTO. Original operations, later writes and +unsupported/unknown effects retain their owners; copied leases or provider +identity cannot activate the destination. Return an independently accepted +unfinished-work result through the initiating product entry, with recovered, +lost/unknown work and human interventions recorded. Keep service and additional +platform profiles with M4/M5. This coordination checkpoint implements no M2/M3 +behavior and starts no recovery or activation. + ### First supported user outcome The first bounded user promise is recovery of one local Goal after its source diff --git a/docs/architecture/rfcs/complete-state-recovery-v0.zh-CN.md b/docs/architecture/rfcs/complete-state-recovery-v0.zh-CN.md index 224b3bab4f..b56620bc13 100644 --- a/docs/architecture/rfcs/complete-state-recovery-v0.zh-CN.md +++ b/docs/architecture/rfcs/complete-state-recovery-v0.zh-CN.md @@ -33,6 +33,21 @@ held,未知状态不改称可恢复,执行权限始终为 false。限制与 本检查点不证明 M2/M3、live adoption、远端 provider 或 G1 团队验收,不重写原身份或回执。 +### writer 截止后的交付(2026-10-16) + +已合入的 [R5/T4 截止](loopx-overall-roadmap-v0.zh-CN.md#post-6396-delivery-plan) +简化当前写入归属,不提供更强的捕获 profile 或激活回执。复用 M1 verifier、安全 +解包和可读审计;下一实现沿既有 M2,先做一个本地 File/SQLite profile:记录必要 +组件 owner revision 与实际捕获一致性,覆盖并发/静止/crash/降级;v0 继续可读, +不完整审计继续 held。 + +随后复用 [#5206](https://github.com/loopx-project/loopx/issues/5206) 的 Goal 生命周期 +工作交付 M3 单 Goal 打包恢复。演练前冻结 owner 支持、源/目标 fence、替代延续或 +新生命周期决定、effect 处置和 RPO/RTO。原操作、后写和不支持/未知 effect 各自归 +原 owner;复制 lease 或 provider 身份不能激活目标。在发起产品入口返回独立验收的 +未完成工作结果,记录已恢复、丢失/未知工作和人工介入。服务及额外平台 profile +继续由 M4/M5 承接。本协调检查点未实现 M2/M3,也不启动恢复或激活。 + ### 首个支持的用户结果 首个有界用户承诺是:一个本地 Goal 的来源工作区不可用或不再可信后,用户可以恢复 diff --git a/docs/architecture/rfcs/goal-instance-identity-and-orphan-recovery-v0.md b/docs/architecture/rfcs/goal-instance-identity-and-orphan-recovery-v0.md index 3ae488dc04..847bed4704 100644 --- a/docs/architecture/rfcs/goal-instance-identity-and-orphan-recovery-v0.md +++ b/docs/architecture/rfcs/goal-instance-identity-and-orphan-recovery-v0.md @@ -47,6 +47,26 @@ Goal authorities. This RFC does not approve automatic cleanup of every external provider, automatic candidate selection, or direct mutation of orphan state by ordinary bootstrap. +### Post-merge recovery integration (2026-10-16) + +[#6396](https://github.com/loopx-project/loopx/pull/6396) retires ordinary legacy +source writers in the 2.0 tree. It does not mechanically exclude installed old +binaries, global routes or warm executors, and does not lift this RFC's activation +hold. Continue [#5206](https://github.com/loopx-project/loopx/issues/5206)'s +remaining binding-owner inventory, commit fences and external-effect drain; +reuse delivered codec/source-session/quota owners instead of restarting them. + +Coordinate only the exercised local profile with complete-recovery M2/M3 and +[R5](loopx-overall-roadmap-v0.md#post-6396-delivery-plan). Goal lifetime, provider +incarnation, execution/session generation and lease epoch remain distinct. +Freeze replacement continuity versus a new lifetime through the Goal owner, +then prove that old A cannot write, deliver, debit or settle same-alias B after +recovery. M4 orphan resolution keeps its preview/backup/journal/retry boundary; +M5 adds the real product/peer result and original-route return only after the +profile's M2/M3 fences pass. Component fixtures may precede activation but +cannot certify it. Ordinary supported creation/collaboration need not wait for +all service profiles; this checkpoint grants no activation or recovery authority. + ## 2. Problem and motivation Today one `goal_id` serves as both a display name and a durable identity. A diff --git a/docs/architecture/rfcs/goal-instance-identity-and-orphan-recovery-v0.zh-CN.md b/docs/architecture/rfcs/goal-instance-identity-and-orphan-recovery-v0.zh-CN.md index 997d8a2d0e..bac9a92414 100644 --- a/docs/architecture/rfcs/goal-instance-identity-and-orphan-recovery-v0.zh-CN.md +++ b/docs/architecture/rfcs/goal-instance-identity-and-orphan-recovery-v0.zh-CN.md @@ -41,6 +41,22 @@ Lease 和全局 registry 的角色都不会成为新的 Goal authority。本 RFC 自动清理所有外部 provider、自动选择 candidate,也不允许普通 bootstrap 直接修改孤儿状态。 +### 合入后的恢复集成(2026-10-16) + +[#6396](https://github.com/loopx-project/loopx/pull/6396) 已在 2.0 tree 退役普通 legacy +source writer,但不机械排除已安装旧二进制、global route 或 warm executor,也不 +解除本 RFC 的 activation hold。继续 [#5206](https://github.com/loopx-project/loopx/issues/5206) +剩余 binding-owner 清单、commit fence 和外部 effect drain;复用已交付的 codec/ +source-session/quota owner,不从头重做。 + +只将确实涉及的本地 profile 与完整恢复 M2/M3、[R5](loopx-overall-roadmap-v0.zh-CN.md#post-6396-delivery-plan) +协调。Goal 生命周期、provider incarnation、执行/session generation 和 lease epoch +仍是不同身份。由 Goal owner 冻结替代延续或新生命周期决定,再证明恢复后旧 A 不能 +写入、投递、扣额或结算同名 B。M4 孤儿处置保留 preview/backup/journal/retry +边界;M5 只在本 profile 的 M2/M3 fence 通过后增加真实产品/peer 结果及原路返回。 +组件 fixture 可先于 activation,但不能认证它。已支持的普通创建/协作不等待全部 +服务 profile;本检查点不授予激活或恢复权限。 + ## 2. 问题与动机 当前 `goal_id` 同时承担展示名称和持久身份。Goal 可能已从项目 registry 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 6caff20507..4091daed28 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,31 +1,37 @@ # Local authority: retirement cadence after integration -- 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). +- Current implementation checkpoint: October 16, 2026, #6396 landed at `a4483aaec`; 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. -## Current candidate checkpoint (2026-10-15) +## Current implementation checkpoint (2026-10-16) -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. +Contributor-led [#6396](https://github.com/loopx-project/loopx/pull/6396) landed +at `a4483aaec`, with the same complete tree as final PR head `404433aee`. +The C1/T4 deletion package includes fork supplements, the native Core-version +repair and [absorbed #6366 obligations](../../../../reference/local-authority-provider-selection.md#retirement-proposal-reconciliation). +The compatible 1.4.2 release preceded it; the 2.0 cutoff is now on main, not a +released-default or complete-adoption claim. -| Boundary | Candidate fact | Remaining work / retained obligation | +| Boundary | Landed 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. +| Ordinary Markdown mutation and capture producers | Obsolete writers and ordinary producers are removed; canonical creation/mutation, team-plan, Monitor and lease callers reuse existing typed owners. | Qualify final-main installed callers; do not repeat this deletion family. Keep permanent document IO and supported import/recovery. | +| Ownership and historical recovery | Fresh execution/configuration accepts soft/hard; historical legacy codecs, exact release and original receipts remain. | Exercise affected installed Host/App paths, stale proofs, expired-but-unreleased leases and later-write preservation. Storage conversion is not lifetime adoption. | +| Final combination | The post-#7 source and its installed repair have explicit tree/source mappings; later main merges match automatic trees and include #6597. | [Executed evidence](https://github.com/loopx-project/loopx/pull/6396#issuecomment-6208115093) stays pinned to its revisions. Graph equivalence and merge status do not certify an unexecuted final combination. | +| Full backup and identity | M1 inert verification/readback exists; source/import history stays readable. | Existing complete-recovery M2/M3 and #5206 own capture consistency, lifetime/old-writer/effect drain and controlled adoption. Pending outboxes keep original receipt/cursor/disposition owners. | +| Sustained/default qualification | New-Goal SQLite/hard-lease selection exists in source. | D2 retains formal volume/elapsed failures and missing rows; D3 and shared-authority 7.2 decide cohort versus released default separately. No cohort or soak starts here. | + +Use [R5's post-merge sequence](../../loopx-overall-roadmap-v0.md#post-6396-delivery-plan) +and the [TS current frontier](../../typescript-control-plane-migration-v0.md#current-delivery-frontier-2026-10-02) +for new work. The dated records below retain their original measurements and +dependency judgments. Statements that ordinary source writers are reachable +refer to their older baselines, not unfinished implementation on current main. +Retire further adapters only with actual last-caller/compatibility evidence; +historical recovery and provider/OS IO are not unused merely because writer +retirement landed. ## Historical reconciled baseline 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 6a5ec13c22..55c25c81b3 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,29 +1,32 @@ # 合并后的本地权威退役节奏 -- 当前候选 checkpoint:2026-10-15,#6396 `5d29213d3`;历史 1.x 计划:2026-10-07,`06b6caa07`;历史核对基线:`ce3862e33`;采用后续核对:`71525ab90`,2026-09-28;[English](2026-09-28-retirement-cadence.md)。 +- 当前实现检查点:2026-10-16,#6396 已合入 `a4483aaec`;历史 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) +## 当前实现检查点(2026-10-16) -贡献者主导的 [#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 基线。 +贡献者主导的 [#6396](https://github.com/loopx-project/loopx/pull/6396) 已合入 `a4483aaec`, +与最终 PR head `404433aee` 完整 tree 相同。C1/T4 删除包包含 fork 补缺、原生 Core +版本修复及 [#6366 已吸收义务](../../../../reference/local-authority-provider-selection.md#retirement-proposal-reconciliation)。 +兼容 1.4.2 已先发布;2.0 截止已进入 main,不等于发布默认或完整采用资格完成。 -| 边界 | 候选现状 | 剩余工作/保留义务 | +| 边界 | 已落地事实 | 剩余工作/保留义务 | | --- | --- | --- | -| 普通 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 仍可达” -只描述当时基线,不能再次派生候选已经实现的工作。 +| 普通 Markdown mutation 与 capture producer | 废弃 writer 和普通 producer 已删除;canonical 创建/写入、team-plan、Monitor 和 lease caller 复用既有 typed owner。 | 验证最终 main 的安装 caller,不重做该删除家族;保留永久文档 IO 及受支持导入/恢复。 | +| 所有权与历史恢复 | fresh 执行/配置接受 soft/hard,历史 legacy codec、精确 release 和原回执保留。 | 验证受影响安装 Host/App、旧 proof、过期未释放租约及后写保持;存储转换不等于生命周期接纳。 | +| 最终组合 | #7 后的源码及安装修复有明确 tree/source 对应;后续 main 合并等于自动 tree,并含 #6597。 | [已执行证据](https://github.com/loopx-project/loopx/pull/6396#issuecomment-6208115093) 保留原 revision;图等价和合入状态不认证未执行的最终组合。 | +| 完整备份与身份 | M1 隔离验证/读回已存在,源/导入历史仍可读。 | 既有完整恢复 M2/M3 与 #5206 负责捕获一致性、生命周期/旧 writer/effect drain 及受控接纳;pending outbox 保留原 receipt/cursor/处置 owner。 | +| 持续/默认资格 | 新 Goal 的 SQLite/hard-lease 源码选择已存在。 | D2 保留正式容量/经过时间失败和缺失项;D3 与 shared-authority 7.2 区分 cohort 和发布默认决定;本计划不启动 cohort/soak。 | + +新工作沿 [R5 合入后顺序](../../loopx-overall-roadmap-v0.zh-CN.md#post-6396-delivery-plan) +和 [TS 当前边界](../../typescript-control-plane-migration-v0.zh-CN.md#当前交付边界2026-10-02)。 +下方具名记录保留原测量与依赖判断;“普通源 writer 仍可达”描述其旧基线,不能当作 +当前 main 尚未实现的工作。后续 adapter 删除须有真实最后 caller/兼容证据; +历史恢复、provider/OS IO 不因 writer 已退役而变成无用代码。 ## 历史核对基线 diff --git a/docs/architecture/rfcs/loopx-overall-roadmap-v0.md b/docs/architecture/rfcs/loopx-overall-roadmap-v0.md index e1d63076fb..85fc1124b3 100644 --- a/docs/architecture/rfcs/loopx-overall-roadmap-v0.md +++ b/docs/architecture/rfcs/loopx-overall-roadmap-v0.md @@ -8,7 +8,12 @@ - Ownership: overall product outcomes, cross-domain dependencies, priorities and portfolio acceptance here; concrete rules in domain RFCs/stable protocols; execution state in canonical Todos. - Language: [中文版](loopx-overall-roadmap-v0.zh-CN.md) is the semantic mirror. -**Local authority closeout checkpoint (2026-10-02).** R5/T4 use the [current validation → migration → deletion plan](ledger/shared-goal-authority-state-provider-v0/2026-09-28-retirement-cadence.md#current-closeout-validation-migration-and-deletion-2026-10-02), rechecked at `9b0486dc1`. Close existing #5413/#5466/#5283, qualify one installed reversible candidate, then decide a bounded opt-in cohort separately from release-default admission. Canonical creation, legacy-policy migration and last-writer deletion have named exits; delete replaced Python owners with their last callers. R6 remains separate. No fixed remaining-PR count or historical test count certifies completion. +**Local authority checkpoint (2026-10-16).** Contributor-led #6396 landed the +2.0 normal-writer cutoff and absorbed recovery/native supplements. Continue +[R5's post-merge sequence](#post-6396-delivery-plan): final-main installed +qualification, complete-recovery/lifetime owner integration, and the separate +D2/D3 evidence. Preserve source-pinned history and the compatible 1.4.2 route; +no duplicate writer task, released-default claim or global RFC wait is implied. Conversational preparation from [PR #4376](https://github.com/loopx-project/loopx/pull/4376) is integrated under R1/GQ01 through the existing Chat draft and reviewed Goal @@ -954,6 +959,43 @@ L3 checkpoint: standalone acquisition/takeover, atomic claim admission and maint - **Exit:** use shared-authority Section 7.2's separate decisions for a bounded change, reversible opt-in cohort and released default. Each requires affected real CLI/backend and independent baseline/negative/recovery evidence at its own scope. Formal D2 retains applicable volume and at least ten-day evidence; a cohort need not wait for that certificate. D3 retains explicit cutover authority. This plan runs no soak or provider promotion. - **Rollback:** reviewed fenced export/import and schema-aware downgrade; replacing a binary cannot restore old write authority. + + +#### Post-merge delivery sequence (2026-10-16) + +[#6396](https://github.com/loopx-project/loopx/pull/6396) landed the 2.0 normal +Markdown-writer and live-legacy execution cutoff at `a4483aaec`; final PR head +`404433aee` has the same complete tree. Preserve Duang's contribution and the +absorbed supplements. This closes that implementation family, not R5, an +installed cohort or a released default. The [evidence update](https://github.com/loopx-project/loopx/pull/6396#issuecomment-6208115093) +keeps earlier executed sources separate from the unexecuted final combination. +The dated source checkpoints below must not regenerate completed writer work. + +| Existing milestone / priority | Next independently reviewable outcome | Acceptance and continuation | +| --- | --- | --- | +| T4/C1 + D1 · P1, first | Qualify one pinned final-main source and its normal installed CLI/App/affected local Host upgrade journey, including #6597 restart recovery | Compare complete active/archive records, claims, lease epochs, original receipts and later writes. Exercise expired-but-unreleased leases, stale preview/proof, unavailable provider and interrupted apply; rejection leaves state unchanged. Exit through reviewed migration preserving new writes. Reuse the installed repair evidence only after source/caller applicability checks. | +| Complete recovery M2 → M3 · P1 | Declare capture consistency for one supported local profile, then recover one Goal whose source is unavailable and continue its unfinished work | Reuse manifest/registry/Goal/provider/session/effect owners. Freeze the decision-owner matrix and RPO/RTO before the drill; reconcile pending effects and destination identities. M1 inspection remains inert; M3 requires admitted owners, zero protected duplicate operations, visible holds and a separately accepted result at the initiating product entry. | +| Goal lifetime M2–M5 / #5206 · P1 dependency only where exercised | Finish the selected profile's remaining old/warm-writer and effect-drain fences, then its orphan/retirement-recreation journey | A removed source writer does not exclude installed 1.x binaries or cached executors. Old A must not write, deliver, debit or settle same-alias B; B and unrelated work continue. Keep activation held until the profile's required owner rows pass; do not rebuild the shipped codec or source-session transaction. | +| D2 · P1 alongside the relevant implementation | Explain the remaining complete-command/history-growth costs on matched File/SQLite workloads and reconcile formal volume/elapsed evidence | Separate caller/bridge, shared typed transaction and provider costs. Preserve current-release and pre-migration controls, frozen failures/missing axes, durability, recovery space and ten-day/volume requirements. Do not restart valid elapsed evidence for an unrelated change or launch a new soak from this plan. | +| D3 · after its own evidence | Decide the supported release/default profile with usable upgrade, failure recovery and disable/rollback guidance | New-Goal SQLite/hard-lease selection already exists in source. Qualify it rather than adding a selector. Existing explicit providers stay pinned; an absent provider never selects Markdown. Release/platform support and maintainer authority remain separate. | + +These are the existing RFC milestones, not a new roadmap or global dependency +chain. A reversible developer cohort uses shared-authority Section 7.2's own +recoverable-installation gate; full-backup reactivation claims additionally need +complete-recovery M3. Ordinary R1–R4 delivery on a supported profile does not wait +for all lifetime, cloud or fleet work. Goal workspace/Settings/Task interactions +render the same owners; human administration and Agent execution proof retain +their distinct authority. Companions include real unavailable/retry/readback +paths, not command-copy buttons or another UI decision engine. + +Continue future TS payoff work only on a demonstrated hot transaction: remove +duplicate authority and the last obsolete crossing together, report complete +caller/recovery behavior and end-to-end cost. Retain actual Python provider/OS +IO, format readers and permanent document projection. No new framework, +per-field bridge series, paid run, live migration or release is started here. + +#### Source-specific implementation evidence + Cold-source inventory is now an explicit read-only CLI prerequisite through the same TS source/lease owners. It includes unreferenced archives and retained leases, with full text and source-byte witnesses, before any shadow opt-in. diff --git a/docs/architecture/rfcs/loopx-overall-roadmap-v0.zh-CN.md b/docs/architecture/rfcs/loopx-overall-roadmap-v0.zh-CN.md index e160abeb9f..7d5fbc0950 100644 --- a/docs/architecture/rfcs/loopx-overall-roadmap-v0.zh-CN.md +++ b/docs/architecture/rfcs/loopx-overall-roadmap-v0.zh-CN.md @@ -7,7 +7,10 @@ - 责任:总纲拥有产品目标、跨领域依赖、优先级和组合验收;领域 RFC/稳定协议拥有具体规则;运行 Todo 拥有执行状态。 - 语言:[English](loopx-overall-roadmap-v0.md) 与本文互为语义镜像。 -**本地权威收尾检查点(2026-10-02)。** R5/T4 使用按 `9b0486dc1` 复核的[验证→迁移→删除计划](ledger/shared-goal-authority-state-provider-v0/2026-09-28-retirement-cadence.zh-CN.md#当前收尾验证迁移与删除2026-10-02)。先收尾现有 #5413/#5466/#5283,验证一个安装态可回退候选,再分别决定有界自愿试用和发布默认准入。Canonical 创建、legacy 策略迁移与最后 writer 删除各有明确出口;Python 替代 owner 随最后调用方删除。R6 独立,不用固定剩余 PR 数或历史测试数量证明完成。 +**本地权威检查点(2026-10-16)。** 贡献者主导的 #6396 已落地 2.0 普通 writer +截止并吸收恢复/原生补缺。沿 [R5 合入后顺序](#post-6396-delivery-plan) 推进最终主干 +安装资格、完整恢复/生命周期 owner 集成及独立 D2/D3 证据。保留具名历史和兼容 +1.4.2 路线;不重复创建 writer 任务、不宣称发布默认或全局等待所有 RFC。 **S2/S12 启动诊断检查点(2026-10-04)** 已移至[执行账本](ledger/loopx-overall-roadmap-v0/2026-10-04-s2-s12-startup-diagnostic.zh-CN.md)。 @@ -654,6 +657,38 @@ L3 检查点:独立领取/接管、原子 claim 准入与维护共用 typed le - **退出:** 按 shared-authority 7.2 分别决定有界改动、可回退自愿 cohort、发布默认值,各自在适用范围具备真实 CLI/backend、独立基线、负例和恢复证据。正式 D2 保留适用容量及至少十日证据,cohort 不必等该证书。D3 保留明确切换权限。本计划没有启动 soak 或晋升 provider。 - **回滚:** 按已审阅的 fenced export/import 和 schema-aware downgrade,不能靠替换二进制恢复旧写权威。 + + +#### 合入后的交付顺序(2026-10-16) + +[#6396](https://github.com/loopx-project/loopx/pull/6396) 已在 `a4483aaec` 落地 2.0 +普通 Markdown writer 与 live legacy 执行截止,最终 PR head `404433aee` 完整 tree +相同。保留 Duang 的贡献与已吸收补缺。这关闭该实现家族,不等于 R5、安装 cohort +或发布默认资格完成。[证据记录](https://github.com/loopx-project/loopx/pull/6396#issuecomment-6208115093) +将早期已执行源码与尚未执行的最终组合分开;下方具名源码检查点不能再次派生已完成 +writer 工作。 + +| 既有里程碑/优先级 | 下一独立可评审结果 | 验收与后续 | +| --- | --- | --- | +| T4/C1 + D1 · P1,先做 | 冻结最终 main 源码及正常安装的 CLI/App/受影响本地 Host 升级旅程,包含 #6597 重启恢复 | 比较完整 active/archive、claim、lease epoch、原 receipt 和后写;覆盖过期未释放租约、旧 preview/proof、provider 不可用、中断 apply,拒绝时状态不变;通过审核迁移退出且保留新写。既有安装修复证据先核对源码/caller 适用性再复用。 | +| 完整恢复 M2 → M3 · P1 | 为一个受支持本地 profile 声明捕获一致性,再从不可用来源恢复一个 Goal 并继续未完成工作 | 复用 manifest/registry/Goal/provider/session/effect owner;演练前冻结 decision-owner 矩阵和 RPO/RTO,对账 pending effect 与目标身份。M1 检查仍隔离无执行权;M3 须 owner 准入、受保护重复操作为零、hold 可见,并在发起产品入口返回独立验收的结果。 | +| Goal lifetime M2–M5/#5206 · 仅涉及的 P1 依赖 | 补齐所选 profile 剩余旧/warm writer 和 effect drain fence,再做其孤儿恢复/退役同名重建旅程 | 删除源码 writer 不排除已安装 1.x 二进制或缓存 executor。旧 A 不得写入、投递、扣额或结算同名 B;B 和无关工作仍推进。profile 的必要 owner 行通过前保持 activation hold;不重建已交付 codec/source-session 事务。 | +| D2 · P1,与相关实现并行 | 同负载 File/SQLite 对照归因剩余完整命令/历史增长成本,对账正式容量和经过时间证据 | 分开 caller/bridge、共享 typed 事务和 provider 成本;保留当前 release 与迁移前对照、冻结失败/缺失轴、durability、恢复空间及十日/事务量要求。无关改动不重置有效经过时间证据,本计划不启动新 soak。 | +| D3 · 自身证据齐备后 | 决定受支持发布/默认 profile,具备可用升级、故障恢复及关闭/回退说明 | 新 Goal 的 SQLite/hard-lease 源码选择已存在,应资格化而非再加 selector。既有显式 provider 保持,provider 缺失不选 Markdown;发布/平台支持与维护者权限分别判断。 | + +这里复用既有 RFC 里程碑,不另建 roadmap 或全局依赖链。可回退开发者 cohort 按 +shared-authority 7.2 自身的可恢复安装门槛;完整备份重新激活声明另需完整恢复 M3。 +已支持 profile 上的普通 R1–R4 交付不等待全部生命周期、云端或 fleet 工作。 +Goal workspace/Settings/Task 交互投影同一 owner,人工管理与 Agent 执行 proof +保留各自权限;伴随工作须有真实 unavailable/retry/readback,不以复制命令按钮 +或第二套 UI 决策源代替。 + +后续 TS 收益只针对实证热事务:重复权威与最后废弃跨界一起删除,报告完整 caller/ +恢复行为和端到端成本。保留仍有消费者的 Python provider/OS IO、格式 reader 和 +永久文档投影。本计划不启动新框架、逐字段 bridge 系列、付费运行、live 迁移或发布。 + +#### 具名源码实现证据 + 冷旧 Goal 导入复用既有 TS source/promotion/receipt owner,CLI/App 使用绑定实际 备份字节的预览、明确确认、停写 fence 与原操作恢复。POSIX 人工停止旅程现以真实 owned Host 进程、未晋升源的原生租约和 File/SQLite 验证:进程退出不释放租约, diff --git a/docs/architecture/rfcs/shared-goal-authority-state-provider-v0.md b/docs/architecture/rfcs/shared-goal-authority-state-provider-v0.md index 151a1ae7fc..a9daeb51ad 100644 --- a/docs/architecture/rfcs/shared-goal-authority-state-provider-v0.md +++ b/docs/architecture/rfcs/shared-goal-authority-state-provider-v0.md @@ -24,7 +24,38 @@ [Chinese version](./shared-goal-authority-state-provider-v0.zh-CN.md) and this English version are semantic mirrors. A difference between them is a defect. -## Current delivery frontier (2026-10-02) + + +## Current delivery frontier (post-merge, 2026-10-16) + +[#6396](https://github.com/loopx-project/loopx/pull/6396) landed the deliberate +2.0 normal-writer cutoff at `a4483aaec`. Canonical File/SQLite ownership and the +historical import/recovery obligations remain; this is not retirement of File +as a provider. New-Goal SQLite/hard-lease selection already exists in source, +while installed adoption and released-default qualification remain separate. +The [source-pinned evidence update](https://github.com/loopx-project/loopx/pull/6396#issuecomment-6208115093) +does not certify the unexecuted final combination. Do not restart ordinary +writer deletion or infer a new provider promotion from the merge. + +| Existing owner | Next useful delivery | Decisive exit | +| --- | --- | --- | +| D1 / TS T4-C1 | Final-main installed upgrade and reversible ordinary operation through existing CLI/App/Host owners | Full records/history/claims; stale or expired-but-unreleased execution refused; original-operation recovery preserves later writes and current provider; no Markdown fallback | +| D2 | Attribute remaining matched complete-command and storage-growth gaps, then reconcile formal volume and elapsed qualification | Preserve frozen passed/failed/missing rows, current-release controls and Section 7.2 workload, recovery, headroom and platform evidence; unrelated changes do not restart valid elapsed evidence | +| D3 | Make the supported release/default decision using Section 7.2 evidence | Recoverable installation, creation, migration and rollback on declared profiles; existing explicit providers remain pinned; no implicit migration of old Goals | + +Use [R5's shared delivery sequence](loopx-overall-roadmap-v0.md#post-6396-delivery-plan) +for dependencies. Complete-recovery M2/M3 owns capture and controlled backup +adoption; #5206 owns lifetime/old-writer/effect-drain gaps. Neither ordinary +provider conversion nor copied history grants those owners' authority. A bounded +recoverable cohort uses Section 7.2's own admission; it does not wait for every +RFC or claim formal D2. This checkpoint starts no cohort, soak or promotion. + +The dated checkpoints below retain source-specific implementation and validation +history; instructions to remove still-live writers describe those baselines. + +## Historical 1.x implementation context + +Dated records through 2026-10-12 follow; they retain their original source boundaries. At main `9b0486dc1`, #4931, #5251, #5395, #5417 and #5436 are merged. Do not recount their storage improvements or Python retirement as pending work. diff --git a/docs/architecture/rfcs/shared-goal-authority-state-provider-v0.zh-CN.md b/docs/architecture/rfcs/shared-goal-authority-state-provider-v0.zh-CN.md index 0c9b58aa03..56ae2f6195 100644 --- a/docs/architecture/rfcs/shared-goal-authority-state-provider-v0.zh-CN.md +++ b/docs/architecture/rfcs/shared-goal-authority-state-provider-v0.zh-CN.md @@ -21,7 +21,32 @@ - 语言说明:[英文版](./shared-goal-authority-state-provider-v0.md)与本中文版互为 语义镜像;两者不一致属于缺陷 -## 当前交付边界(2026-10-02) + + +## 当前交付边界(合入后,2026-10-16) + +[#6396](https://github.com/loopx-project/loopx/pull/6396) 已在 `a4483aaec` 落地明确的 +2.0 普通 writer 截止。Canonical File/SQLite 归属和历史导入/恢复义务保留; +这不等于退役 File provider。新 Goal 的 SQLite/hard-lease 源码选择已经存在, +安装采用和发布默认资格仍分别验收。[具名源码证据记录](https://github.com/loopx-project/loopx/pull/6396#issuecomment-6208115093) +不认证尚未执行的最终组合。不重做普通 writer 删除,也不从合入推导 provider 晋升。 + +| 既有 owner | 下一有用交付 | 决定性出口 | +| --- | --- | --- | +| D1/TS T4-C1 | 通过既有 CLI/App/Host owner 验证最终主干的安装升级及可逆日常操作 | 完整记录/历史/claim;旧 proof 或过期未释放执行拒绝;原操作恢复保留后写和当前 provider;无 Markdown fallback | +| D2 | 归因剩余同负载完整命令及存储增长缺口,再对账正式容量与经过时间资格 | 保留冻结 passed/failed/missing、当前 release 对照及 7.2 节负载、恢复、余量、平台证据;无关修改不重置有效经过时间证据 | +| D3 | 依 7.2 节证据作受支持发布/默认决策 | 具名 profile 的可恢复安装、创建、迁移及回退;既有显式 provider 选择保持,不暗迁旧 Goal | + +依赖沿用 [R5 统一交付顺序](loopx-overall-roadmap-v0.zh-CN.md#post-6396-delivery-plan)。 +完整恢复 M2/M3 负责捕获及备份受控接纳,#5206 负责生命周期/旧 writer/effect drain +缺口。普通 provider 转换和复制历史均不授予这些 owner 的权限。可恢复有界 cohort +按 7.2 节自身准入,不等待全部 RFC,也不宣称正式 D2。本检查点不启动 cohort、soak +或晋升。下方具名 checkpoint 保留当时实现和验证历史;“仍活跃 writer 待删除”描述 +对应旧基线。 + +## 历史 1.x 实现背景 + +下方保留截至 2026-10-12 的具名历史记录及各自原源码边界。 按 main `9b0486dc1` 核对,#4931、#5251、#5395、#5417、#5436 已合并, 不再把这些存储改进和 Python 退役重复记作待办。 diff --git a/docs/architecture/rfcs/typescript-control-plane-migration-v0.md b/docs/architecture/rfcs/typescript-control-plane-migration-v0.md index 81b52f9dba..a0e36beb74 100644 --- a/docs/architecture/rfcs/typescript-control-plane-migration-v0.md +++ b/docs/architecture/rfcs/typescript-control-plane-migration-v0.md @@ -4,7 +4,7 @@ - Supersedes / closes: none - Proposed by: LoopX maintainers - Date: 2026-08-15 -- Last revised: 2026-10-15 +- Last revised: 2026-10-16 - Scope: an incremental, replacement-first migration of the LoopX control-plane core from Python to TypeScript without maintaining two semantic implementations @@ -31,57 +31,61 @@ T0–T4, not additional provider promotion or completed migration claims. -## 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. - -The next integration pairs `7c0215f26` with pinned main `77d6b07fb` through a -normal two-parent merge. Keep `2.0.0a1` as the retirement candidate while -carrying the compatible 1.4.2 fixes; preserving source bytes in a one-parent -snapshot would lose the main ancestry needed for a reviewable upstream diff. -Fresh canonical-create checks retain both structured P1 and its compatibility -display, while original receipts keep their recorded intent. Retained outbox -recovery uses the existing native delivery/drain counterexamples after producer -removal. The released-lease cutover check moves to backed-up cold import on -File/SQLite, preserving the complete terminal record, later canonical work and -original-import replay without recreating a source writer. Later main revisions -and installed Host adoption still require their own applicable evidence. +## Current delivery frontier (post-merge, 2026-10-16) + +Contributor-led [#6396](https://github.com/loopx-project/loopx/pull/6396) landed +as `a4483aaece5bc74ec3f969fd067229487022401b`, with final PR head +`404433aee47d6efd92f26202eddbef67831f1036`. Their complete trees match. The +C1/T4 normal-Markdown-writer cutoff includes the fork supplements, the native +Core-version repair and [valuable #6366 obligations](../../reference/local-authority-provider-selection.md#retirement-proposal-reconciliation). +Canonical mutation, creation, team-plan, Monitor and lease consumers reuse +existing typed owners. Ordinary writer and capture-producer deletion is +implemented on main; do not derive another deletion task from older inventories. +The compatible 1.4.2 release preceded this merge. The landed `2.0.0a1` source +boundary is distinct from a released 2.0 cutoff or qualified default. 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 +delegation launch/resume; exact original-operation recovery, release and reviewed +backed-up migration remain supported. File is still a canonical provider; +storage conversion, policy migration and Goal-lifetime adoption are different +operations. No active Goal is migrated by this checkpoint. + +[The post-merge evidence update](https://github.com/loopx-project/loopx/pull/6396#issuecomment-6208115093) +separates executed revisions from the final combination: native repair source +`bf8372b1e` and incorporated `286624b94` have the same complete tree; later main +synchronizations match their automatic merge results, including #6597's native +preview-recovery repair. Graph/tree equivalence does not execute the final +combination. Prior approvals, real-backend results, installed artifacts and +failed/untested cases retain their original revisions and applicability. + +Follow the [existing R5 delivery sequence](loopx-overall-roadmap-v0.md#post-6396-delivery-plan): + +1. Close T4/C1 and D1 adoption on pinned final-main source and normal installed + CLI/App/affected Host entrypoints: complete data, fresh and stale proofs, + original-operation retry, interruption, later writes and reversible migration. + Inspect retained transports by actual caller; native in-process adoption must + delete its obsolete crossing, rather than adding per-field bridges. +2. Extend complete-recovery M2 capture evidence and M3 controlled adoption with + the existing Goal/provider/effect owners. Ordinary import and readable inert + backup are not Goal-lifetime or external-effect reactivation evidence. +3. Continue the existing D2/D3 qualification separately: matched complete-command + costs, formal volume/elapsed evidence and supported release profiles. New-Goal + SQLite/hard-lease selection already exists in source; qualify that behavior + rather than rebuilding the selector or announcing an unqualified default. + +Permanent Markdown document/display IO, historical readers and outstanding +receipt/outbox disposition remain obligations. Delete another adapter only with +its last real caller or an explicit compatibility exit and affected real-path +validation. Use the [retirement ledger](ledger/shared-goal-authority-state-provider-v0/2026-09-28-retirement-cadence.md#current-candidate-checkpoint) +for current ownership; the dated evidence below is not a new work queue. + +### Historical 1.x prerequisite context + +The following records preserve prerequisites and validation at their named +sources through 2026-10-12. 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, 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 4a7cc6dfe2..9e416648be 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 @@ -4,7 +4,7 @@ - 替代 / 关闭:无 - Proposed by:LoopX maintainers - Date:2026-08-15 -- Last revised:2026-10-15 +- Last revised:2026-10-16 - Scope:LoopX 控制面核心从 Python 到 TypeScript 的增量、replacement-first 迁移;不长期维护两份语义实现 - Tracking issue:[#3225](https://github.com/loopx-project/loopx/issues/3225) @@ -29,47 +29,49 @@ R1–R3 的 TS 消费者包括 App 产品路径,不只 CLI 结算。 -## 当前交付边界(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 不宣称截止行为已发布。 - -后续整合以正常双亲 merge 连接 `7c0215f26` 与冻结主干 `77d6b07fb`。 -吸收兼容的 1.4.2 修复时保留退役候选 `2.0.0a1`;仅保留相同源码的单亲 -snapshot 会丢失主干祖先关系,破坏上游 diff 的可评审性。新 canonical 创建 -同时保留结构化 P1 和兼容显示,原回执仍保持记录时的意图。producer 删除后, -历史 outbox 恢复复用既有 native delivery/drain 反例;已释放 lease 的 cutover -检查迁到有备份的 File/SQLite cold import,保留完整终态记录、后续 canonical -工作与原导入回执重放,不重建 source writer。后续主干 revision 和安装后的 -Host 采用仍需分别验证其适用证据。 - -新执行/配置目标统一使用 `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 仍可达”及“下一次截止” +## 当前交付边界(合入后,2026-10-16) + +贡献者主导的 [#6396](https://github.com/loopx-project/loopx/pull/6396) 已合入, +主干提交为 `a4483aaece5bc74ec3f969fd067229487022401b`,最终 PR head 为 +`404433aee47d6efd92f26202eddbef67831f1036`,两者完整 tree 相同。C1/T4 普通 +Markdown writer 截止已包含 fork 补缺、原生 Core 版本修复及 +[#6366 有价值的义务](../../reference/local-authority-provider-selection.md#retirement-proposal-reconciliation)。 +Canonical 写入、创建、team-plan、Monitor 和 lease 消费者复用既有 typed owner。 +普通 writer/capture producer 删除已进入 main,不从旧清单再次派生删除任务。 +兼容的 1.4.2 已先发布;已落地的 `2.0.0a1` 源码边界不等于已发布 2.0 截止或 +默认资格完成。 + +新执行/配置目标共享从 `EXECUTION_HANDOFF_MODES`(`soft_claim`/`hard_lease`) +派生的 `ExecutionHandoffMode`;历史 `HandoffMode` 和回执 codec 仍识别 `legacy`。 +typed 策略 owner 拒绝 fresh legacy 执行、acquire/维护及当前 proof 授权,包括 +delegation 启动/恢复;精确原操作恢复、release 及有备份的审核迁移保留。File 仍是 canonical provider;存储转换、策略迁移和 Goal 生命周期接纳 +是不同操作。本检查点不迁移任何活跃 Goal。 + +[合入后证据记录](https://github.com/loopx-project/loopx/pull/6396#issuecomment-6208115093) +区分已执行源码与最终组合:原生修复源 `bf8372b1e` 和已吸收的 `286624b94` 完整 +tree 相同;后续 main 同步与自动合并结果相同,并包含 #6597 原生预览恢复修复。 +图/tree 等价不代表执行过最终组合。既有批准、真实 backend 结果、安装产物及 +失败/未测项继续保留原 revision 和适用边界。 + +沿用[既有 R5 交付顺序](loopx-overall-roadmap-v0.zh-CN.md#post-6396-delivery-plan): + +1. 在冻结的最终 main 源码和正常安装的 CLI/App/受影响 Host 上收尾 T4/C1、 + D1 采用:完整数据、新旧 proof、原操作重试、中断、后写及可逆迁移。剩余 transport + 按真实 caller 判断;native 进程内接管时删除废弃跨界,不新增逐字段 bridge。 +2. 通过既有 Goal/provider/effect owner 推进完整恢复 M2 捕获证据和 M3 受控接纳。 + 普通导入和可读的隔离备份不证明 Goal 生命周期或外部 effect 已重新激活。 +3. 独立继续既有 D2/D3:同负载完整命令成本、正式容量/经过时间证据及受支持发布 + profile。新 Goal 的 SQLite/hard-lease 源码选择已经存在,应验证该行为,不重建 + selector 或宣布未经资格化的默认值。 + +永久 Markdown 文档/显示 IO、历史 reader 和未完成 receipt/outbox 处置仍是义务。 +只在最后真实 caller 退出,或明确兼容窗口结束并完成受影响真实路径验证时再删 adapter。 +当前归属见[退役 ledger](ledger/shared-goal-authority-state-provider-v0/2026-09-28-retirement-cadence.zh-CN.md#current-candidate-checkpoint); +下方具名历史证据不是新的任务队列。 + +### 历史 1.x 前置背景 + +以下记录保留截至 2026-10-12 的具名源码前置条件与验证。“writer 仍可达”及“下一次截止” 描述当时的 1.x 基线,不是上方候选仍未实现的工作。 按 main `06b6caa07` 复核,#5413/#5466/#5283,以及创建、Host 停止、UI 历史