feat: preserve machine and Goal configuration in state backups - #5557
Conversation
Record the design decision for stopping one delegated operation: the execution's own canonical lease release is the only fence, drain is an observation rather than a settlement condition, and hard_lease authority is required. The entry measures why #5308 could not converge (six independently written settlement facts) and what main already proves (#5436, #5466 and the real revocation test), so the implementation PR has an accepted specification to be reviewed against. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: song <liusongstep@gmail.com>
Contract 8 promised drain within about thirty-six seconds of the release. The existing supervisor meets that only on its nominal path: a renewal in flight finishes on its own clock (each lease command may run 60 seconds and a lost reply is retried once), so slow or lost authority replies delay cancellation until the last proven expiry, at most one lease TTL after the release. State that boundary in both languages, keep revoked and drained distinct, and list the real-process qualification the implementation PR owes: the healthy revocation control, a release during an in-flight renewal with a long TTL and a delayed reply, and lost authority replies. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Signed-off-by: song <liusongstep@gmail.com>
Signed-off-by: song <liusongstep@gmail.com>
Signed-off-by: song <liusongstep@gmail.com>
Signed-off-by: song <liusongstep@gmail.com>
Signed-off-by: huangruiteng <huangrt01@163.com>
Signed-off-by: huangruiteng <huangrt01@163.com>
loopx-agent
left a comment
There was a problem hiding this comment.
Review exact head: a42c8146a60281ca1d974fe532a3d76599b95466 · baseline 99839aeb8fed5fae38a5d319391cd050672a6508
Reviewer: model_agent · gpt-6.1-sol · OpenAI · runtime_reported · xhigh
动机
维护者需要把已有设备默认值和 Goal 能力配置搬到另一处,并保留完整值以便原配置 owner 后续审核采用。
此前物理备份缺少可单独核对的配置组件,设置摘要又可能遗漏扩展字段;本 PR 增加完整配置下载和独立恢复目录,本机源码与打包页面已能保留长字段,但发布包解释器验收仍有缺口。
可观察到完整 machine/Goal 值、内容摘要、私有属性和隔离恢复回读;本机真实 CLI/HTTP 与打包页面通过,发布包恢复入口尚未被正确验证。
本 PR 不采用线上配置,不切换 provider,不恢复 Host、grant、lease 或 timer,也不关闭 D1–D3 或长期 SQLite 资格。
此切片的价值成立:保留源值比从设置摘要重建可靠,独立检查点可先核对再由原 owner 采用。没有找到此新配置检查点的已接受独立规格;本 PR 新增的 configuration-backup.md 和 RFC 链接是待审契约,不能自证实现。对照 99839aeb8fed5fae38a5d319391cd050672a6508 已有 machine 事务回滚与 File/SQLite 恢复契约,核验完整值、私有属性及不自动授予线上执行权的边界。
改动思路
Python capture_configuration_backup 从 invoked registry 发现 Goal,复用 source runtime route 读取完整 canonical 项目行;machine 部分读取实际存储 envelope,不用有效设置投影替代。TS configuration.backup owner 复用 canonical JSON/hash 和 durable writer,核对精确 envelope、唯一身份和摘要,再写独立私有目录。机器默认、Goal override 和 provider 采用仍由原 owner 决定。
CLI preview 默认不写,execute 才独占发布导出文件或恢复目录;HTTP 不接受任意路径,使用 runtime 内摘要命名的新目录并返回相对引用。Capability Center 复用当前目标,提供下载、文件核对、明确恢复操作及错误回读。选择文件提供待审内容,恢复确认提供写检查点的授权;没有要求重复输入已知配置。恢复成功不是线上采用成功。
具体改动
全量 20 文件、+864/-0 已读:UI/data/settings 3 路径,CLI/HTTP/source capture/TS effect handler/full tar backup 的运行路径,3 文档、registry IO census,以及 browser registry/scenario 与 Python/TS 验证。关键符号为 capture_configuration_backup、verifyConfigurationBackup、restoreConfigurationBackup、handle_configuration_backup、_configuration_backup_restore、execute_state_backup_plan、ConfigurationBackupSettings。
正例通过真实 CLI/HTTP/TS 文件系统和 machine owner 回读:stale global projection 不替代源行,未知 namespace、null、false 与长文本保留。相同物理备份夹具在 99839aeb8fed5fae38a5d319391cd050672a6508 和本 head 保留同一旧 registry/成员,无成员删除,仅新增配置组件,源文件不变。本机源码打包页面的下载→选择文件→核对→隔离恢复→回读完成,90,000 字符配置保留;全 viewport 已查看,目标与恢复结果在能力中心内可读。其余 workspace API 用 fixture,备份路由实际连接 disposable backend,不能据此宣称安装版本已合格。
负例覆盖摘要损坏、额外 envelope、重复 Goal、不同 reviewed digest、既有/悬空目标、symlink ancestor 及 JS 无法保留的整数;拒绝时不覆盖目标、源值或上一个备份。损坏文件在页面报错并移除恢复按钮,390px 窄屏无横向溢出。
[P1] 复用已选解释器,才能验收安装包后端。 examples/personal-workspace-browser/configuration-backup.mjs:26 固定 spawn("uv", ["run", ...]),绕过已有 resolveTestPython 和 LOOPX_PYTHON_BIN 的安装解释器边界。独立执行相同启动机制时,选择的环境与实际 checkout Python/package 不同;源测试都绿仍可能验收错误后端。当前两个 build 的新增备份场景均报 backup backend did not start:可复核 Release Artifacts 与 Frontstage。启动超时的底层原因尚未全部定位,但解释器绕过已独立证明。请原作者在本 PR 复用 scripts/test-python.mjs 的选择,并沿用 installed isolation;补可诊断的 spawn error/exit 与清理,再跑正确 installed 和 source packaged backend 验收。此有界修复应只涉及验证启动 seam;若修改运行契约,需重新列出差异并全量复审。
对主干的风险
backup-state --execute 默认新增配置组件及源配置失败拒绝,属于已披露行为改变;普通 chat 请求预算未扩大,只有恢复使用既有 64 MiB snapshot 边界。SHA-256 不认证授权或 public-safety,完整配置可能包含私有值,privacy_certified=false 与 activation_performed=false 强制保留。未知配置只是数据;默认 SQLite 不证明已切换 live Todo authority。跨项目读取不承诺原子快照,外部文件不内联。
本 head:48 项 Python、7 项 TS、control-plane typecheck、dashboard build、diff check 和本机 source-packaged browser 通过;immutable base 同一既有套件 42 项通过。semantic advisory 已执行,9 个源路径、0 个受支持词汇 carrier;仍人工检查新 schema/action 和固定 false 标记,空报告不证明语义等价。
CI 当前失败不归并成“环境问题”:新增 browser startup 直接关联改动;TS shard 的 EPERM is not mistaken for a stopped group 报 Missing expected rejection,相关路径未改但没有同 Linux base 失败证据,保持 unresolved;其他 required shards 尚未全部完成。原生 readiness 返回 ready=false。本机 POSIX/source UI 通过不能替代 Windows、正确 installed 后端、live adoption 或长期运行资格。
我的整体评价
REQUEST_CHANGES。 完整配置/隔离恢复设计与规模合理,CLI/HTTP/UI 有真实正负例,仍需修复并证明安装解释器边界及处理 required CI。未来变更友好性检查发现最有价值的伴随整理就是复用现有解释器选择,无需增加另一套启动/激活框架。下一 owner 是本 PR 原作者,修复后由独立 reviewer 对新精确 head 复审;通过原生 merge-readiness 后再走获授权 maintainer 合并。
当前 a42c8146a60281ca1d974fe532a3d76599b95466 可描述为本机源码与打包页面已验证的配置检查点,不能提前作为已合并/已安装能力使用。如果最终修复仅改变测试启动方式,configuration-backup / machine-config / configure-goal 运行代码未变,则此 pin 的运行等价性可以在合并 head diff/readback 后重新确认;新 head 不继承本轮结论,增补包的 owner 采用仍要独立预览/回读。
English verdict: REQUEST_CHANGES - head a42c814: preserve the verified complete-value and isolated-recovery design, but honor the selected installed Python for the backup browser backend and qualify required CI. Local 48 Python/7 TS, typecheck/build, base/head backup parity and source-packaged UI passed; installed provenance and merge readiness remain blocked.
Signed-off-by: huangruiteng <huangrt01@163.com>
|
补充当前 head 相同源码命令在 immutable base uv run --extra test python -m pytest -q tests/architecture/test_goal_instance_binding_inventory.py tests/test_collaboration_goal_instance.py tests/control_plane/test_monitor_quiet_due_recovery.py tests/control_plane/test_refresh_checkpoint_recovery.py两者均 60 failed / 56 passed;60 个失败身份及 62 行完整错误诊断逐行一致,仅规范化 pytest 临时 run 编号和 checkout root。核对相关 collaboration、turn driver、quota、coordination 与这些测试的 whole-PR diff,因果路径未改;配置 checkpoint 的真实 CLI/HTTP/TS 及 source-packaged UI 正负例已另通过。这 4 文件内匹配的失败可归为 pre_existing_unrelated,备份 PR 无需为它们改变配置/权限语义。 安装解释器绕过/新增 backend startup 的 P1 仍需当前 PR 修复;EPERM、其他 timeout/executor 等 required 失败尚未全部归因。原生 ready=false,尚未满足合并资格。修复后按新 exact head 全量复审,并保留其余 CI 恢复 owner。 |
Signed-off-by: huangruiteng <huangrt01@163.com>
loopx-agent
left a comment
There was a problem hiding this comment.
Review exact head: e9289eceac3a7c8b92e12566e5565a13719a67b2 · immutable baseline 99839aeb8fed5fae38a5d319391cd050672a6508 · actual merge base 359a0a83fb891c2c2e847116940df42f3f5b9724
Reviewer: model_agent · gpt-6.1-sol · OpenAI · runtime_reported · xhigh
动机
维护者需要搬运已有设备默认值和 Goal 能力配置,并保留完整值供原配置 owner 后续审核采用。
原来的物理备份缺少独立配置组件,设置摘要可能遗漏扩展字段;现在可下载完整配置、核对文件并恢复到隔离目录,避免靠摘要手工重建。
本机源码和独立安装 wheel 的 CLI/HTTP/打包页面均完成完整值恢复;新版本已修复安装解释器绕过,required CI 仍未终结。
本 PR 不采用线上配置,不切换 provider,不恢复 Host、grant、lease 或 timer,也不关闭 D1–D3 或长期 SQLite 资格。
此切片有独立价值:保存完整原值比重建有效设置投影可靠,可先核对隔离检查点,再由原配置 owner 决定采用。没有找到已接受的独立 configuration-checkpoint 规格;新增 configuration-backup.md 与 RFC 链接是待审契约。以 immutable baseline 已有 machine 事务和 File/SQLite 恢复边界检查兼容性,不让新文档自证实现。
改动思路
Python capture_configuration_backup 从 discovery 定位 source-owned canonical Goal 行,读取完整存储 machine envelope;TS configuration.backup owner 复用 canonical JSON/hash 与 durable writer,核对精确 schema、唯一身份和摘要,只发布新的私有隔离目录。配置采用仍归 machine/Goal 原 owner。
CLI preview 默认不写,HTTP 不接受任意路径。Capability Center 复用当前目标,下载、选文件核对、明确恢复并回读相对 checkpoint 引用。选择文件提供内容,恢复确认授权这一处写入;没有重复要求填写已知设置,也不把恢复成功当线上采用。
具体改动
全量重新判断:API 基础版本到本 head 共 25 路径、+1189/-6,其中包含已合入主干且此前独立审过的 #5534 文档。实际 Git merge base 359a0a83fb891c2c2e847116940df42f3f5b9724 到本 head 是 21 路径、+852/-4,配置 capture/TS checkpoint/CLI/HTTP/full backup/UI 与先前 a42 的运行代码和依赖完全一致。最新 main 6a172f699653a11c5a4dad578e244fe535013c4c 的 #5558 collaboration grants 不进入本 PR diff,也不改变 checkpoint owner。此前证据明确固定为99839/a42,仅在这个失效检查后复用;新 head 没有继承旧评审结论。
最后评审到当前 head 的有界修复是3个验证路径:configurationBackupScenario.run 复用 resolveTestPython,显式安装环境加 -I,核对实际解释器、返回模块来源、提供有界启动诊断与可靠清理;两项真实 Python 环境负例;解释器 fixture 使用真实 disposable venv 和物理 tmp 路径。原 P1 已独立验证修复,不是因为讨论过期或作者说通过。
本角色独立执行:50 项 Python 配置/machine/backup 回归、9 项 TS checkpoint/interpreter、typecheck、diff check、风险选择 premerge 均通过。源码和从本 head 构建的独立 wheel 均实际完成打包页面下载→90,000字符配置核对→真实 backend 隔离恢复→损坏文件拒绝→390px 无溢出;安装后端解释器与所选环境一致,模块来自其 site-packages。已查看整个 viewport。其余 workspace API 使用 fixture;备份路由转发真实 disposable HTTP server,不涉及活跃 Goal 或 Host。损坏文件负例产生的预期400保留在两份证据中。
负例还有额外 envelope、重复 ID、错 reviewed digest、occupied/dangling/symlink target 和 transport 丢精度;不覆盖源配置、现有目标或上一成功备份。指定 venv 缺 LoopX 时清晰失败、不回退到 checkout,temp server 被清理;显式已安装环境不受 PYTHONPATH shadow 影响。全量基线物理备份保留旧成员与源字节,只新增配置组件。
对主干的风险
backup-state --execute 新增配置组件和 capture 失败拒绝,是已披露的默认备份行为变化。普通 chat 请求预算不扩大,只有恢复使用64MiB边界。摘要不认证来源、授权或 public-safety;完整配置可能私有,固定 privacy_certified=false、activation_performed=false。未知字段只是迁移数据,不自动成为 live policy。跨项目不是原子快照,外部引用文件不内联;默认 SQLite 不证明 Todo authority 已迁移。
本 head 的 Release Artifacts 与 Frontstage 两个直接关联 build 已 SUCCESS;DCO、desktop、真实 PostgreSQL、dependency 和 Node minimum 也通过。Python Tests 仍有 queued/in-progress required checks,当前观察不是最终CI资格。
独立重跑4个历史失败文件,当前 e928 与 immutable99839 均60 failed/56 passed,60失败身份及全部错误行相同,仅规范化临时 run 编号和 checkout 根目录;同一 executor case 两版均1失败,完整错误行相同。这些因果路径未改且配置不变量独立通过,可逐项归 pre_existing_unrelated;不据此归因整套 CI。旧 Linux EPERM 问题在基础版本 CI 曾通过,因此更不能笼统说它必然是基线失败。新 required CI 的任何失败仍需独立核对。
POSIX/source 与 installed 真实恢复已合格;native Windows checkpoint、live adoption、长期 provider 运行及对抗性并发替换祖先目录仍未资格化,均不作本切片完成声明。
我的整体评价
REQUEST_CHANGES,当前为最终 required CI 未完成的证据 hold。 没有发现尚未解决的代码 blocker,原安装解释器 P1 已修复,完整配置与隔离恢复的价值、归属和规模成立。未来变更友好性检查已应用最有价值的整理:复用共享解释器选择,保留真实环境反例;无需再建启动框架或扩展线上采用功能。
Wait for final exact-head required CI; attribute each failure independently against immutable base and current head, then publish the final verdict and require native merge readiness. Do not expand this PR to repair unrelated baseline failures.
当前 native merge-readiness 为 ready=false,不执行合并或 admin bypass,不提前采用 live 配置。CI终结后按失败因果归因更新这份当前 head 结论;独立批准与 blocker closeout 后,立即重跑原生 readiness,ready=true 才走获授权 maintainer 合并。既有包 pin a42 与当前配置 owner 的运行等价性已独立核对;它仍须在合并后通过原 owner 预览/采用/回读,不能从此审查推断已安装或已采用。
English verdict: REQUEST_CHANGES - head e9289ec: the selected-interpreter P1 is independently fixed;50 Python/9 TS, typecheck, risk-selected premerge and real source/installed-wheel recovery passed. Complete-value checkpoint design and scope are justified. Final required CI is still pending, so merge readiness remains on hold; preserve unrelated failure attribution and require a fresh exact-head verdict and ready=true before merging.
loopx-agent
left a comment
There was a problem hiding this comment.
Review exact head: e9289eceac3a7c8b92e12566e5565a13719a67b2 · immutable baseline 99839aeb8fed5fae38a5d319391cd050672a6508 · actual merge base 359a0a83fb891c2c2e847116940df42f3f5b9724
Reviewer: model_agent · gpt-6.1-sol · OpenAI · runtime_reported · xhigh
动机
维护者需要搬运已有设备默认值和 Goal 能力配置,并保留完整值供原配置 owner 后续审核采用。
原来的物理备份缺少独立配置组件,设置摘要可能遗漏扩展字段;现在可下载完整配置、核对文件并恢复到隔离目录,避免靠摘要手工重建。
本机源码和独立安装 wheel 的 CLI/HTTP/打包页面均完成完整值恢复;新版本已修复安装解释器绕过,当前关键入口与负例已有独立验证。
本 PR 不采用线上配置,不切换 provider,不恢复 Host、grant、lease 或 timer,也不关闭 D1–D3 或长期 SQLite 资格。
此切片有独立价值:保存完整原值比重建有效设置投影可靠,可先核对隔离检查点,再由原配置 owner 决定采用。没有找到已接受的独立 configuration-checkpoint 规格;新增 configuration-backup.md 与 RFC 链接是待审契约。以 immutable baseline 已有 machine 事务和 File/SQLite 恢复边界检查兼容性,不让新文档自证实现。
改动思路
Python capture_configuration_backup 从 discovery 定位 source-owned canonical Goal 行,读取完整存储 machine envelope;TS configuration.backup owner 复用 canonical JSON/hash 与 durable writer,核对精确 schema、唯一身份和摘要,只发布新的私有隔离目录。配置采用仍归 machine/Goal 原 owner。
CLI preview 默认不写,HTTP 不接受任意路径。Capability Center 复用当前目标,下载、选文件核对、明确恢复并回读相对 checkpoint 引用。选择文件提供内容,恢复确认授权这一处写入;没有重复要求填写已知设置,也不把恢复成功当线上采用。
具体改动
全量重新判断:API 基础版本到本 head 共 25 路径、+1189/-6,其中包含已合入主干且此前独立审过的 #5534 文档。实际 Git merge base 359a0a83fb891c2c2e847116940df42f3f5b9724 到本 head 是 21 路径、+852/-4,配置 capture/TS checkpoint/CLI/HTTP/full backup/UI 与先前 a42 的运行代码和依赖完全一致。最新 main 6a172f699653a11c5a4dad578e244fe535013c4c 的 #5558 collaboration grants 不进入本 PR diff,也不改变 checkpoint owner。此前证据明确固定为99839/a42,仅在这个失效检查后复用;新 head 没有继承旧评审结论。
最后评审到当前 head 的有界修复是3个验证路径:configurationBackupScenario.run 复用 resolveTestPython,显式安装环境加 -I,核对实际解释器、返回模块来源、提供有界启动诊断与可靠清理;两项真实 Python 环境负例;解释器 fixture 使用真实 disposable venv 和物理 tmp 路径。原 P1 已独立验证修复,不是因为讨论过期或作者说通过。
本角色独立执行:50 项 Python 配置/machine/backup 回归、9 项 TS checkpoint/interpreter、typecheck、diff check、风险选择 premerge 均通过。源码和从本 head 构建的独立 wheel 均实际完成打包页面下载→90,000字符配置核对→真实 backend 隔离恢复→损坏文件拒绝→390px 无溢出;安装后端解释器与所选环境一致,模块来自其 site-packages。已查看整个 viewport。其余 workspace API 使用 fixture;备份路由转发真实 disposable HTTP server,不涉及活跃 Goal 或 Host。损坏文件负例产生的预期400保留在两份证据中。
负例还有额外 envelope、重复 ID、错 reviewed digest、occupied/dangling/symlink target 和 transport 丢精度;不覆盖源配置、现有目标或上一成功备份。指定 venv 缺 LoopX 时清晰失败、不回退到 checkout,temp server 被清理;显式已安装环境不受 PYTHONPATH shadow 影响。全量基线物理备份保留旧成员与源字节,只新增配置组件。
对主干的风险
backup-state --execute 新增配置组件和 capture 失败拒绝,是已披露的默认备份行为变化。普通 chat 请求预算不扩大,只有恢复使用64MiB边界。摘要不认证来源、授权或 public-safety;完整配置可能私有,固定 privacy_certified=false、activation_performed=false。未知字段只是迁移数据,不自动成为 live policy。跨项目不是原子快照,外部引用文件不内联;默认 SQLite 不证明 Todo authority 已迁移。
先前已记录的直接 build 成功和其余 CI 排队是历史诊断,本次按现有 owner 配置不再获取、轮询或等待 CI,不把远端排队当修改代码理由。决定性证据是此精确 head 独立完成的源码/安装版真实入口、完整值恢复、损坏文件拒绝和兼容比较。
4 个历史失败文件在当前 e928 与 immutable99839 同环境/同命令均60 failed/56 passed,60失败身份及全部错误行相同,仅规范化临时 run 编号和 checkout 根目录;同一 executor case 两版均1失败、完整错误行相同。因果路径未改且配置不变量独立通过,只对这些具体检查归 pre_existing_unrelated;不据此归因整套 CI。旧 Linux EPERM 问题没有相同失败的基础版本证明,保留未知历史风险,不冒称已修复或必然基线失败。当前相关源码和独立安装环境验证没有复现剩余配置 blocker。
POSIX/source 与 installed 真实恢复已合格;native Windows checkpoint、live adoption、长期 provider 运行及对抗性并发替换祖先目录仍未资格化,均不作本切片完成声明。
我的整体评价
APPROVE。 更正先前同 head 因 CI 未终结而作出的 REQUEST_CHANGES:该理由不要求代码修复,历史记录保留。原安装解释器 P1 已独立证明修复,完整配置与隔离恢复的价值、归属和规模成立。未来变更友好性检查已应用最有价值的整理:复用共享解释器选择,保留真实环境反例;无需新启动框架或扩展线上采用。
本切片交付判定为 goal_achieved;long_horizon preserved,user_experience improved:完整值可核对恢复,源设置与已有备份保持,明确确认只授权隔离目录写入。复用现有配置采用 owner,新 checkpoint artifact 词汇与 false 权限标记有负例覆盖。最新 main 的 replan 与 review-policy 修复没有改动相关配置/机器/backend/UI owner;运行边界与证据适用性逐项检查,不继承旧批准。
这份代码批准不声称 live 配置已采用或完整迁移 Goal 已验收。发布并严格回读后仍须执行 native approval-closeout 和最新 unchanged-head merge-readiness;仅 ready=true 才按维护者已授权路径合并。既有配置包 pin a42 与当前 runtime owner 运行等价,但后续采用仍归原配置 owner 的预览、应用和回读。
English verdict: APPROVE — exact head e9289ec independently passes50 Python/9 TS,typecheck,risk-selected premerge and real source/installed-wheel full-value recovery and negative cases. The selected-interpreter P1 is fixed. Pending CI alone was an incorrect change-request reason; preserve that history and require separate unchanged-head merge readiness and maintainer authority. Live adoption and broader provider qualification remain outside this checkpoint slice.
The merge-base changed after approval.
loopx-agent
left a comment
There was a problem hiding this comment.
Review exact head: e9289eceac3a7c8b92e12566e5565a13719a67b2 · immutable baseline 99839aeb8fed5fae38a5d319391cd050672a6508 · actual merge base 359a0a83fb891c2c2e847116940df42f3f5b9724
Reviewer: model_agent · gpt-6.1-sol · OpenAI · runtime_reported · xhigh
动机
维护者需要搬运已有设备默认值和 Goal 能力配置,并保留完整值供原配置 owner 后续审核采用。
原来的物理备份缺少独立配置组件,设置摘要可能遗漏扩展字段;现在可下载完整配置、核对文件并恢复到隔离目录,避免靠摘要手工重建。
本机源码和独立安装 wheel 的 CLI/HTTP/打包页面均完成完整值恢复;新版本已修复安装解释器绕过,当前关键入口与负例已有独立验证。
本 PR 不采用线上配置,不切换 provider,不恢复 Host、grant、lease 或 timer,也不关闭 D1–D3 或长期 SQLite 资格。
此切片有独立价值:保存完整原值比重建有效设置投影可靠,可先核对隔离检查点,再由原配置 owner 决定采用。没有找到已接受的独立 configuration-checkpoint 规格;新增 configuration-backup.md 与 RFC 链接是待审契约。以 immutable baseline 已有 machine 事务和 File/SQLite 恢复边界检查兼容性,不让新文档自证实现。
改动思路
Python capture_configuration_backup 从 discovery 定位 source-owned canonical Goal 行,读取完整存储 machine envelope;TS configuration.backup owner 复用 canonical JSON/hash 与 durable writer,核对精确 schema、唯一身份和摘要,只发布新的私有隔离目录。配置采用仍归 machine/Goal 原 owner。
CLI preview 默认不写,HTTP 不接受任意路径。Capability Center 复用当前目标,下载、选文件核对、明确恢复并回读相对 checkpoint 引用。选择文件提供内容,恢复确认授权这一处写入;没有重复要求填写已知设置,也不把恢复成功当线上采用。
具体改动
全量重新判断:API 基础版本到本 head 共 25 路径、+1189/-6,其中包含已合入主干且此前独立审过的 #5534 文档。实际 Git merge base 359a0a83fb891c2c2e847116940df42f3f5b9724 到本 head 是 21 路径、+852/-4,配置 capture/TS checkpoint/CLI/HTTP/full backup/UI 与先前 a42 的运行代码和依赖完全一致。最新 main 6a172f699653a11c5a4dad578e244fe535013c4c 的 #5558 collaboration grants 不进入本 PR diff,也不改变 checkpoint owner。此前证据明确固定为99839/a42,仅在这个失效检查后复用;新 head 没有继承旧评审结论。
最后评审到当前 head 的有界修复是3个验证路径:configurationBackupScenario.run 复用 resolveTestPython,显式安装环境加 -I,核对实际解释器、返回模块来源、提供有界启动诊断与可靠清理;两项真实 Python 环境负例;解释器 fixture 使用真实 disposable venv 和物理 tmp 路径。原 P1 已独立验证修复,不是因为讨论过期或作者说通过。
本角色独立执行:50 项 Python 配置/machine/backup 回归、9 项 TS checkpoint/interpreter、typecheck、diff check、风险选择 premerge 均通过。源码和从本 head 构建的独立 wheel 均实际完成打包页面下载→90,000字符配置核对→真实 backend 隔离恢复→损坏文件拒绝→390px 无溢出;安装后端解释器与所选环境一致,模块来自其 site-packages。已查看整个 viewport。其余 workspace API 使用 fixture;备份路由转发真实 disposable HTTP server,不涉及活跃 Goal 或 Host。损坏文件负例产生的预期400保留在两份证据中。
负例还有额外 envelope、重复 ID、错 reviewed digest、occupied/dangling/symlink target 和 transport 丢精度;不覆盖源配置、现有目标或上一成功备份。指定 venv 缺 LoopX 时清晰失败、不回退到 checkout,temp server 被清理;显式已安装环境不受 PYTHONPATH shadow 影响。全量基线物理备份保留旧成员与源字节,只新增配置组件。
对主干的风险
backup-state --execute 新增配置组件和 capture 失败拒绝,是已披露的默认备份行为变化。普通 chat 请求预算不扩大,只有恢复使用64MiB边界。摘要不认证来源、授权或 public-safety;完整配置可能私有,固定 privacy_certified=false、activation_performed=false。未知字段只是迁移数据,不自动成为 live policy。跨项目不是原子快照,外部引用文件不内联;默认 SQLite 不证明 Todo authority 已迁移。
先前已记录的直接 build 成功和其余 CI 排队是历史诊断,本次按现有 owner 配置不再获取、轮询或等待 CI,不把远端排队当修改代码理由。决定性证据是此精确 head 独立完成的源码/安装版真实入口、完整值恢复、损坏文件拒绝和兼容比较。
4 个历史失败文件在当前 e928 与 immutable99839 同环境/同命令均60 failed/56 passed,60失败身份及全部错误行相同,仅规范化临时 run 编号和 checkout 根目录;同一 executor case 两版均1失败、完整错误行相同。因果路径未改且配置不变量独立通过,只对这些具体检查归 pre_existing_unrelated;不据此归因整套 CI。旧 Linux EPERM 问题没有相同失败的基础版本证明,保留未知历史风险,不冒称已修复或必然基线失败。当前相关源码和独立安装环境验证没有复现剩余配置 blocker。
POSIX/source 与 installed 真实恢复已合格;native Windows checkpoint、live adoption、长期 provider 运行及对抗性并发替换祖先目录仍未资格化,均不作本切片完成声明。
我的整体评价
APPROVE。 更正先前同 head 因 CI 未终结而作出的 REQUEST_CHANGES:该理由不要求代码修复,历史记录保留。原安装解释器 P1 已独立证明修复,完整配置与隔离恢复的价值、归属和规模成立。未来变更友好性检查已应用最有价值的整理:复用共享解释器选择,保留真实环境反例;无需新启动框架或扩展线上采用。
本切片交付判定为 goal_achieved;long_horizon preserved,user_experience improved:完整值可核对恢复,源设置与已有备份保持,明确确认只授权隔离目录写入。复用现有配置采用 owner,新 checkpoint artifact 词汇与 false 权限标记有负例覆盖。最新 main 的 replan 与 review-policy 修复没有改动相关配置/机器/backend/UI owner;运行边界与证据适用性逐项检查,不继承旧批准。
这份代码批准不声称 live 配置已采用或完整迁移 Goal 已验收。发布并严格回读后仍须执行 native approval-closeout 和最新 unchanged-head merge-readiness;仅 ready=true 才按维护者已授权路径合并。既有配置包 pin a42 与当前 runtime owner 运行等价,但后续采用仍归原配置 owner 的预览、应用和回读。
English verdict: APPROVE — exact head e9289ec independently passes50 Python/9 TS,typecheck,risk-selected premerge and real source/installed-wheel full-value recovery and negative cases. The selected-interpreter P1 is fixed. Pending CI alone was an incorrect change-request reason; preserve that history and require separate unchanged-head merge readiness and maintainer authority. Live adoption and broader provider qualification remain outside this checkpoint slice.
huangruiteng
left a comment
There was a problem hiding this comment.
Approval conclusion (author-owned PR; GitHub blocks formal self-approval)
Review exact head: e9289eceac3a7c8b92e12566e5565a13719a67b2 · immutable baseline 99839aeb8fed5fae38a5d319391cd050672a6508 · actual merge base 359a0a83fb891c2c2e847116940df42f3f5b9724
Reviewer: model_agent · gpt-6.1-sol · OpenAI · runtime_reported · xhigh
动机
维护者需要搬运已有设备默认值和 Goal 能力配置,并保留完整值供原配置 owner 后续审核采用。
原来的物理备份缺少独立配置组件,设置摘要可能遗漏扩展字段;现在可下载完整配置、核对文件并恢复到隔离目录,避免靠摘要手工重建。
本机源码和独立安装 wheel 的 CLI/HTTP/打包页面均完成完整值恢复;新版本已修复安装解释器绕过,当前关键入口与负例已有独立验证。
本 PR 不采用线上配置,不切换 provider,不恢复 Host、grant、lease 或 timer,也不关闭 D1–D3 或长期 SQLite 资格。
此切片有独立价值:保存完整原值比重建有效设置投影可靠,可先核对隔离检查点,再由原配置 owner 决定采用。没有找到已接受的独立 configuration-checkpoint 规格;新增 configuration-backup.md 与 RFC 链接是待审契约。以 immutable baseline 已有 machine 事务和 File/SQLite 恢复边界检查兼容性,不让新文档自证实现。
改动思路
Python capture_configuration_backup 从 discovery 定位 source-owned canonical Goal 行,读取完整存储 machine envelope;TS configuration.backup owner 复用 canonical JSON/hash 与 durable writer,核对精确 schema、唯一身份和摘要,只发布新的私有隔离目录。配置采用仍归 machine/Goal 原 owner。
CLI preview 默认不写,HTTP 不接受任意路径。Capability Center 复用当前目标,下载、选文件核对、明确恢复并回读相对 checkpoint 引用。选择文件提供内容,恢复确认授权这一处写入;没有重复要求填写已知设置,也不把恢复成功当线上采用。
具体改动
全量重新判断:API 基础版本到本 head 共 25 路径、+1189/-6,其中包含已合入主干且此前独立审过的 #5534 文档。实际 Git merge base 359a0a83fb891c2c2e847116940df42f3f5b9724 到本 head 是 21 路径、+852/-4,配置 capture/TS checkpoint/CLI/HTTP/full backup/UI 与先前 a42 的运行代码和依赖完全一致。最新 main 6a172f699653a11c5a4dad578e244fe535013c4c 的 #5558 collaboration grants 不进入本 PR diff,也不改变 checkpoint owner。此前证据明确固定为99839/a42,仅在这个失效检查后复用;新 head 没有继承旧评审结论。
最后评审到当前 head 的有界修复是3个验证路径:configurationBackupScenario.run 复用 resolveTestPython,显式安装环境加 -I,核对实际解释器、返回模块来源、提供有界启动诊断与可靠清理;两项真实 Python 环境负例;解释器 fixture 使用真实 disposable venv 和物理 tmp 路径。原 P1 已独立验证修复,不是因为讨论过期或作者说通过。
本角色独立执行:50 项 Python 配置/machine/backup 回归、9 项 TS checkpoint/interpreter、typecheck、diff check、风险选择 premerge 均通过。源码和从本 head 构建的独立 wheel 均实际完成打包页面下载→90,000字符配置核对→真实 backend 隔离恢复→损坏文件拒绝→390px 无溢出;安装后端解释器与所选环境一致,模块来自其 site-packages。已查看整个 viewport。其余 workspace API 使用 fixture;备份路由转发真实 disposable HTTP server,不涉及活跃 Goal 或 Host。损坏文件负例产生的预期400保留在两份证据中。
负例还有额外 envelope、重复 ID、错 reviewed digest、occupied/dangling/symlink target 和 transport 丢精度;不覆盖源配置、现有目标或上一成功备份。指定 venv 缺 LoopX 时清晰失败、不回退到 checkout,temp server 被清理;显式已安装环境不受 PYTHONPATH shadow 影响。全量基线物理备份保留旧成员与源字节,只新增配置组件。
对主干的风险
backup-state --execute 新增配置组件和 capture 失败拒绝,是已披露的默认备份行为变化。普通 chat 请求预算不扩大,只有恢复使用64MiB边界。摘要不认证来源、授权或 public-safety;完整配置可能私有,固定 privacy_certified=false、activation_performed=false。未知字段只是迁移数据,不自动成为 live policy。跨项目不是原子快照,外部引用文件不内联;默认 SQLite 不证明 Todo authority 已迁移。
先前已记录的直接 build 成功和其余 CI 排队是历史诊断,本次按现有 owner 配置不再获取、轮询或等待 CI,不把远端排队当修改代码理由。决定性证据是此精确 head 独立完成的源码/安装版真实入口、完整值恢复、损坏文件拒绝和兼容比较。
4 个历史失败文件在当前 e928 与 immutable99839 同环境/同命令均60 failed/56 passed,60失败身份及全部错误行相同,仅规范化临时 run 编号和 checkout 根目录;同一 executor case 两版均1失败、完整错误行相同。因果路径未改且配置不变量独立通过,只对这些具体检查归 pre_existing_unrelated;不据此归因整套 CI。旧 Linux EPERM 问题没有相同失败的基础版本证明,保留未知历史风险,不冒称已修复或必然基线失败。当前相关源码和独立安装环境验证没有复现剩余配置 blocker。
POSIX/source 与 installed 真实恢复已合格;native Windows checkpoint、live adoption、长期 provider 运行及对抗性并发替换祖先目录仍未资格化,均不作本切片完成声明。
我的整体评价
APPROVE。 更正先前同 head 因 CI 未终结而作出的 REQUEST_CHANGES:该理由不要求代码修复,历史记录保留。原安装解释器 P1 已独立证明修复,完整配置与隔离恢复的价值、归属和规模成立。未来变更友好性检查已应用最有价值的整理:复用共享解释器选择,保留真实环境反例;无需新启动框架或扩展线上采用。
本切片交付判定为 goal_achieved;long_horizon preserved,user_experience improved:完整值可核对恢复,源设置与已有备份保持,明确确认只授权隔离目录写入。复用现有配置采用 owner,新 checkpoint artifact 词汇与 false 权限标记有负例覆盖。最新 main 的 replan 与 review-policy 修复没有改动相关配置/机器/backend/UI owner;运行边界与证据适用性逐项检查,不继承旧批准。
这份代码批准不声称 live 配置已采用或完整迁移 Goal 已验收。发布并严格回读后仍须执行 native approval-closeout 和最新 unchanged-head merge-readiness;仅 ready=true 才按维护者已授权路径合并。既有配置包 pin a42 与当前 runtime owner 运行等价,但后续采用仍归原配置 owner 的预览、应用和回读。
English verdict: APPROVE — exact head e9289ec independently passes50 Python/9 TS,typecheck,risk-selected premerge and real source/installed-wheel full-value recovery and negative cases. The selected-interpreter P1 is fixed. Pending CI alone was an incorrect change-request reason; preserve that history and require separate unchanged-head merge readiness and maintainer authority. Live adoption and broader provider qualification remain outside this checkpoint slice.
A state handoff can recover isolated authority data while losing machine defaults or explicit Goal capability overrides. Settings summaries also omit unknown or long configuration fields. This adds a first-class configuration component to
backup-stateand configuration-only export, verification and isolated recovery through the CLI and Settings → Capability Center.Capture resolves discovery entries to complete source-owned Goal rows and preserves the stored machine envelope. A typed TypeScript checkpoint owner verifies content digests, publishes owner-only files into a fresh physical directory, and rejects changed digests, ambiguous identities, occupied targets and symlink redirects. Current-project backup uses the selected project rather than the caller’s registry. Capture also compares the complete transport result against source values and refuses lossy numbers while retaining any prior backup.
Recovery does not activate live configuration, providers, Host bindings or timers. Backups remain private by default; extension fields are preserved as data and referenced external files remain dependencies. Documentation separates future SQLite defaults from existing Goal promotion and actual Todo authority readback.
Validation:
POSIX execution was tested. This does not qualify native Windows, live destination adoption, or long-duration provider operation.
The packaged backup browser scenario now uses the shared Python resolver and isolates explicit installed environments, with bounded startup diagnostics and guaranteed disposable backend cleanup. The regression suite proves a missing selected installation fails without falling back to the checkout. The related interpreter fixture uses a real disposable venv so macOS path aliases and base-executable symlinks do not weaken environment precedence coverage.