Make U7 two-instance acceptance failures point at the real cause #678

Merged
weichen merged 5 commits from fix/multi-instance-test-failure-diagnostics into main 2026-10-21 12:39:17 +00:00
Owner

fix/multi-instance-test-failure-diagnostics 任务卡

任务主记录:<PR 链接,交付前填写>;状态:进行中;owner:weichen

  • 权威仓:ssh://git@192.168.3.2:2222/weichen/Agent-System-Dev.git;目标分支:main;R0(initial_base_sha)= 5360884e92

  • 工作区:/home/weichen/projects/Agent-System-Dev-wt-fix-multi-instance-test-failure-diagnostics(worktree);分支:fix/multi-instance-test-failure-diagnostics

  • 分支类型:standalone;root_target:main;immediate_target:main;accepting_requirements:false

  • 需求分流:verdict=NEW;selected_initiative=无;requirement_sha256=e2453ebdabc4cc9c61bb25a3535fbe7cf0d0fe687f2ea7bc565b799dcf0fcb6d;triage_receipt=/tmp/triage-mi-test-hygiene-20261021.json;receipt_sha256=4f0a610213a5f6363e303e7129cd09a630ae1a04acbaa5116635c804b2f7f56c

  • 授权与交付终点:修复 tests/integration/multi-instance 两处测试卫生缺陷(轮询静默超时、断言早于恢复视图),让失败直指真正原因。不得改 Backend 或任何生产代码(其根因已由 Backend PR #237 修复)、不得弱化断言、不得放大超时预算。

  • 交付模式:goal-first(目标、范围和交付终点一次确认;范围内连续推进)

  • 实施执行:agent-per-unit(配置:AGENT-EXECUTION.md)

  • 合入执行:agent(已授权交付范围内,Review 通过、冲突解决且当前 HEAD 的 CI 通过后合入)

  • 流程依据:仓库根目录 policy/delivery.md(归档后仍按仓库根目录定位)

目标与非目标

<预期结果、受影响入口/模块/契约;明确不做什么。>

Agent 实施收据

路由与 fail-stop 规则见根目录 AGENT-EXECUTION.md 与 policy/delivery.md;每次尝试一行,原始日志留在源码外收据路径。

单元 ID 预期范围 配置摘要 角色 候选顺序 attempt CLI/模型 终态 transport fallback 源码外收据路径
待定义 — NOT_RUN NOT_RUN NOT_RUN NOT_RUN NOT_RUN NOT_RUN NOT_RUN NOT_RUN —

同步记录

节点 sync_base_sha tested_head_sha checked_at
启动 5360884e92 5360884e92 2026-10-21T12:07:32Z

证据(Evidence)

时间(UTC) 命令 被测HEAD exit 来源 sha256(16)

结果与验证(完成后填写)

  • 结果:owner_crash_takeover 的 interrupted 轮询改为有界等待 + 显式失败(点名未观察到的 run 状态序列、轮询实例、实际耗时与预算、实例日志),未收口时不再落到后续 POST 的误导性 409;restart_invariants 在断言消息数之前新增「恢复视图」有界等待(存在 interrupted run 且无 pending/running/waiting_hitl),未恢复时给出点名判据的失败信息;其余 t.Fatal→t.Fatalf 仅补失败信息,断言条件未变。新增 runStatuses 与 e.instanceOf 两个小helper 供等待条件与失败信息复用。
  • 验证:PASS——真实 PostgreSQL(127.0.0.1:54331,fsync=on)下空闲机器 15.1s 通过、96 忙循环压满 32 核 17.4s 通过(新增失败路径未误触发);gofmt/go vet 干净;独立 Review(pi-glm,PASS 无阻塞项)报告 .task/reviews/2026-10-21-mi-diagnostics-review.md,6 项非阻塞发现中第 1 项如实指出恢复视图判据的 interrupted 半边由历史 run 平凡满足(不检出 B 重启对账回归,但改动前同样不检出,覆盖无回退)。
  • 影响与剩余项:不改生产代码、不弱化任何断言、未放大任何超时预算、包级 go test -timeout 未动。Review 其余非阻塞项(busy 白名单对新增非终态 status 不设防、轮询只附 logA、instanceOf 守卫不可达、顺序耦合、瞬态 5xx 即失败)均为既有共享弱点或死代码,不阻塞。

合入与清理

  • Review 记录:PASS(独立会话 pi-glm / zai-coding-cn/glm-5.3-flash;base 5360884e9283d962caf945d944df05b5e5059177,head 232477b22f997bc4ab87b5983ae0b350f6ae4c43;报告 .task/reviews/2026-10-21-mi-diagnostics-review.md;无阻塞项,6 项非阻塞发现;重放依据:host 用真实 PG 在空闲与 96 负载两种条件下各跑一次多实例验收,均通过)
  • 冲突记录:NOT_RUN(一次交付前同步,0 提交 behind)
  • CI 记录:NOT_RUN(当前 HEAD 完整 SHA、全部必需检查、运行链接、执行身份及 GATE 结果)
  • 合入记录:NOT_RUN(交付授权范围、PR、被核验 HEAD、合入 SHA、目标分支及内容核验)
  • 清理记录:NOT_RUN(授权依据、写者退出确认、worktree/分支/任务卡处置)
{
  "summary_schema": 1,
  "source": "SELF",
  "timestamp": "2026-10-21T12:06:44.036919+00:00",
  "command": "make precheck",
  "exit_code": 0,
  "cwd": "/home/weichen/projects/Agent-System-Dev",
  "before_head": "5360884e9283d962caf945d944df05b5e5059177",
  "after_head": "5360884e9283d962caf945d944df05b5e5059177",
  "branch": "main",
  "target_branch": "main",
  "target_head": "5360884e9283d962caf945d944df05b5e5059177",
  "root_target": "main",
  "immediate_target": "main",
  "before_tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
  "after_tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
  "output_tail": [
    "[repo]   branch=main head=5360884e92",
    "[remote] origin/main=5360884e92 ahead=0 behind=0",
    "[tree]   clean submodules_drift=0 uninit=0",
    "[worktrees] linked=3",
    "[initiatives] local cards (not authoritative): none",
    "[hooks]   core.hooksPath=scripts/hooks(pre-commit/post-merge 实际接线)",
    "[facts]   policy/facts.md 6 条事实均在有效期内",
    "[required-reading] core/baseline.md, workflows/delivery.md §1, policy/delivery.md",
    "[R0] 5360884e92(完整:5360884e9283d962caf945d944df05b5e5059177)",
    "[worktree] before-sync: recursive component checks passed",
    "[verdict] READY — 保留本次 precheck receipt 后建任务工作区:PRECHECK_RECEIPT=/tmp/task-precheck.json make task-start NAME=feature/your-branch"
  ],
  "output_sha256": "6a290a280e9e8ec5b78b7bf430d194dbe3a55fbbd9507b05b6c12899b01ceebb",
  "receipt_sha256": "577c22f0e49c012c394aeb6dbcc188fbf681ab8315c5864da6da3d0ca62b90f8",
  "receipt_path": "/home/weichen/.cache/agent-system-dev/evidence/577c22f0e49c012c394aeb6dbcc188fbf681ab8315c5864da6da3d0ca62b90f8.json"
}
# fix/multi-instance-test-failure-diagnostics 任务卡 任务主记录:<PR 链接,交付前填写>;状态:进行中;owner:weichen - 权威仓:ssh://git@192.168.3.2:2222/weichen/Agent-System-Dev.git;目标分支:main;R0(initial_base_sha)= 5360884e9283d962caf945d944df05b5e5059177 - 工作区:/home/weichen/projects/Agent-System-Dev-wt-fix-multi-instance-test-failure-diagnostics(worktree);分支:fix/multi-instance-test-failure-diagnostics - 分支类型:standalone;root_target:main;immediate_target:main;accepting_requirements:false - 需求分流:verdict=NEW;selected_initiative=无;requirement_sha256=e2453ebdabc4cc9c61bb25a3535fbe7cf0d0fe687f2ea7bc565b799dcf0fcb6d;triage_receipt=/tmp/triage-mi-test-hygiene-20261021.json;receipt_sha256=4f0a610213a5f6363e303e7129cd09a630ae1a04acbaa5116635c804b2f7f56c - 授权与交付终点:修复 `tests/integration/multi-instance` 两处测试卫生缺陷(轮询静默超时、断言早于恢复视图),让失败直指真正原因。不得改 Backend 或任何生产代码(其根因已由 Backend PR #237 修复)、不得弱化断言、不得放大超时预算。 - 交付模式:goal-first(目标、范围和交付终点一次确认;范围内连续推进) - 实施执行:agent-per-unit(配置:AGENT-EXECUTION.md) - 合入执行:agent(已授权交付范围内,Review 通过、冲突解决且当前 HEAD 的 CI 通过后合入) - 流程依据:仓库根目录 policy/delivery.md(归档后仍按仓库根目录定位) ## 目标与非目标 <预期结果、受影响入口/模块/契约;明确不做什么。> ## Agent 实施收据 路由与 fail-stop 规则见根目录 AGENT-EXECUTION.md 与 policy/delivery.md;每次尝试一行,原始日志留在源码外收据路径。 | 单元 ID | 预期范围 | 配置摘要 | 角色 | 候选顺序 | attempt | CLI/模型 | 终态 | transport | fallback | 源码外收据路径 | |---|---|---|---|---|---|---|---|---|---|---| | 待定义 | — | NOT_RUN | NOT_RUN | NOT_RUN | NOT_RUN | NOT_RUN | NOT_RUN | NOT_RUN | NOT_RUN | — | ## 同步记录 | 节点 | sync_base_sha | tested_head_sha | checked_at | |---|---|---|---| | 启动 | 5360884e9283d962caf945d944df05b5e5059177 | 5360884e9283d962caf945d944df05b5e5059177 | 2026-10-21T12:07:32Z | ## 证据(Evidence) <!-- CMD="<命令>" make evidence 写入;手抄/转写输出视为无效证据(AGENTS.md 证据与验证门禁)。 --> | 时间(UTC) | 命令 | 被测HEAD | exit | 来源 | sha256(16) | |---|---|---|---|---|---| ## 结果与验证(完成后填写) - 结果:owner_crash_takeover 的 interrupted 轮询改为有界等待 + 显式失败(点名未观察到的 run 状态序列、轮询实例、实际耗时与预算、实例日志),未收口时不再落到后续 POST 的误导性 409;restart_invariants 在断言消息数之前新增「恢复视图」有界等待(存在 interrupted run 且无 pending/running/waiting_hitl),未恢复时给出点名判据的失败信息;其余 `t.Fatal`→`t.Fatalf` 仅补失败信息,断言条件未变。新增 `runStatuses` 与 `e.instanceOf` 两个小helper 供等待条件与失败信息复用。 - 验证:PASS——真实 PostgreSQL(127.0.0.1:54331,fsync=on)下空闲机器 15.1s 通过、96 忙循环压满 32 核 17.4s 通过(新增失败路径未误触发);`gofmt`/`go vet` 干净;独立 Review(pi-glm,PASS 无阻塞项)报告 `.task/reviews/2026-10-21-mi-diagnostics-review.md`,6 项非阻塞发现中第 1 项如实指出恢复视图判据的 interrupted 半边由历史 run 平凡满足(不检出 B 重启对账回归,但改动前同样不检出,覆盖无回退)。 - 影响与剩余项:不改生产代码、不弱化任何断言、未放大任何超时预算、包级 `go test -timeout` 未动。Review 其余非阻塞项(busy 白名单对新增非终态 status 不设防、轮询只附 logA、`instanceOf` 守卫不可达、顺序耦合、瞬态 5xx 即失败)均为既有共享弱点或死代码,不阻塞。 ## 合入与清理 - Review 记录:PASS(独立会话 pi-glm / zai-coding-cn/glm-5.3-flash;base 5360884e9283d962caf945d944df05b5e5059177,head 232477b22f997bc4ab87b5983ae0b350f6ae4c43;报告 `.task/reviews/2026-10-21-mi-diagnostics-review.md`;无阻塞项,6 项非阻塞发现;重放依据:host 用真实 PG 在空闲与 96 负载两种条件下各跑一次多实例验收,均通过) - 冲突记录:NOT_RUN(一次交付前同步,0 提交 behind) - CI 记录:NOT_RUN(当前 HEAD 完整 SHA、全部必需检查、运行链接、执行身份及 GATE 结果) - 合入记录:NOT_RUN(交付授权范围、PR、被核验 HEAD、合入 SHA、目标分支及内容核验) - 清理记录:NOT_RUN(授权依据、写者退出确认、worktree/分支/任务卡处置) <!-- Local receipt: SELF. Digests detect corruption; they do not authenticate a reviewer or CI. --> ```json { "summary_schema": 1, "source": "SELF", "timestamp": "2026-10-21T12:06:44.036919+00:00", "command": "make precheck", "exit_code": 0, "cwd": "/home/weichen/projects/Agent-System-Dev", "before_head": "5360884e9283d962caf945d944df05b5e5059177", "after_head": "5360884e9283d962caf945d944df05b5e5059177", "branch": "main", "target_branch": "main", "target_head": "5360884e9283d962caf945d944df05b5e5059177", "root_target": "main", "immediate_target": "main", "before_tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "after_tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "output_tail": [ "[repo] branch=main head=5360884e92", "[remote] origin/main=5360884e92 ahead=0 behind=0", "[tree] clean submodules_drift=0 uninit=0", "[worktrees] linked=3", "[initiatives] local cards (not authoritative): none", "[hooks] core.hooksPath=scripts/hooks(pre-commit/post-merge 实际接线)", "[facts] policy/facts.md 6 条事实均在有效期内", "[required-reading] core/baseline.md, workflows/delivery.md §1, policy/delivery.md", "[R0] 5360884e92(完整:5360884e9283d962caf945d944df05b5e5059177)", "[worktree] before-sync: recursive component checks passed", "[verdict] READY — 保留本次 precheck receipt 后建任务工作区:PRECHECK_RECEIPT=/tmp/task-precheck.json make task-start NAME=feature/your-branch" ], "output_sha256": "6a290a280e9e8ec5b78b7bf430d194dbe3a55fbbd9507b05b6c12899b01ceebb", "receipt_sha256": "577c22f0e49c012c394aeb6dbcc188fbf681ab8315c5864da6da3d0ca62b90f8", "receipt_path": "/home/weichen/.cache/agent-system-dev/evidence/577c22f0e49c012c394aeb6dbcc188fbf681ab8315c5864da6da3d0ca62b90f8.json" } ```
weichen added 4 commits 2026-10-21 12:27:42 +00:00
Why: establish the authorized task workspace and its initial baseline.

Evidence: preserved precheck receipt in .task/fix-multi-instance-test-failure-diagnostics.md; R0=5360884e9283d962caf945d944df05b5e5059177.

Impact: task metadata only; the feature workspace starts at 5360884e92.

Refs: .task/fix-multi-instance-test-failure-diagnostics.md
Record diagnostics scope, review PASS and PG-backed verification
ci / svc-realcombo (pull_request) Successful in 3m11s
ci / test (pull_request) Successful in 9m26s
ci / test-pg (pull_request) Successful in 10m0s
d8988ad13a
Why: the test-hygiene change needs its scope, the review verdict and the
real-PostgreSQL evidence recorded before delivery.

Evidence:
  /tmp/mi-diag-impl-r1-20261021.json: cursor, success (single file)
  /tmp/mi-diag-review-r1-20261021.json: pi-glm, success (PASS, 6 non-blocking)
  Real-PG runs: idle 15.1s and 96-load 17.4s, both ok (fsync=on cluster
  on 127.0.0.1:54331); the Backend fix is already in main via PR #237/#674.

Impact: card metadata only; no behaviour change.
Refs: PR #679; fix/multi-instance-test-failure-diagnostics
weichen added 1 commit 2026-10-21 12:27:52 +00:00
Fold-close the task card before merge
ci / svc-realcombo (pull_request) Successful in 3m21s
ci / test (pull_request) Successful in 8m52s
ci / test-pg (pull_request) Successful in 10m46s
864ab3135b
Why: close the task card inside its own PR so landing it needs no post-merge backfill or separate close PR.
Evidence: .task/fix-multi-instance-test-failure-diagnostics.md -> .task/archive/fix-multi-instance-test-failure-diagnostics.md; status 已完成(合入前闭合); PR #678 https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/678.
Impact: task metadata only; the card is archived within PR #678 and lands with its merge commit.
Refs: task.sh close --self
weichen merged commit e634608d97 into main 2026-10-21 12:39:17 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: weichen/Agent-System-Dev#678