Files
Agent-System-Documents/docs/records/2026-10-14-merge-queue-trial.md
T
weichen 3e0cdae1bf Record the controlled merge queue trial
Why: The approved U6 plan requires a reviewable account of three real serial deliveries, CI costs, recovery paths, and manual adoption limits.

Evidence: Dev #489/#488/#486 fixed-head Actions runs 3038/3050/3067 and main runs 3040/3053/3068; component PRs and Issue #518 preserve raw SELF and independent REPLAY.

Impact: Document observed behavior and untested automatic coordination boundaries without changing product code or declaring rollout authority.

Refs: Dev issue #518; merge queue implementation plan U6
2026-10-14 04:48:22 +00:00

9.9 KiB
Raw Blame History

合入调度首轮受控试行(2026-10-14)

状态:三个真实任务已由智能体依次合入;本报告记录 manual 模式的实际观察。是否扩大试行、调整预算或建设自动领取,仍待用户评审。依据为已批准的实施计划 U5–U6、Dev 项目规则和唯一调度记录 #518。本报告不代表发布、部署或运行服务验收。

范围与证据口径

用户授权由当前智能体接管已有的 Dev #489、#488、#486,确认三者没有其他活动写者;所有实际 PR 合入由智能体执行。Dev refs/heads/main 的仓库 ID=29,协调者和窗口在 #518 登记。原任务 R0 各自不同,未伪称共同启动 SHA。组件先按自身目标交付,再固定 Dev 父仓组合;等待的 Dev 源分支没有随前一个正常合入反复同步、推最终候选或跑最终 CI。

证据分层:本机 make evidence、API 读取及隔离夹具输出是 SELF;/root/merge_queue_review 或 /root/docs_delivery_review 对固定对象的独立重放另记 REPLAY;Gitea Actions 的实际运行链接、作业身份和精确 SHA 才作为 GATE。原始 SELF 收据保存在各任务卡、#518 所指 /tmp/mq-* 路径及本轮私人状态目录;本文件只列对象、结论和索引,不转写命令输出。未执行的负例继续标 NOT_RUN。

平台前置使用用户亲手设置的私有夹具仓库 repoID38 main 保护规则。用户修正字段后,Root 只读回读六字段;隔离实测缺检查、失败检查、陈旧绿色候选、匿名请求及已认证绿色候选直推拒绝,合法固定候选由智能体合入。原始 SELF 收据和独立 REPLAY 索引在 #518。该夹具证明所测入口的拒绝/合法路径,不证明 Dev 所有角色、全部写者的机器隔离或旧执行者 fencing。Dev 三项业务检查仍须逐候选运行。

三个真实条目

顺序 原任务 R0 先行组件 Dev 最终 base → head 独立 Review 与当前 HEAD GATE 实际合入 main
#489 cd61bbb112eea6a210a64e84f2cef00b0d64bfc1 Documents #89 → 7bd4e17827d4c7c88647bf3c9199c495b60cb107 add097d06137c4912a4ed9279e98ca353e4e4cf1 → 5e6bf4aa0546d68fb3f872158f22b2791c301a60 /root/docs_delivery_review PASS;run 3038 三作业成功 f00165e8d71e4dc8ba0ceb7dc50c1a8a3deb6d60
#488 99048dda1f48bccb3d5d798050d7beeea2907177 Frontend #73 → 5313cfad4e633d0909ed40dcdfa28a11bc1902c0;RDM #301 → ef5100a020abdd8ba8712c3d15c04c28bcac6e84 f00165e8d71e4dc8ba0ceb7dc50c1a8a3deb6d60 → a70de2c54a74e175ad12c8d52ac29d0bafce9491 /root/merge_queue_review PASS、隔离浏览器 7/7;run 3050 三作业成功 d852c159b6b3387a2f418a42ab6d3696ac873d01
#486 4d362537d0e8755a03b1757b5bad92779a064b33 Backend #185 → 8e80e2618eb7471dd12d5f172ff3cd23622b7d2f d852c159b6b3387a2f418a42ab6d3696ac873d01 → d805cc1697ae7f49d371a56a6a55191f00897b8c /root/merge_queue_review PASS;run 3067 三作业成功 05b997b84db26c517604c48d12676f0eb2b86e18

三个 Dev 合入都用固定 head_commit_id、force_merge=false,合入后从远端重新读取 PR/main 并核对完整 tree 与已审候选一致;组件 gitlink 没有回退。#489 首个合入响应后的本地指针统计出错,Root 先从 PR/main 重新对账再释放窗口,未重发合入请求。#488 的独立浏览器验收使用临时二进制/私有环境,未操作 live 服务。#486 的 U7 安全审阅先发现 B1–B7,Backend 在推最终源 HEAD 前修复并以隔离 PostgreSQL 真实交叠、跨进程、SIGTERM/SIGKILL 重放;Dev 最终组合继续通过本地 make test、隔离 PostgreSQL/Redis make test-backend-pg 和 make build 的 SELF 检查,GATE 另见表内 run 3067。

同步、CI、等待与恢复

每条 Dev 任务对其本轮最新目标仅发生一次真实纳入;固定后同基线 task-sync 核验不生成提交。#489 为纠正旧启动状态,在正式窗口前完成源码/组件整改与目标纳入;这与理想的“领取窗口后才第一次纳入”不同,不能抹去。#488、#486 都在领取最终窗口后才执行 changed=1,随后成功的固定 HEAD 检查为 changed=0。#486 一次无变更检查被嵌套 Git 的短暂 index.lock 拒绝,未删锁;持锁操作结束后原对象复核通过。原始失败和成功收据都在 #518。

Dev PR 目标纳入次数 固定后成功的无变更核验 本轮最终 PR CI 作业运行时长(test / test-pg / svc-realcombo) runner 等待
#489 1(启动整改期) 至少 3 次,均未改 HEAD 3038:1 次、3/3 成功 5:10 / 7:22 / 1:46 每作业 3 秒
#488 1(最终窗口) 2 次,均未改 HEAD 3050:1 次、3/3 成功 5:12 / 8:42 / 1:54 每作业 3 秒
#486 1(最终窗口) 1 次成功;另 1 次锁拒绝未推进 3067:1 次、3/3 成功 5:01 / 7:19 / 1:54 每作业 3 秒

三次最终 PR CI 共 3 个 run、9 个必需作业,因本轮正常排队任务移动 main 而废弃的最终 run 为 0;没有拿旧绿色检查放行新 HEAD。合入后 main push CI 单列:run 3040 对 #489 合入树、run 3053 对 #488 合入树、run 3068 对 #486 合入树,各自另有 3/3 作业成功;共 3 个 push run、9 个作业,不能省略这部分实际 CI 成本。3068 在 04:43:55Z 完成,精确对象为 05b997b84db26c517604c48d12676f0eb2b86e18。组件仓的 GATE/N/A 与 RDM #301 任务卡闭合 PR #364 的 CI 不计入上述 Dev 目标 run。

自 2026-10-12 起查询到三个 PR 另有 13 次试行前开发 Actions run(#489 2、#488 7、#486 4;6 成功、7 失败),其对象与本轮最终候选不同;原始只读清单 /tmp/mq-trial-ci-history-20261014.json。这些运行既不能当本轮最终准入,也不能归因于本轮 main 移动。runner 作业等待时间以各 GATE job 的 created_at→started_at 计算;人的准备/依赖等待没有统一的入队就绪时间戳,本轮不填造净等待时长。仅可复核首次最终同步到合入的可观测下界:#489 19:49、#488 24:20、#486 18:46;它们含测试、Review 和平台等待,不等同完整窗口耗时。三条目均未重新领取最终目标窗口;启动整改、#488 的 E2E 夹具失败、#486 的一次锁拒绝分别保留,不计成 CI 废弃或窗口接管成功。

验收与下一步边界

验收 本轮结论 依据及限制
MQ1 部分满足 三任务顺序合入且后继未提前最终同步;最终 CI 0 次因正常排队合入废弃。#489 的目标纳入发生在启动整改期,严格“领取后首同步”未由该例满足。
MQ2 manual 已登记;原子互斥 NOT_RUN 单协调者与目标窗口记录有效;重复领取的执行端拒绝及旧代次 fencing 未实现/未测。
MQ3 本轮通过 三个固定对象有同基线无变更核验;#486 短暂锁失败被拒绝且重验不改 HEAD。
MQ4 本轮通过 三个最终 HEAD 各跑实际新 CI;隔离夹具的陈旧绿色候选被拒。没有把组件/旧分支检查当父仓 GATE。
MQ5 部分满足 #486 活动锁阻断并自行恢复,#489/#488 源码和夹具问题在固定前整改;人工超时释放及无依赖任务并行负例 NOT_RUN。
MQ6 部分满足 组件先合入,后继父仓保留其他能力;紧急插队导致候选失效的真实路径 NOT_RUN。
MQ7 部分满足 #489 合入后本地异常先对账,未重复 POST;未知请求结果与旧执行者失联接管 NOT_RUN。
MQ8 manual 范围通过 私有夹具正负例、Dev 精确 GATE 和合法智能体合入均有对象证据;全部角色/自动 fencing NOT_RUN。
MQ9 待文档 PR Review 权威规范、Dev 采纳、调度记录、实际 PR/运行互相链接;本报告的最终交叉检查需随文档 PR 完成。

建议维持单协调者的 manual 模式,按目标串行领取,把组件准备与父仓最终 CI 分开。首次试行证明“等待分支不因正常合入反复重跑最终 CI”在这三项中成立;没有可比历史基线,不报告节省百分比。自动模式须另行建设并验证原子持久领取、执行端旧代次拒绝、角色覆盖和异常接管,不能从本轮人工遵约推导已具备。扩大试行与预算调整留待用户阶段评审决定;本报告不替代该决定。