Skip to content

fix(a2a): persist complete permission handoffs for controlled cold recovery - #414

Merged
guima-why merged 1 commit into
mainfrom
codex/permission-cold-recovery-final
Nov 2, 2026
Merged

guima-why merged 1 commit into
mainfrom
codex/permission-cold-recovery-final

Conversation

@ruanzhengxin-zhuxing

@ruanzhengxin-zhuxing ruanzhengxin-zhuxing commented Oct 30, 2026 •

Copy link
Copy Markdown
Collaborator

平台准备回收授权等待中的沙箱时,需要先把整组授权边界、共享备份和恢复所有权完成持久交接。本变更使 Normal、主 Pipeline 和并行 SubPipeline 在受控回收后恢复原会话、候选和工具结果,并阻止重复执行已经落盘的工具。

变更内容:

  • inspector schema v2 要求权威 execution control、完整 boundaries map、匹配的共享备份回执;缺失或未完成交接时继续阻断回收。
  • 排空并关闭 runtime、完成共享备份后才发布 COMMITTED;授权组、owner、generation 和 revision 由持久状态与 CAS 共同约束。
  • 恢复原候选身份、attempt、transcript 和授权决定;确认完整 ToolResult 已持久化后才压缩恢复回执,并隔离过期授权 finalizer 对自然完成的影响。
  • 增加多卡、跨进程、SubPipeline 恢复、结果写入失败和 namespace PID 复用的回归覆盖。
  • 冷恢复回归检查最终持久化收据,并明确等待每张冷恢复授权完成交接;跨 Task 的取消断言覆盖 Python 3.10 的标准行为。
  • 快照取消测试按实际授权或工具启动事件同步,增加慢启动回归,保留取消生命周期和清理检查。

验证:

  • 最终提交的 GitHub CI 检查 24 项全部成功:包含 Linux Python 3.10–3.14、Windows Python 3.10、三平台 Desktop、Skill bridge、CodeQL 和 CLA;各 Linux 覆盖率阈值检查均通过。
  • Python 3.14 原生 make test PY=3.14(离线,排除 resource_selector_live):21,461 passed、11 skipped,退出码 0;JUnit 0 failures / 0 errors。
  • 原生 make lint:Ruff 与 ty 通过,退出码 0;git diff --check 通过。
  • 生产源码已完成 Linux namespace 的 allow_once / deny / prompt 冷恢复验证,以及联动 PRE 客户端 35/35 严格 API+SLS 验收。PRE 镜像来源为 e442786,与本 PR 的生产源码一致;本轮补充仅调整测试,未重新部署 PRE。
  • 11 skipped 包含 Windows 专属检查、无法创建 symlink 的 fixture,以及本机 ROS CLI 缺少 start/stop-chat 的检查。完整跨 Python/OS 的 GitHub CI 结果以本 PR 的新提交为准。

范围与已知问题:

  • 本轮覆盖平台按协议等待交接后受控销毁的恢复;不包含外部工具仍执行时任意强杀 Pod 或节点丢失的副作用幂等保证。
  • 部署确认修复分支仍存在已诊断问题:条件候选约束可能触发 Agent 修复,空 parameter_overrides 会清空累计覆盖,确认校验反馈又可能诱导模型提交由 Python 管理的 confirmation 字段。该逻辑在本分支的主干基线中已存在,按要求不在本 PR 修改;单轮 PRE 通过不能证明该路径已修复。

@ruanzhengxin-zhuxing
ruanzhengxin-zhuxing force-pushed the codex/permission-cold-recovery-final branch 3 times, most recently from 646db14 to bf285d3 Compare October 31, 2026 03:57
@ruanzhengxin-zhuxing
ruanzhengxin-zhuxing marked this pull request as ready for review October 31, 2026 05:22
@guima-why

guima-why commented Nov 1, 2026 •

Copy link
Copy Markdown
Collaborator

iac-code E2E 报告

提交:f56b1cbf5aabb7adbbf1717ca233911a88176ab2 · 状态:失败

安全分析:按作者白名单免检;改动影响分析、用例选择和 E2E 验收照常执行。

链路阶段进展

时间为 UTC+8;预计完成时间为估算,运行中计数尚未作为通过证据。

环节 状态 开始 完成 已耗时 预计完成 最近更新 当前说明
PR 身份与触发条件核对 已完成 11-02 14:17:30 11-02 14:17:30 0s — 11-02 14:17:30 —
改动材料采集 已完成 11-02 14:18:20 11-02 14:20:24 124s — 11-02 14:21:52 完成 49;总数 49
Agent 影响分析(安全免检) 已完成 11-02 14:23:01 11-02 14:23:27 26s — 11-02 14:23:27 完成 49;总数 49
测试计划确定 / 维护者授权 已完成 11-02 14:23:28 11-02 14:23:29 2s — 11-02 14:23:29 —
源码包准备与摘要计算 已完成 11-02 14:25:23 11-02 14:25:33 10s — 11-02 14:26:49 —
源码上传及读回校验 已完成 11-02 14:26:10 11-02 14:26:49 39s — 11-02 14:26:49 —
full 触发与排队 已完成 11-02 14:31:15 11-02 14:32:25 69s — 11-02 14:32:25 —
full 环境准备 已完成 11-02 14:32:25 11-02 14:35:41 197s — 11-02 14:35:41 —
full 用例执行 已完成 11-02 14:35:41 11-02 14:38:27 166s — 11-02 14:42:09 完成 77;总数 77;失败 0;重跑 0
full 结果核验 已完成 11-02 14:41:47 11-02 14:42:10 24s — 11-02 14:42:10 最终证据已核验
live 触发与排队 已完成 11-02 14:43:24 11-02 14:43:27 2s — 11-02 14:43:27 —
live 环境准备 已完成 11-02 14:43:27 11-02 14:47:02 215s — 11-02 14:47:02 —
live 用例执行 已完成 11-02 14:47:02 11-02 15:24:40 2258s — 11-02 15:25:43 完成 136;总数 136;失败 1;重跑 5
资源清理(随用例并行) 已完成 11-02 14:47:02 11-02 15:24:40 2258s — 11-02 15:26:22 清理完成/无需清理 136;清理异常 0;清理尚待确认 0
live 结果核验 已完成 11-02 15:25:03 11-02 15:25:44 41s — 11-02 15:25:44 最终证据已核验
失败复盘 已完成 11-02 15:27:02 11-02 15:28:51 109s — 11-02 15:28:51 —
最终 GitHub 报告发布 已完成 11-02 15:28:52 11-02 15:29:07 16s — 11-02 15:29:07 —
GitHub 卡点回写与请求收尾 已完成 11-02 15:28:52 11-02 15:29:08 16s — 11-02 15:29:08 —

最近网络尝试(仅操作枚举和错误类别,不含请求地址或响应内容):

  • github.comment.read:尝试 2 次,31.65s;timeout
  • github.comment.read:尝试 2 次,31.62s;timeout
  • github.comments.list:尝试 2 次,31.76s;timeout
  • github.pr.get:尝试 2 次,32.16s;timeout
用例集 结果 耗时 重跑 / 重跑通过 清理异常
full 77/77 通过 162.31s 0 / 0 0
live 135/136 通过 2254.32s 5 / 4 0
full 逐例结果(77 条)
用例 结果 秒 模型 尝试次数 清理
a2a-recovery-contract 通过 31.76 — 1 不适用
a2a-handoff-recovery-contract 通过 32.96 — 1 不适用
a2a-success-contract 通过 29.61 — 1 不适用
a2a-cancel-contract 通过 4.17 — 1 不适用
repl-normal-contract 通过 5.87 — 1 不适用
repl-pipeline-contract 通过 64.91 — 1 不适用
web-api-contract 通过 6.77 — 1 不适用
output-limit-text-chat 通过 3.82 — 1 不适用
output-limit-text-responses 通过 3.97 — 1 不适用
output-limit-text-anthropic 通过 3.42 — 1 不适用
output-limit-tool-chat 通过 3.52 — 1 不适用
output-limit-tool-responses 通过 4.07 — 1 不适用
output-limit-tool-anthropic 通过 3.37 — 1 不适用
output-limit-exhausted 通过 3.52 — 1 不适用
output-limit-empty 通过 3.42 — 1 不适用
output-limit-pipeline 通过 3.87 — 1 不适用
execution-warm-resume-pausing-normal 通过 6.57 — 1 不适用
execution-warm-resume-pausing-pipeline 通过 7.62 — 1 不适用
execution-warm-resume-paused-normal 通过 3.62 — 1 不适用
execution-warm-resume-paused-pipeline 通过 3.62 — 1 不适用
execution-disconnect-timeout-after-operation-id-normal 通过 3.67 — 1 不适用
execution-disconnect-timeout-after-operation-id-pipeline 通过 3.57 — 1 不适用
execution-disconnect-timeout-inflight-sync-call-pipeline 通过 3.72 — 1 不适用
execution-disconnect-timeout-backup-blocked-pipeline 通过 3.27 — 1 不适用
execution-natural-completion-while-pausing-normal 通过 2.62 — 1 不适用
execution-slow-termination-storage-normal 通过 2.62 — 1 不适用
execution-terminate-during-bootstrap-normal 通过 1.52 — 1 不适用
execution-terminate-during-bootstrap-pipeline 通过 1.52 — 1 不适用
execution-terminate-during-bootstrap-disconnected-normal 通过 1.57 — 1 不适用
execution-terminate-during-bootstrap-disconnected-pipeline 通过 1.52 — 1 不适用
execution-disconnect-timeout-during-turn-backup-normal 通过 7.63 — 1 不适用
execution-legacy-cancel-idle-pipeline 通过 3.57 — 1 不适用
execution-slow-rollover-storage-normal 通过 2.27 — 1 不适用
execution-stack-instances-timeout-after-operation-id-normal 通过 3.17 — 1 不适用
execution-stack-instances-terminate-inflight-normal 通过 2.07 — 1 不适用
execution-recovery-during-normal-rollover-normal 通过 2.62 — 1 不适用
permission-agui-generation-fence 通过 8.08 — 1 不适用
permission-staged-generation-fence 通过 3.97 — 1 不适用
permission-sub-pipeline-timeout 通过 2.92 — 1 不适用
permission-normal-allow_once 通过 4.47 — 1 不适用
permission-normal-deny 通过 4.47 — 1 不适用
permission-pipeline-allow_once 通过 4.07 — 1 不适用
permission-pipeline-deny 通过 4.22 — 1 不适用
permission-prompt-supersede-same-process 通过 4.92 — 1 不适用
permission-prompt-supersede-after-restart 通过 6.53 — 1 不适用
permission-confirmation-followup-same-process 通过 4.37 — 1 不适用
permission-confirmation-followup-after-restart 通过 6.32 — 1 不适用
permission-mixed-confirmation-followup-same-process 通过 4.52 — 1 不适用
permission-mixed-confirmation-followup-after-restart 通过 6.22 — 1 不适用
permission-pipeline-candidate-first 通过 4.22 — 1 不适用
permission-solution_planning_and_selection-allow_once 通过 4.12 — 1 不适用
permission-solution_planning_and_selection-deny 通过 4.17 — 1 不适用
permission-materialize_selected_candidate-allow_once 通过 4.22 — 1 不适用
permission-materialize_selected_candidate-deny 通过 4.17 — 1 不适用
permission-deploying-allow_once 通过 4.17 — 1 不适用
permission-deploying-deny 通过 4.12 — 1 不适用
permission-handoff-allow_once 通过 4.57 — 1 不适用
permission-handoff-deny 通过 4.57 — 1 不适用
permission-pipeline-handoff-context-same-process 通过 5.07 — 1 不适用
permission-pipeline-handoff-context-cold-recovery 通过 8.28 — 1 不适用
permission-protocol-chat 通过 4.72 — 1 不适用
permission-protocol-responses 通过 5.22 — 1 不适用
permission-protocol-anthropic 通过 4.57 — 1 不适用
permission-handoff-runtime-close 通过 4.62 — 1 不适用
permission-handoff-backup-failure 通过 4.62 — 1 不适用
permission-handoff-crash-before-commit 通过 4.22 — 1 不适用
permission-handoff-concurrent-workers 通过 6.72 — 1 不适用
permission-real-pipeline-allow_once 通过 6.17 — 1 不适用
permission-real-pipeline-deny 通过 6.02 — 1 不适用
permission-artifact-edit-restart 通过 4.22 — 1 不适用
permission-namespace-allow_once 通过 4.12 — 1 不适用
permission-namespace-deny 通过 4.02 — 1 不适用
permission-namespace-prompt 通过 4.02 — 1 不适用
ssf-candidate-batch-same-process 通过 2.87 — 1 不适用
ssf-candidate-batch-cold-recovery 通过 2.82 — 1 不适用
ssf-step1-followup-contract 通过 4.67 — 1 不适用
ssf-step2-followup-contract 通过 8.23 — 1 不适用
live 逐例结果(136 条)
用例 结果 秒 模型 尝试次数 清理
ssf-step1-followup-a2a 通过 200.55 deepseek-v4-flash-0731 1 无需清理
ssf-step2-followup-a2a 重跑通过 616.85 glm-5.2-fast-preview 2 无需清理
ssf-a2a-happy-multi-plan 通过 136.48 glm-5.3-prime 1 已清理
ssf-a2a-safe-quote-cancel 通过 92.56 deepseek-v4.1-flash 1 已清理
ssf-a2a-step1-clarify 通过 125.4 deepseek-v4-flash-0731 1 已清理
ssf-a2a-step1-replan-replace 通过 331.39 glm-5.2-fast-preview 1 已清理
ssf-a2a-step2-required-parameter 通过 112.82 glm-5.3-prime 1 已清理
ssf-a2a-step2-structured-override 通过 116.71 deepseek-v4.1-flash 1 已清理
ssf-a2a-step2-reselect-new-intent 通过 196.94 deepseek-v4.1-flash 1 已清理
ssf-a2a-non-aliyun-early-exit 通过 14.76 glm-5.3-prime 1 已清理
ssf-a2a-performance-backup-restore 通过 99.1 deepseek-v4.1-flash 1 已清理
ssf-a2a-input-during-backup 通过 223.32 deepseek-v4-flash-0731 1 已清理
ssf-a2a-fault-checkpoints 通过 185.79 glm-5.3-prime 1 已清理
ssf-a2a-running-step1 通过 75.04 glm-5.3-prime 1 已清理
ssf-a2a-running-step2 通过 356.22 deepseek-v4-flash-0731 1 已清理
ssf-a2a-running-step3 通过 116.19 glm-5.3-prime 1 已清理
ssf-a2a-normal-running 通过 134.63 deepseek-v4.1-flash 1 已清理
ssf-a2a-cancel-step1 通过 6.61 deepseek-v4.1-flash 1 已清理
ssf-a2a-cancel-step2 通过 70.89 deepseek-v4.1-flash 1 已清理
ssf-a2a-cancel-step3 通过 84.45 glm-5.3-prime 1 已清理
ssf-a2a-rollback-recovery-step1 通过 180.06 glm-5.3-prime 1 已清理
ssf-a2a-rollback-recovery-step2 通过 314.67 glm-5.2-fast-preview 1 已清理
ssf-a2a-rollback-recovery-step3 通过 325.82 deepseek-v4-flash-0731 1 已清理
ssf-a2a-rollback-stack-cleanup 通过 266.46 deepseek-v4.1-flash 1 已清理
ssf-a2a-rollback-cleanup-recovery 通过 285.85 deepseek-v4.1-flash 1 已清理
ssf-a2a-redaction-contract 通过 221.06 deepseek-v4.1-flash 1 已清理
ssf-a2a-image-initial-selection 通过 363.76 qwen3.8-max 1 已清理
ssf-a2a-image-asks-confirmation 通过 429.27 qwen3.8-max-0902 1 已清理
ssf-a2a-image-interrupt-handoff 通过 557.88 qwen3.8-flash 1 已清理
ssf-repl-single-plan-happy 通过 121.4 glm-5.3-prime 1 已清理
ssf-repl-multi-plan-natural-adjust 通过 154.83 glm-5.3-prime 1 已清理
ssf-repl-step1-clarify-replan 通过 74.39 glm-5.3-prime 1 已清理
ssf-repl-step1-replace-invalid-select 通过 430.37 deepseek-v4-flash-0731 1 已清理
ssf-repl-step2-required-parameter 通过 75.72 deepseek-v4.1-flash 1 已清理
ssf-repl-step2-reselect-progress 通过 135.59 glm-5.3-prime 1 已清理
ssf-repl-waiting-resume-all 通过 209.83 glm-5.2-fast-preview 1 已清理
ssf-repl-running-step1 通过 104.94 glm-5.2-fast-preview 1 已清理
ssf-repl-running-step2 通过 73.73 glm-5.3-prime 1 已清理
ssf-repl-running-step3 通过 147.33 deepseek-v4.1-flash 1 已清理
ssf-repl-normal-running-cancel-resume 通过 169.2 deepseek-v4-flash-0731 1 已清理
ssf-repl-interrupt-rollback 通过 163.12 glm-5.3-prime 1 已清理
ssf-repl-rollback-cleanup-recovery 通过 234.54 deepseek-v4.1-flash 1 已清理
ssf-repl-multimodal-lifecycle 通过 861.33 qwen3.8-omni-flash 1 已清理
ssf-legacy-selling-smoke 通过 60.11 glm-5.3-prime 1 已清理
selector-selected-next-turn 通过 12.99 glm-5.2-fast-preview 1 无需清理
selector-restart-before-answer 通过 15.21 glm-5.2-fast-preview 1 无需清理
selector-canceled-next-turn 通过 12.74 glm-5.2-fast-preview 1 无需清理
selector-empty-list-canceled-next-turn 通过 12.17 glm-5.2-fast-preview 1 无需清理
selector-sequential-vpc-vswitch 通过 16.79 glm-5.3-prime 1 无需清理
selector-duplicate-and-conflict 通过 13.56 glm-5.2-fast-preview 1 无需清理
selector-pipeline-handoff-normal 通过 14.06 deepseek-v4.1-flash 1 无需清理
selector-pipeline-stage-selection 通过 18.45 glm-5.3-prime 1 无需清理
selector-restart-normal-sigterm-selected 通过 12.37 glm-5.2-fast-preview 1 无需清理
selector-restart-normal-sigterm-canceled 通过 12.09 glm-5.2-fast-preview 1 无需清理
selector-restart-normal-sigkill-selected 通过 11.03 deepseek-v4.1-flash 1 无需清理
selector-restart-normal-sigkill-canceled 通过 12.19 glm-5.2-fast-preview 1 无需清理
selector-restart-normal-released-selected 通过 10.5 glm-5.3-prime 1 无需清理
selector-restart-normal-released-canceled 通过 12.37 glm-5.2-fast-preview 1 无需清理
selector-restart-pipeline-sigterm-selected 通过 12.95 deepseek-v4.1-flash 1 无需清理
selector-restart-pipeline-sigterm-canceled 通过 12.81 deepseek-v4-flash-0731 1 无需清理
selector-restart-pipeline-sigkill-selected 通过 12.29 glm-5.2-fast-preview 1 无需清理
selector-restart-pipeline-sigkill-canceled 通过 11.02 glm-5.3-prime 1 无需清理
selector-restart-pipeline-released-selected 通过 12.55 glm-5.2-fast-preview 1 无需清理
selector-restart-pipeline-released-canceled 通过 11.46 deepseek-v4.1-flash 1 无需清理
agui-selector-normal-selected 通过 11.56 deepseek-v4-flash-0731 1 无需清理
agui-selector-normal-canceled 通过 8.47 glm-5.3-prime 1 无需清理
agui-selector-normal-direct-input 通过 10.42 glm-5.2-fast-preview 1 无需清理
agui-selector-pipeline-selected 通过 42.12 glm-5.2-fast-preview 1 无需清理
agui-selector-pipeline-canceled 通过 87.03 deepseek-v4.1-flash 1 无需清理
agui-selector-pipeline-direct-input 通过 37.01 glm-5.3-prime 1 无需清理
repl-pipeline-scenario1 通过 182.61 deepseek-v4-flash-0731 1 已清理
repl-pipeline-ask-waiting 通过 197.41 glm-5.2-fast-preview 1 已清理
repl-pipeline-ask-waiting-resume 通过 111.73 glm-5.3-prime 1 已清理
repl-pipeline-image-initial 通过 224.2 qwen3.8-max 1 已清理
repl-pipeline-image-ask-waiting-resume 通过 314.49 qwen3.8-max-0902 1 已清理
repl-pipeline-image-selection-waiting-resume 通过 219.34 qwen3.8-flash 1 已清理
repl-pipeline-image-normal-handoff 通过 309.98 qwen3.8-max 1 已清理
repl-pipeline-image-interrupt 通过 58.47 qwen3.8-max-0902 1 已清理
repl-pipeline-evaluate-resume 通过 132.62 glm-5.3-prime 1 已清理
repl-pipeline-selection-invalid-then-valid 通过 350.46 glm-5.2-fast-preview 1 已清理
repl-pipeline-selection-waiting-resume 通过 81.0 deepseek-v4.1-flash 1 已清理
repl-pipeline-rollback-step2 通过 24.37 deepseek-v4-flash-0731 1 已清理
repl-pipeline-rollback-step3 通过 39.65 glm-5.3-prime 1 已清理
repl-pipeline-rollback-step4-selection 通过 109.37 deepseek-v4-flash-0731 1 已清理
repl-pipeline-rollback-step5-cleanup 通过 206.19 deepseek-v4.1-flash 1 已清理
repl-pipeline-rollback-step5-cleanup-recovery 通过 207.28 deepseek-v4.1-flash 1 已清理
a2a-recovery-redaction-step4 通过 292.9 deepseek-v4.1-flash 1 无需清理
a2a-recovery-iac-code-web-2c4g-step4 通过 112.16 glm-5.3-prime 1 无需清理
a2a-recovery-contract-graceful-cancel 通过 10.41 glm-5.3-prime 1 已清理
a2a-recovery-contract-graceful-success 通过 169.76 deepseek-v4-flash-0731 1 已清理
a2a-recovery-image-ask-waiting 重跑通过 343.99 qwen3.8-flash 2 已清理
a2a-recovery-image-initial 通过 210.56 qwen3.8-max-0902 1 已清理
a2a-recovery-image-interrupt 通过 355.09 qwen3.8-omni-flash 1 已清理
a2a-recovery-image-normal-handoff 通过 225.8 qwen3.8-max 1 已清理
a2a-recovery-image-selection-waiting 通过 234.62 qwen3.8-max-0902 1 已清理
a2a-recovery-scenario1 通过 84.5 glm-5.3-prime 1 已清理
a2a-recovery-scenario1-performance-backup 通过 148.65 glm-5.2-fast-preview 1 已清理
a2a-recovery-selection-during-backup 通过 145.36 deepseek-v4-flash-0731 1 已清理
a2a-recovery-normal-running 通过 85.72 glm-5.3-prime 1 已清理
a2a-recovery-ask-waiting 通过 82.98 glm-5.3-prime 1 已清理
a2a-recovery-selection-waiting 通过 107.7 glm-5.2-fast-preview 1 已清理
a2a-recovery-fault-after-snapshot 通过 116.05 deepseek-v4-flash-0731 1 已清理
a2a-recovery-rollback-step5-cleanup 通过 134.98 glm-5.3-prime 1 已清理
a2a-recovery-rollback-step5-cleanup-recovery 通过 124.23 glm-5.3-prime 1 已清理
a2a-recovery-step1-running 通过 105.08 glm-5.2-fast-preview 1 已清理
a2a-recovery-step2-running 通过 113.87 deepseek-v4-flash-0731 1 已清理
a2a-recovery-step3-running 通过 105.01 glm-5.2-fast-preview 1 已清理
a2a-recovery-step4-running 通过 87.2 deepseek-v4.1-flash 1 已清理
a2a-recovery-step5-running 通过 138.01 deepseek-v4-flash-0731 1 已清理
a2a-recovery-rollback-step1 通过 105.24 glm-5.3-prime 1 已清理
a2a-recovery-rollback-step2 通过 107.9 glm-5.2-fast-preview 1 已清理
a2a-recovery-rollback-step3 通过 101.12 glm-5.3-prime 1 已清理
a2a-recovery-rollback-step4 通过 142.76 deepseek-v4-flash-0731 1 已清理
a2a-recovery-rollback-step5 通过 90.27 deepseek-v4.1-flash 1 已清理
a2a-recovery-cancel-step1 通过 27.2 glm-5.2-fast-preview 1 已清理
a2a-recovery-cancel-step2 通过 29.31 glm-5.2-fast-preview 1 已清理
a2a-recovery-cancel-step3 通过 20.12 glm-5.3-prime 1 已清理
a2a-recovery-cancel-step4 通过 62.26 glm-5.3-prime 1 已清理
a2a-recovery-cancel-step5 通过 83.8 glm-5.2-fast-preview 1 已清理
repl-aliyun-readonly-canary 通过 7.63 deepseek-v4-flash-0731 1 无需清理
ros-awareness-promotions 失败 86.36 deepseek-v4-flash-0731 2 无需清理
ros-awareness-renewal 通过 8.0 glm-5.3-prime 1 无需清理
ros-awareness-billing 通过 10.45 glm-5.2-fast-preview 1 无需清理
ros-awareness-billing-explicit 重跑通过 13.41 glm-5.3-prime 2 无需清理
ros-awareness-gpu-availability 通过 14.38 glm-5.2-fast-preview 1 无需清理
ros-awareness-traffic-offset 通过 10.69 deepseek-v4.1-flash 1 无需清理
ros-awareness-default-region 通过 6.54 glm-5.3-prime 1 无需清理
ros-awareness-disabled 通过 5.77 glm-5.2-fast-preview 1 无需清理
ros-awareness-deployment-pricing 通过 5.59 glm-5.3-prime 1 无需清理
promotional-offer-followup-a2a 通过 64.99 deepseek-v4.1-flash 1 无需清理
plan-cost-refresh-a2a 通过 119.85 glm-5.2-fast-preview 1 无需清理
coupon-budget-a2a 通过 121.02 glm-5.3-prime 1 无需清理
coupon-budget-mock-a2a 重跑通过 721.92 deepseek-v4-flash-0731 2 无需清理
smoke-a2a-vpc 通过 15.6 glm-5.3-prime 1 无需清理
smoke-acp-vpc 通过 8.89 glm-5.3-prime 1 无需清理
smoke-headless-vpc 通过 24.77 deepseek-v4.1-flash 1 无需清理
失败详情:ros-awareness-promotions

失败检查:无已登记检查标题
;另有 2 项标题未公开。

安全结构化证据:

{
  "0": {
    "kind": "execution",
    "value": {
      "cleanup": "not-needed",
      "attempts": [
        {
          "cleanup": "not-needed",
          "evidence": {
            "pending_input_kind": "ask_user_question",
            "pending_question_answered": false,
            "pending_step": "solution_planning_and_selection"
          },
          "seconds": 57.14,
          "status": "failed"
        },
        {
          "cleanup": "not-needed",
          "evidence": {
            "pending_step": "solution_planning_and_selection"
          },
          "seconds": 29.22,
          "status": "failed"
        }
      ]
    }
  },
  "1": {
    "kind": "diagnostics",
    "value": {
      "pending_step": "solution_planning_and_selection"
    }
  }
}

定向复测参数(私有源码传输参数在内部运行记录中取得):

{
  "source_sha": "f56b1cbf5aabb7adbbf1717ca233911a88176ab2",
  "suite": "live",
  "case": "ros-awareness-promotions",
  "jobs": 1,
  "retries": 0,
  "case_models": "ros-awareness-promotions=deepseek-v4-flash-0731"
}

失败复盘建议(不改变验收结论)

  • ros-awareness-promotions:证据不足;补充有界结构化证据后再判断。证据编号:0, 1

说明:每个失败用例最多重跑一次;任一次资源清理失败或未验证均不能判通过。
复盘是待核实建议;报告只展示固定安全字段,不含内部链接或原始云日志。

@ruanzhengxin-zhuxing
ruanzhengxin-zhuxing marked this pull request as draft November 2, 2026 03:42
@ruanzhengxin-zhuxing
ruanzhengxin-zhuxing force-pushed the codex/permission-cold-recovery-final branch 2 times, most recently from 033ee39 to 926edee Compare November 2, 2026 04:46
- Fence complete Normal, Pipeline and parallel SubPipeline permission handoffs with shared backup receipts.
- Restore original candidates, decisions and persisted tool-result batches under authoritative execution ownership.
- Cover cold successors, concurrent workers, stale finalizers and snapshot cancellation across supported Python versions.
- Target backup-window E2E delays to the expected pending input and preserve request-dispatch concurrency checks.
- Verify exclusive window claims, failure receipts, timer deadlines and self-reported process identities.
@ruanzhengxin-zhuxing
ruanzhengxin-zhuxing force-pushed the codex/permission-cold-recovery-final branch from 926edee to f56b1cb Compare November 2, 2026 05:36
@ruanzhengxin-zhuxing
ruanzhengxin-zhuxing marked this pull request as ready for review November 2, 2026 06:16
@guima-why
guima-why merged commit eb2daf3 into main Nov 2, 2026
25 of 26 checks passed
@guima-why
guima-why deleted the codex/permission-cold-recovery-final branch November 2, 2026 08:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants