Skip to content

Commit f710acb

Browse files
authored
test(coordination): qualify cold import after lease and ambiguous disposition (#6025)
* test(coordination): qualify cold import after original lease and ambiguous writes Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com> * docs(coordination): reconcile cold import disposition qualification Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com> --------- Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
1 parent 7f3a564 commit f710acb

5 files changed

Lines changed: 200 additions & 60 deletions

File tree

‎docs/architecture/rfcs/loopx-overall-roadmap-v0.md‎

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -954,8 +954,14 @@ exact original receipts and revision-bound rollback archives. Active capture
954954
still refuses import after its queue drains; a fresh post-disposition backup
955955
binds the reviewed import. Import replay preserves later canonical writes and
956956
the original archived bytes with the old normal producers absent in the receiver.
957-
Continue ambiguous-source disposition, App loading with the old normal writer
958-
absent and authorized full-state reactivation in R5. The
957+
Original lease disposition also refuses import until native owner release;
958+
the fresh reviewed backup retains the released record without a new grant.
959+
Unproved A→B→A entries remain refused and raw-byte archived by original-operation
960+
rollback. A fresh confirmed import binds the current source, never treats that
961+
ambiguous queue as committed receipts, and preserves it after later writes and
962+
import replay. This qualifies inert history preservation, not proof of an
963+
ambiguous commit or automatic Host/lease settlement. Continue App loading with
964+
the old normal writer absent and authorized full-state reactivation in R5. The
959965
installed cold-import CLI uses the existing selected dispatcher and
960966
Goal path resolver; real File/SQLite import and original-receipt recovery pass
961967
with the four old normal producer modules physically absent in a disposable

‎docs/architecture/rfcs/loopx-overall-roadmap-v0.zh-CN.md‎

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -620,7 +620,11 @@ owned Host 进程、未晋升源的原生租约和 File/SQLite 验证:进程
620620
或 live 模型验收。可证明的原 Todo outbox 现与 File/SQLite 冷导入串联:四种中断窗口
621621
保留待处理源备份、精确原回执及绑定 revision 的 rollback 归档;队列 drain 后 capture
622622
仍活跃则继续拒绝导入。处置后重新备份并审核导入,原操作重试保留后续 canonical
623-
新写入和原归档字节,接收端旧正常生产者物理缺席。歧义来源处置、旧正常 writer 物理缺席的 App 加载、
623+
新写入和原归档字节,接收端旧正常生产者物理缺席。原 lease 处置后仍拒绝导入,
624+
直到原 owner 原生释放;新审核备份保留已释放记录,不转新 grant。无证明的 A→B→A
625+
记录仍被拒绝,通过原操作 rollback 保留原始字节;重新备份并明确确认当前来源的
626+
导入,不把歧义队列当作已提交回执,后续写入和导入重试仍保留其历史。这验收惰性
627+
历史保留,不证明歧义写入提交,也不自动停止 Host/结算 lease。旧正常 writer 物理缺席的 App 加载、
624628
完整状态重新激活继续开放;协调源备份验证不结算完整恢复。详见
625629
[冷源导入与支持边界](../../reference/local-authority-provider-selection.md)。
626630

‎docs/reference/reviewed-coordination-promotion.md‎

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -77,16 +77,28 @@ An empty queue with active capture still refuses import. The import has its own
7777
operation and receipt; abandoned writes remain absent, committed writes appear
7878
once, and retrying import after later canonical writes preserves the current
7979
provider state and original archived bytes. This covers four interrupted-write
80-
windows with the old normal producers absent from the receiver. It does not
81-
qualify ambiguous-source settlement, automatic Host shutdown, lease release or
82-
live reactivation of a restored Goal. Keep those original acceptance boundaries.
80+
windows with the old normal producers absent from the receiver.
81+
82+
The composed File/SQLite journey also covers original lease and ambiguous-source
83+
history. Draining a lease receipt and stopping capture leave the source lease
84+
active, so import still refuses until its original owner releases it through the
85+
native lease command. A fresh backup and reviewed import retain that released
86+
record without turning it into a new grant. An unproved A→B→A outbox is refused
87+
without effects; original-operation rollback archives its raw bytes. A fresh
88+
backup can then bind an explicitly confirmed import of the current source,
89+
without converting the ambiguous queue into committed receipts. Later canonical
90+
writes and import replay preserve the released lease and original archives.
91+
These checks do not prove the ambiguous write committed, automatically stop a
92+
Host or release a lease, or qualify live reactivation of a restored Goal.
8393

8494
In the App, open **Goal settings → Task ownership → Goal data storage** to read
8595
the same verified inventory. It shows task/archive and unsettled-lease counts
8696
and retained capture/outbox presence, without exposing source text, local paths
8797
or execution keys. **Read current storage** performs a fresh observation; a
88-
failed read clears old counts. Import is explicitly unavailable at this stage.
89-
There is no confirmation or migration control for an old Markdown source.
98+
failed read clears old counts. The [reviewed cold-import journey](local-authority-provider-selection.md)
99+
uses that existing surface for backup, preview and explicit confirmation.
100+
App loading with the old normal producer modules physically absent remains a
101+
separate qualification; the disposable receiver checks above cover the CLI.
90102

91103
Read `source_inventory.active_todo_count`, `archived_todo_count`, `capture`,
92104
`retained_leases` and `leases_requiring_settlement`. `import_ready`,

‎docs/reference/reviewed-coordination-promotion.zh-CN.md‎

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,12 +56,21 @@ rollback 保留回执并停止捕获;[审核冷导入](local-authority-provide
5656
重新完整备份。队列为空而 capture 仍活跃时,导入仍拒绝。导入使用自己的操作和回执;
5757
未发生的写入不出现,已提交写入只出现一次。后续 canonical 新写入后重试导入,当前
5858
provider 数据及原归档字节均保留。接收端物理移除旧正常生产者后,覆盖四种中断窗口。
59-
这不替代歧义来源结算、自动停止 Host、lease release 或恢复 Goal 的实际重新启用验收。
59+
60+
File/SQLite 的组合旅程也覆盖原 lease 和歧义来源历史:drain lease 回执并停止
61+
capture 后,原 lease 仍 active,导入继续拒绝,直到原 owner 通过原生 lease 命令
62+
释放。重新备份并审核导入后,保留已释放记录,不转为新 grant。无证明的 A→B→A
63+
outbox 拒绝且不产生效果;原操作 rollback 归档其原始字节。重新备份后可明确确认
64+
当前来源的审核导入,但不会把歧义队列转成已提交回执。后续 canonical 写入和导入
65+
重试均保留已释放 lease 和原归档。这不证明歧义写入已提交,不自动停止 Host 或
66+
释放 lease,也不替代恢复 Goal 的实际重新启用验收。
6067

6168
App 中打开 **Goal 设置 → 任务所有权 → Goal 数据存储**,读取同一 TS owner 核验的
6269
盘点。页面只显示当前/归档任务及未结算 lease 数量、原 capture/outbox 文件是否存在,
6370
不暴露源正文、本机路径或执行密钥。“读回当前存储”重新观察,失败时清除旧数量。
64-
此阶段明确显示导入尚不可用,不为旧 Markdown 源提供确认或迁移按钮。
71+
[审核冷导入旅程](local-authority-provider-selection.md)复用该入口进行备份、预览和
72+
明确确认。旧正常生产者模块物理缺席时的 App 加载仍需单独验收;上述独立接收端
73+
验证覆盖 CLI。
6574

6675
`import_ready`、`writer_stop_verified`、`outbox_reconciliation_verified` 始终为 false。
6776
此命令没有 `--execute`,不启用配置、创建 shadow/provider/fence、授予 lease 或制造捕获回执。

0 commit comments

Comments
 (0)