Skip to content

docs: 修正决策记录中 e2e 间歇失败的因果推断 - #1066

Merged
xerrors merged 1 commit into
mainfrom
docs/correct-e2e-flake-evidence
Sep 23, 2026
Merged

xerrors merged 1 commit into
mainfrom
docs/correct-e2e-flake-evidence

Conversation

@xerrors

@xerrors xerrors commented Sep 23, 2026

Copy link
Copy Markdown
Owner

变更说明

合并 #1063 后的证据表明,决策记录里“撤回沙箱保活 env 覆写后 e2e 恢复 success”的因果推断不成立:main 在本变更合入前(run 35818088032,ade113ec,旧 workflow)与合入后(run 35828838121)在 test_subagent_worker_enforces_inherited_write_policy[always_trust] 以相同签名失败(父 Run 240s 无 first_model_request_at,worker job 静默执行 241s 后被取消)。当日 8 次运行约半数失败,属既有 flake。

  • 任务类型:process
  • 目标:把决策记录改成与证据一致的当前判断;非目标:修复该 flake、改任何 CI 行为。
  • trivial 判断:仅文档修正,无行为变更;scripts/verify_engineering_contracts.py 通过。

验证情况

决策记录与证据一致

  • 失败面:记录保留已被推翻的因果推断
  • 语义 Owner:docs/develop-guides/decisions/implemented/2026-09-23-ci-system-tests-build-cache.md
  • 直接证据 / 命令:python3 scripts/verify_engineering_contracts.py 通过(113 decisions)
  • 负向案例:无(纯文档)
  • 结果:Inspected

未验证范围与风险

该 e2e flake 根因未定位,需独立排查(可疑点:replay server 在 api 容器内 detached 运行,父子 subagent 场景下 worker 的模型 HTTP 等待无超时/无日志)。

- 证据显示 test_subagent_worker_enforces_inherited_write_policy[always_trust] 的失败先于本次 CI 变更存在(合入前 main run 35818088032 同签名失败)
- 撤回沙箱保活 env 覆写与失败恢复的先后关系是巧合,不是因果;记录改为根因待查
Copilot AI lite review requested due to automatic review settings September 23, 2026 07:32
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, add credits to your account and enable them for code reviews in your settings.

@xerrors
xerrors merged commit 4628fd6 into main Sep 23, 2026
6 checks passed
@xerrors
xerrors deleted the docs/correct-e2e-flake-evidence branch September 23, 2026 07:34

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟡 Changes recommended

The decision record needs wording updates to avoid overstating causality and to remove PR-timeline language.

Get a fresh assessment by requesting another Copilot review.

Review effort: Lite
Findings: 1 Low severity

Open (1)
What changed in this PR

Updates the CI system-tests decision record to correct the causal interpretation of an intermittent E2E failure.

Changes:

  • Documents matching failures before and after the workflow change.
  • Clarifies that the root cause and impact remain unresolved.
  • Updates verification notes without changing CI behavior.
File Summary
docs/​develop-guides/​decisions/​implemented/​2026-09-23-ci-system-tests-build-cache.md Revises E2E failure evidence and causal conclusions.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

- 在 CI 中用 `docker/setup-buildx-action` 单独预构建 `yuxi-api` 与 `yuxi-sandbox-provisioner` 镜像,启用 `type=gha,mode=max` 层缓存;`docker compose up` 去掉 `--build`。冷运行与原先等价,热运行命中 apt/uv sync/pip 层。
- 镜像名不硬编码,从 `docker compose config --format json` 解析,跟随 `.env.template` 与 docker-compose.yml。
- CI 环境曾将 `SANDBOX_KEEPALIVE_INTERVAL_SECONDS=5` 写入 .env 并经容器 env 继承 `E2E_RUN_POLL_INTERVAL_SECONDS=1`。首轮 PR CI 中 3 次运行有 2 次在 `test_subagent_worker_enforces_inherited_write_policy[always_trust]` 以相同签名失败(worker 租约心跳仍在、Run 执行停滞 240s 超时),失败点在沙箱相关等待上与保活节奏变化相容但无直接证据。已撤回这两个覆写,e2e 回到默认轮询与保活;重新引入需先有失败根因证据。
- CI 环境曾将 `SANDBOX_KEEPALIVE_INTERVAL_SECONDS=5` 写入 .env 并经容器 env 继承 `E2E_RUN_POLL_INTERVAL_SECONDS=1`。引入后 2 次运行在 `test_subagent_worker_enforces_inherited_write_policy[always_trust]` 失败,随即撤回。后续证据证明失败与这两个覆写无因果关系:main 在本变更合入前(ade113ec,run 35818088032,旧 workflow)与合入后(run 35828838121)在完全相同用例以相同签名失败,当日 8 次该文件运行约半数失败。撤回是为消除变量,不是缺陷修复。失败签名:父子 subagent 场景下父 Run 240s 无 `first_model_request_at`,worker job 静默执行 241s 后被取消;根因未定位。
Sxyon added a commit to Sxyon/Yuanlei that referenced this pull request Sep 24, 2026
* develop-v0.0.1: (47 commits)
  feat: 扩展渠道级多模态能力探查
  feat(mcp): 支持声明内置服务默认启停状态
  fix(graph): 图谱抽取配置拒绝顶层 enable_thinking,提示写在 extra_body 中 (xerrors#1070)
  fix(agent): 隔离工具异常并修正 SSE 终态通知游标
  fix(agents): 模型重试耗尽后保留真实失败语义 (xerrors#1069)
  feat(llm): 扩展模型能力检测与原生图片输入
  fix(knowledge): 知识库入库改为 PG 先行 + Milvus upsert 幂等重试 (xerrors#1065)
  feat(deploy): 单沙盒资源上界与 milvus 日志轮转
  docs: 修正决策记录中 e2e 间歇失败的因果推断 (xerrors#1066)
  ci: Runtime System Tests 层缓存与 Durable Task 并行拆分 (xerrors#1063)
  feat: 建立元垒专属品牌图标与文档视觉身份
  feat: 收敛项目静态 Dashboard v0
  feat: 为知识库检索结果补充文件总分片数 (xerrors#1055)
  chore: 合并本地非 CI 改动
  style(web): 优化侧边栏内边距与各页面细节样式
  fix(web): 完善智能体管理页加载提示并调整标签页结构
  refactor(web): 精简图谱抽取配置弹窗,移除抽取器类型卡片
  fix(knowledge): URL 抓取修复 DNS rebinding 型 SSRF (xerrors#1057)
  fix: 保留子智能体忙异常跨上下文传播 (xerrors#1054)
  fix(api): 业务错误 detail 契约化与前端受控透传,恢复精准错误提示 (xerrors#1053)
  ...
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