Skip to content

fix(pipeline): improve solution selection, product guidance and cost planning - #396

Merged
guima-why merged 16 commits into
mainfrom
fix-ecs-user-issue
Oct 24, 2026
Merged

guima-why merged 16 commits into
mainfrom
fix-ecs-user-issue

Conversation

@guima-why

Copy link
Copy Markdown
Collaborator

Users could lose a valid candidate selection after recovery, be routed into a deployment flow for standalone inquiries, or receive estimates using a different billing period from their request. This updates solution-first planning and its product/coupon guidance while preserving existing UI event contracts and historical candidate recovery.

Changes

  • Preserve candidate batch identity across idempotent display calls and transcript recovery so valid selections do not regenerate details.
  • Add opt-in, region-aware ROS assistant guidance for standalone billing, promotions, renewals and availability inquiries. Inject the short supplement into the Step 1 skill only; deployment cost and coupon questions remain in planning. The feature defaults off (IAC_CODE_ROS_AGENT_AWARENESS).
  • Add on-demand SWAS product guidance, explicit product-to-guide mapping and installed-package reference coverage. Separate minimum requirements from recommended specifications and clarify economy e versus burstable t instances.
  • Retry transient OpenMeta failures within one bounded deadline and return an explicit retry suggestion when metadata remains unavailable.
  • Honor requested estimate units and durations. Use period-neutral model-facing cost fields, normalize legacy records/candidates in Python, and update estimate labels and browser cache versions.
  • Add read-only coupon discovery and eligibility guidance covering remaining balance, validity, payment type, product exclusions and thresholds without ending the deployment flow.

Validation

  • Latest targeted offline regression: 650 passed; Ruff, translation extraction/compilation and frontend runner syntax checks passed.
  • Four real text models each completed three HTTP/SSE A2A turns covering monthly estimates, an explicit eight-hour duration and real read-only coupon queries.
  • Routing validation: final four-model matrix 32/32 scenarios passed.
  • Coupon decision validation: four real models, nine scenarios each (36 decisions), with only coupon API business responses mocked. Actual redemption/settlement was not verified.
  • Regression coverage includes same-process recovery, cold recovery, legacy persisted cost fields and the Step 2 model prompt.

…ection

Preserve minimum specifications when users also provide recommendations. Answer promotional offer followups through the opt-in regional ROS assistant handoff without treating questions as selection confirmation.

Clarify economy e and burstable t instance characteristics in the ECS guide. Add behavior-named real HTTP/SSE coverage and offline checks for visible links and accepted pipeline conclusions.
Honor explicit estimate units and durations with period-neutral planning fields. Normalize legacy records and candidates in Python while preserving UI event contracts and valid selection recovery.

Load coupon guidance on demand, query current-account eligibility, and retain deployment planning for coupon followups. Add read-only real A2A coverage and a real-model coupon fixture matrix under scripts/ci.

Use period-neutral estimate labels with updated browser cache versions, localized errors, and tests for historical candidate recovery.
Comment thread scripts/ci/run_coupon_budget_mock_a2a.py Fixed
Parse HTTPS URLs and compare the console hostname exactly when recording assistant references in coupon fixture reports. Cover legitimate links, forged domains, path/query lookalikes, userinfo and malformed URLs.
Translate period-neutral candidate cost descriptions in all six locales and explicitly use UTF-8 for candidate recovery and cost-contract fixtures.
Simulate elapsed request time with a budget clock so the backoff boundary test reaches its first response on Windows under load. Preserve the single-attempt and wall-clock assertions, the real asyncio scheduler, and production timeout behavior.
@guima-why
guima-why marked this pull request as ready for review October 22, 2026 15:22
@guima-why

guima-why commented Oct 22, 2026 •

Copy link
Copy Markdown
Collaborator Author

iac-code E2E 报告

提交:f4ffbbe5a0a5bafdc9c79626c2f886c056af0406 · 状态:通过

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

链路阶段进展

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

环节 状态 开始 完成 已耗时 预计完成 最近更新 当前说明
PR 身份与触发条件核对 已完成 10-23 21:46:47 10-23 21:46:47 0s — 10-23 21:46:47 —
改动材料采集 已完成 10-23 21:47:36 10-23 23:02:11 4475s — 10-23 23:06:33 完成 86;总数 86
Agent 影响分析(安全免检) 已完成 10-23 23:06:35 10-23 23:07:11 36s — 10-23 23:07:11 完成 86;总数 86
测试计划确定 / 维护者授权 已完成 10-23 23:07:12 10-23 23:07:14 2s — 10-23 23:07:14 —
源码包准备与摘要计算 已完成 10-23 23:13:30 10-23 23:14:27 57s — 10-23 23:15:28 —
源码上传及读回校验 已完成 10-23 23:15:21 10-23 23:15:29 8s — 10-23 23:15:29 —
full 触发与排队 已完成 10-23 23:22:17 10-23 23:22:26 8s — 10-23 23:22:26 —
full 环境准备 已完成 10-23 23:22:26 10-23 23:22:54 29s — 10-23 23:22:54 —
full 用例执行 已完成 10-23 23:22:54 10-23 23:25:15 141s — 10-23 23:29:32 完成 66;总数 66;失败 0;重跑 0
full 结果核验 已完成 10-23 23:29:09 10-23 23:29:33 24s — 10-23 23:29:33 最终证据已核验
live 触发与排队 已完成 10-23 23:39:35 10-23 23:39:44 9s — 10-23 23:39:44 —
live 环境准备 已完成 10-23 23:39:44 10-23 23:40:56 73s — 10-23 23:40:56 —
live 用例执行 已完成 10-23 23:40:56 10-24 00:12:40 1904s — 10-24 00:21:19 完成 133;总数 133;失败 0;重跑 0
资源清理(随用例并行) 已完成 10-23 23:40:56 10-24 00:12:40 1904s — 10-24 00:22:06 清理完成/无需清理 133;清理异常 0;清理尚待确认 0
live 结果核验 已完成 10-24 00:20:30 10-24 00:21:21 51s — 10-24 00:21:21 最终证据已核验
失败复盘 无需执行 — 10-24 00:27:59 — — 10-24 00:27:59 —
最终 GitHub 报告发布 已完成 10-24 00:28:00 10-24 00:28:15 15s — 10-24 00:28:15 —
GitHub 卡点回写与请求收尾 已完成 10-24 00:28:01 10-24 00:28:16 15s — 10-24 00:28:16 —

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

  • github.pr.get:尝试 2 次,39.3s;timeout
  • github.comment.write:尝试 1 次,30.03s;timeout
  • github.pr.get:尝试 2 次,32.43s;timeout
  • github.comment.write:尝试 1 次,30.02s;timeout
用例集 结果 耗时 重跑 / 重跑通过 清理异常
full 66/66 通过 137.73s 0 / 0 0
live 133/133 通过 1900.32s 0 / 0 0
full 逐例结果(66 条)
用例 结果 秒 模型 尝试次数 清理
a2a-recovery-contract 通过 31.51 — 1 不适用
a2a-handoff-recovery-contract 通过 32.36 — 1 不适用
a2a-success-contract 通过 29.4 — 1 不适用
a2a-cancel-contract 通过 3.97 — 1 不适用
repl-normal-contract 通过 5.57 — 1 不适用
repl-pipeline-contract 通过 64.85 — 1 不适用
web-api-contract 通过 6.57 — 1 不适用
execution-warm-resume-pausing-normal 通过 6.57 — 1 不适用
execution-warm-resume-pausing-pipeline 通过 7.62 — 1 不适用
execution-warm-resume-paused-normal 通过 3.57 — 1 不适用
execution-warm-resume-paused-pipeline 通过 3.62 — 1 不适用
execution-disconnect-timeout-after-operation-id-normal 通过 3.57 — 1 不适用
execution-disconnect-timeout-after-operation-id-pipeline 通过 3.62 — 1 不适用
execution-disconnect-timeout-inflight-sync-call-pipeline 通过 3.57 — 1 不适用
execution-disconnect-timeout-backup-blocked-pipeline 通过 3.07 — 1 不适用
execution-natural-completion-while-pausing-normal 通过 2.57 — 1 不适用
execution-slow-termination-storage-normal 通过 2.57 — 1 不适用
execution-terminate-during-bootstrap-normal 通过 1.52 — 1 不适用
execution-terminate-during-bootstrap-pipeline 通过 1.52 — 1 不适用
execution-terminate-during-bootstrap-disconnected-normal 通过 1.52 — 1 不适用
execution-terminate-during-bootstrap-disconnected-pipeline 通过 1.52 — 1 不适用
execution-disconnect-timeout-during-turn-backup-normal 通过 7.52 — 1 不适用
execution-legacy-cancel-idle-pipeline 通过 3.42 — 1 不适用
execution-slow-rollover-storage-normal 通过 2.27 — 1 不适用
execution-stack-instances-timeout-after-operation-id-normal 通过 3.07 — 1 不适用
execution-stack-instances-terminate-inflight-normal 通过 2.07 — 1 不适用
execution-recovery-during-normal-rollover-normal 通过 2.57 — 1 不适用
permission-agui-generation-fence 通过 7.52 — 1 不适用
permission-staged-generation-fence 通过 3.57 — 1 不适用
permission-sub-pipeline-timeout 通过 2.77 — 1 不适用
permission-normal-allow_once 通过 3.57 — 1 不适用
permission-normal-deny 通过 3.47 — 1 不适用
permission-pipeline-allow_once 通过 3.32 — 1 不适用
permission-pipeline-deny 通过 3.32 — 1 不适用
permission-prompt-supersede-same-process 通过 4.77 — 1 不适用
permission-prompt-supersede-after-restart 通过 6.17 — 1 不适用
permission-confirmation-followup-same-process 通过 4.22 — 1 不适用
permission-confirmation-followup-after-restart 通过 5.67 — 1 不适用
permission-mixed-confirmation-followup-same-process 通过 4.22 — 1 不适用
permission-mixed-confirmation-followup-after-restart 通过 5.67 — 1 不适用
permission-pipeline-candidate-first 通过 3.42 — 1 不适用
permission-solution_planning_and_selection-allow_once 通过 3.37 — 1 不适用
permission-solution_planning_and_selection-deny 通过 3.42 — 1 不适用
permission-materialize_selected_candidate-allow_once 通过 3.37 — 1 不适用
permission-materialize_selected_candidate-deny 通过 3.37 — 1 不适用
permission-deploying-allow_once 通过 3.37 — 1 不适用
permission-deploying-deny 通过 3.37 — 1 不适用
permission-handoff-allow_once 通过 3.67 — 1 不适用
permission-handoff-deny 通过 3.62 — 1 不适用
permission-pipeline-handoff-context-same-process 通过 4.87 — 1 不适用
permission-pipeline-handoff-context-cold-recovery 通过 7.77 — 1 不适用
permission-protocol-chat 通过 4.62 — 1 不适用
permission-protocol-responses 通过 5.12 — 1 不适用
permission-protocol-anthropic 通过 4.47 — 1 不适用
permission-handoff-runtime-close 通过 4.37 — 1 不适用
permission-handoff-backup-failure 通过 4.22 — 1 不适用
permission-handoff-crash-before-commit 通过 4.12 — 1 不适用
permission-handoff-concurrent-workers 通过 5.87 — 1 不适用
permission-real-pipeline-allow_once 通过 5.87 — 1 不适用
permission-real-pipeline-deny 通过 5.77 — 1 不适用
permission-artifact-edit-restart 通过 4.07 — 1 不适用
permission-namespace-allow_once 通过 3.92 — 1 不适用
permission-namespace-deny 通过 3.87 — 1 不适用
permission-namespace-prompt 通过 3.87 — 1 不适用
ssf-candidate-batch-same-process 通过 2.67 — 1 不适用
ssf-candidate-batch-cold-recovery 通过 2.67 — 1 不适用
live 逐例结果(133 条)
用例 结果 秒 模型 尝试次数 清理
ssf-a2a-happy-multi-plan 通过 347.77 deepseek-v4-flash-0731 1 已清理
ssf-a2a-safe-quote-cancel 通过 98.73 glm-5.2-fast-preview 1 已清理
ssf-a2a-step1-clarify 通过 64.84 glm-5.3-prime 1 已清理
ssf-a2a-step1-replan-replace 通过 734.54 deepseek-v4.1-flash 1 已清理
ssf-a2a-step2-required-parameter 通过 171.07 deepseek-v4-flash-0731 1 已清理
ssf-a2a-step2-structured-override 通过 162.27 glm-5.2-fast-preview 1 已清理
ssf-a2a-step2-reselect-new-intent 通过 208.92 glm-5.3-prime 1 已清理
ssf-a2a-non-aliyun-early-exit 通过 21.35 deepseek-v4.1-flash 1 已清理
ssf-a2a-performance-backup-restore 通过 268.63 deepseek-v4.1-flash 1 已清理
ssf-a2a-input-during-backup 通过 121.17 glm-5.3-prime 1 已清理
ssf-a2a-fault-checkpoints 通过 156.68 glm-5.2-fast-preview 1 已清理
ssf-a2a-running-step1 通过 135.5 glm-5.2-fast-preview 1 已清理
ssf-a2a-running-step2 通过 134.95 deepseek-v4-flash-0731 1 已清理
ssf-a2a-running-step3 通过 134.11 glm-5.3-prime 1 已清理
ssf-a2a-normal-running 通过 69.79 glm-5.3-prime 1 已清理
ssf-a2a-cancel-step1 通过 6.64 glm-5.2-fast-preview 1 已清理
ssf-a2a-cancel-step2 通过 63.63 glm-5.2-fast-preview 1 已清理
ssf-a2a-cancel-step3 通过 90.99 glm-5.3-prime 1 已清理
ssf-a2a-rollback-recovery-step1 通过 725.95 deepseek-v4.1-flash 1 已清理
ssf-a2a-rollback-recovery-step2 通过 214.5 glm-5.2-fast-preview 1 已清理
ssf-a2a-rollback-recovery-step3 通过 253.08 deepseek-v4-flash-0731 1 已清理
ssf-a2a-rollback-stack-cleanup 通过 285.4 glm-5.3-prime 1 已清理
ssf-a2a-rollback-cleanup-recovery 通过 243.62 glm-5.3-prime 1 已清理
ssf-a2a-redaction-contract 通过 279.04 glm-5.2-fast-preview 1 已清理
ssf-a2a-image-initial-selection 通过 235.59 qwen3.8-max 1 已清理
ssf-a2a-image-asks-confirmation 通过 356.77 qwen3.8-max-0902 1 已清理
ssf-a2a-image-interrupt-handoff 通过 899.49 qwen3.8-flash 1 已清理
ssf-repl-single-plan-happy 通过 179.33 deepseek-v4-flash-0731 1 已清理
ssf-repl-multi-plan-natural-adjust 通过 154.22 glm-5.3-prime 1 已清理
ssf-repl-step1-clarify-replan 通过 119.32 glm-5.2-fast-preview 1 已清理
ssf-repl-step1-replace-invalid-select 通过 121.9 glm-5.3-prime 1 已清理
ssf-repl-step2-required-parameter 通过 201.24 deepseek-v4-flash-0731 1 已清理
ssf-repl-step2-reselect-progress 通过 304.55 deepseek-v4-flash-0731 1 已清理
ssf-repl-waiting-resume-all 通过 211.54 glm-5.2-fast-preview 1 已清理
ssf-repl-running-step1 通过 108.15 glm-5.2-fast-preview 1 已清理
ssf-repl-running-step2 通过 66.62 glm-5.3-prime 1 已清理
ssf-repl-running-step3 通过 125.29 glm-5.3-prime 1 已清理
ssf-repl-normal-running-cancel-resume 通过 97.77 deepseek-v4-flash-0731 1 已清理
ssf-repl-interrupt-rollback 通过 889.18 deepseek-v4.1-flash 1 已清理
ssf-repl-rollback-cleanup-recovery 通过 167.89 glm-5.3-prime 1 已清理
ssf-repl-multimodal-lifecycle 通过 730.87 qwen3.8-omni-flash 1 已清理
ssf-legacy-selling-smoke 通过 106.47 glm-5.2-fast-preview 1 已清理
selector-selected-next-turn 通过 14.23 glm-5.2-fast-preview 1 无需清理
selector-restart-before-answer 通过 20.1 deepseek-v4-flash-0731 1 无需清理
selector-canceled-next-turn 通过 13.31 glm-5.2-fast-preview 1 无需清理
selector-empty-list-canceled-next-turn 通过 10.64 glm-5.3-prime 1 无需清理
selector-sequential-vpc-vswitch 通过 20.09 glm-5.2-fast-preview 1 无需清理
selector-duplicate-and-conflict 通过 15.46 deepseek-v4-flash-0731 1 无需清理
selector-pipeline-handoff-normal 通过 15.45 glm-5.2-fast-preview 1 无需清理
selector-pipeline-stage-selection 通过 13.57 glm-5.3-prime 1 无需清理
selector-restart-normal-sigterm-selected 通过 13.75 deepseek-v4-flash-0731 1 无需清理
selector-restart-normal-sigterm-canceled 通过 11.54 glm-5.2-fast-preview 1 无需清理
selector-restart-normal-sigkill-selected 通过 13.37 deepseek-v4-flash-0731 1 无需清理
selector-restart-normal-sigkill-canceled 通过 9.9 glm-5.3-prime 1 无需清理
selector-restart-normal-released-selected 通过 14.07 glm-5.2-fast-preview 1 无需清理
selector-restart-normal-released-canceled 通过 11.14 glm-5.2-fast-preview 1 无需清理
selector-restart-pipeline-sigterm-selected 通过 10.09 glm-5.3-prime 1 无需清理
selector-restart-pipeline-sigterm-canceled 通过 14.51 deepseek-v4-flash-0731 1 无需清理
selector-restart-pipeline-sigkill-selected 通过 13.85 deepseek-v4-flash-0731 1 无需清理
selector-restart-pipeline-sigkill-canceled 通过 11.34 glm-5.2-fast-preview 1 无需清理
selector-restart-pipeline-released-selected 通过 10.89 glm-5.3-prime 1 无需清理
selector-restart-pipeline-released-canceled 通过 11.44 glm-5.2-fast-preview 1 无需清理
agui-selector-normal-selected 通过 12.1 deepseek-v4-flash-0731 1 无需清理
agui-selector-normal-canceled 通过 11.66 deepseek-v4-flash-0731 1 无需清理
agui-selector-normal-direct-input 通过 10.02 glm-5.2-fast-preview 1 无需清理
agui-selector-pipeline-selected 通过 50.98 glm-5.3-prime 1 无需清理
agui-selector-pipeline-canceled 通过 67.89 glm-5.2-fast-preview 1 无需清理
agui-selector-pipeline-direct-input 通过 44.96 glm-5.2-fast-preview 1 无需清理
repl-pipeline-scenario1 通过 115.24 deepseek-v4-flash-0731 1 已清理
repl-pipeline-ask-waiting 通过 165.5 deepseek-v4-flash-0731 1 已清理
repl-pipeline-ask-waiting-resume 通过 116.96 glm-5.3-prime 1 已清理
repl-pipeline-image-initial 通过 212.11 qwen3.8-max 1 已清理
repl-pipeline-image-ask-waiting-resume 通过 248.84 qwen3.8-max-0902 1 已清理
repl-pipeline-image-selection-waiting-resume 通过 240.88 qwen3.8-max 1 已清理
repl-pipeline-image-normal-handoff 通过 301.26 qwen3.8-max-0902 1 已清理
repl-pipeline-image-interrupt 通过 49.97 qwen3.8-max 1 已清理
repl-pipeline-evaluate-resume 通过 159.93 glm-5.2-fast-preview 1 已清理
repl-pipeline-selection-invalid-then-valid 通过 205.93 glm-5.2-fast-preview 1 已清理
repl-pipeline-selection-waiting-resume 通过 138.89 deepseek-v4.1-flash 1 已清理
repl-pipeline-rollback-step2 通过 15.09 glm-5.3-prime 1 已清理
repl-pipeline-rollback-step3 通过 34.64 deepseek-v4-flash-0731 1 已清理
repl-pipeline-rollback-step4-selection 通过 70.74 glm-5.3-prime 1 已清理
repl-pipeline-rollback-step5-cleanup 通过 344.45 deepseek-v4-flash-0731 1 已清理
repl-pipeline-rollback-step5-cleanup-recovery 通过 333.98 deepseek-v4-flash-0731 1 已清理
a2a-recovery-redaction-step4 通过 142.75 glm-5.3-prime 1 无需清理
a2a-recovery-iac-code-web-2c4g-step4 通过 228.4 deepseek-v4-flash-0731 1 无需清理
a2a-recovery-contract-graceful-cancel 通过 9.01 glm-5.3-prime 1 已清理
a2a-recovery-contract-graceful-success 通过 102.45 glm-5.2-fast-preview 1 已清理
a2a-recovery-image-ask-waiting 通过 237.4 qwen3.8-omni-flash 1 已清理
a2a-recovery-image-initial 通过 189.38 qwen3.8-max 1 已清理
a2a-recovery-image-interrupt 通过 187.23 qwen3.8-flash 1 已清理
a2a-recovery-image-normal-handoff 通过 259.08 qwen3.8-max-0902 1 已清理
a2a-recovery-image-selection-waiting 通过 231.27 qwen3.8-max 1 已清理
a2a-recovery-scenario1 通过 82.27 glm-5.3-prime 1 已清理
a2a-recovery-scenario1-performance-backup 通过 225.36 deepseek-v4.1-flash 1 已清理
a2a-recovery-selection-during-backup 通过 122.28 glm-5.2-fast-preview 1 已清理
a2a-recovery-normal-running 通过 115.04 glm-5.3-prime 1 已清理
a2a-recovery-ask-waiting 通过 107.56 glm-5.3-prime 1 已清理
a2a-recovery-selection-waiting 通过 120.98 glm-5.2-fast-preview 1 已清理
a2a-recovery-fault-after-snapshot 通过 111.52 glm-5.2-fast-preview 1 已清理
a2a-recovery-rollback-step5-cleanup 通过 339.15 deepseek-v4-flash-0731 1 已清理
a2a-recovery-rollback-step5-cleanup-recovery 通过 153.49 glm-5.3-prime 1 已清理
a2a-recovery-step1-running 通过 68.5 glm-5.3-prime 1 已清理
a2a-recovery-step2-running 通过 111.24 glm-5.2-fast-preview 1 已清理
a2a-recovery-step3-running 通过 116.56 deepseek-v4.1-flash 1 已清理
a2a-recovery-step4-running 通过 122.78 glm-5.3-prime 1 已清理
a2a-recovery-step5-running 通过 121.61 glm-5.2-fast-preview 1 已清理
a2a-recovery-rollback-step1 通过 102.89 glm-5.2-fast-preview 1 已清理
a2a-recovery-rollback-step2 通过 89.85 glm-5.3-prime 1 已清理
a2a-recovery-rollback-step3 通过 111.8 deepseek-v4.1-flash 1 已清理
a2a-recovery-rollback-step4 通过 72.63 glm-5.3-prime 1 已清理
a2a-recovery-rollback-step5 通过 93.37 glm-5.2-fast-preview 1 已清理
a2a-recovery-cancel-step1 通过 14.12 glm-5.2-fast-preview 1 已清理
a2a-recovery-cancel-step2 通过 15.18 glm-5.3-prime 1 已清理
a2a-recovery-cancel-step3 通过 26.56 glm-5.2-fast-preview 1 已清理
a2a-recovery-cancel-step4 通过 49.16 glm-5.3-prime 1 已清理
a2a-recovery-cancel-step5 通过 58.89 glm-5.3-prime 1 已清理
repl-aliyun-readonly-canary 通过 6.23 glm-5.2-fast-preview 1 无需清理
ros-awareness-promotions 通过 5.53 glm-5.2-fast-preview 1 无需清理
ros-awareness-renewal 通过 5.2 glm-5.2-fast-preview 1 无需清理
ros-awareness-billing 通过 5.66 deepseek-v4.1-flash 1 无需清理
ros-awareness-billing-explicit 通过 5.9 glm-5.2-fast-preview 1 无需清理
ros-awareness-gpu-availability 通过 5.77 deepseek-v4.1-flash 1 无需清理
ros-awareness-traffic-offset 通过 5.99 glm-5.2-fast-preview 1 无需清理
ros-awareness-default-region 通过 6.74 deepseek-v4.1-flash 1 无需清理
ros-awareness-disabled 通过 13.16 deepseek-v4.1-flash 1 无需清理
ros-awareness-deployment-pricing 通过 8.91 glm-5.2-fast-preview 1 无需清理
promotional-offer-followup-a2a 通过 51.87 glm-5.3-prime 1 无需清理
coupon-budget-a2a 通过 241.39 glm-5.2-fast-preview 1 无需清理
coupon-budget-mock-a2a 通过 266.27 deepseek-v4.1-flash 1 无需清理
smoke-a2a-vpc 通过 20.41 glm-5.2-fast-preview 1 无需清理
smoke-acp-vpc 通过 9.15 deepseek-v4.1-flash 1 无需清理
smoke-headless-vpc 通过 27.67 deepseek-v4-flash-0731 1 无需清理

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

@guima-why

Copy link
Copy Markdown
Collaborator Author

/aone authorize 9067790

@guima-why

Copy link
Copy Markdown
Collaborator Author

/aone retry 9067790

…outing

Project detached permission continuation events through TaskManager so GetTask exposes the final reply and clears consumed input. Accept complete fenced VPC templates from resolved final replies without accepting permission receipts. Place optional ROS consultation routing after general pipeline constraints, keep coupon budget work in the deployment flow, and clarify the billing scenario input without changing acceptance checks.
@guima-why

Copy link
Copy Markdown
Collaborator Author

/aone authorize ce14341

Keep deployment follow-up questions in planning and distinguish them from standalone console consultations. Preserve unknown amounts and avoid reusing an earlier coupon after a refresh failure. The E2E runner asks once for a missing visible answer only on the same waiting task, within the original timeout, and reports that follow-up count. Existing financial, transport and deployment-boundary acceptance checks remain in force.
@guima-why

Copy link
Copy Markdown
Collaborator Author

/aone authorize 6dbc0b3

@guima-why

Copy link
Copy Markdown
Collaborator Author

/aone authorize e1797f6

…ing coverage

Require a visible answer to the original coupon question without a runner follow-up. Clarify coupon estimates and explicit read-only queries while preserving the current plan.

Keep natural and explicit billing consultation cases in the live suite, with regression coverage and updated runner documentation.
@guima-why

Copy link
Copy Markdown
Collaborator Author

/aone authorize f4ffbbe

@guima-why
guima-why merged commit 50b1577 into main Oct 24, 2026
25 checks passed
@guima-why
guima-why deleted the fix-ecs-user-issue branch October 24, 2026 05:19
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