本页内容
本页内容
测试和CI
CI 容量和分片权重
运行器注册预算
CP10 候选者为其广泛的 PR 发出 122 个 Node 行。在 96 个活动行中,即使容量可用,也有 26 个行等待较早的行完成;测量的开销模型从第二波中投影出 13.6-minute 工作流程墙。在一轮中承认所有选定的行既不会改变它们的工作,也不会改变建模的 vCPU 分钟。最终的 PR/main 上限仍然是 130/70,5,110 注册到达信封也是如此,它已经在五分钟内完成了所有 130 行 PR 的预算。当前的紧凑限制是 90 个本机行和 96 个托管行。这是计划入场,并不能证明提供商同时提供 130 名跑步者。自然发生的痕迹提供了实际的墙壁证据。
目前自动main/PR库存有一个保守联盟71潜在的自托管非Node行。保留一个84-行津贴,包括十三个保留行,以及未更改的行70/130 Node上限。四个-main/21-PR到达信封是5,110注册,离开890低于6,000经营目标。来自初次作者和不知名作者的 PR 现在也可以到达 Blacksmith;观察到的21-到达高峰早于该人口,因此重新测量PR推出后抵达。历史5,010/5,085/5,160下面的计算描述了早期的库存;这个新计数包括五种条纹和五种Windows行。看关键路径路由。
OpenClaw 的当前 GitHub 运行者注册存储桶报告 gh api rate_limit 中每 5 分钟有 10,000 个自托管运行者注册。在每次调整之前重新检查 actions_runner_registration,因为 GitHub 可以更改此存储桶。该限制由 openclaw 组织中的所有 Blacksmith 运行者注册共享,因此添加另一个 Blacksmith 安装不会添加新存储桶。
将铁匠标签视为爆发控制的稀缺资源。仅路由、通知、汇总、选择分片或运行短 CodeQL 扫描的作业应保留在 GitHub- 托管运行程序上,除非它们测量了 Blacksmith 的特定需求。任何新的 Blacksmith 矩阵、更大的 max-parallel 或高频工作流程都必须显示其最坏情况下的注册计数,并将组织级别目标保持在实时存储桶的约 60% 以下。对于当前的 10,000 个注册存储桶,这意味着 6,000 个注册操作目标,为并发存储库、重试和突发重叠留下了空间。
普通上游混合推送和计划运行以及同一存储库 PR,将 preflight、选定的 pr-failure-report 和 openclaw/ci-gate 路由到托管 ubuntu-24.04。叉子第一次尝试保留铁匠的飞行前和登机口,记者已经接待。调度 qualification/release 覆盖、运行组、重试和其他后端保持不变。 RunsOn和默认铁匠预检保留4级。早期的 16 级安置解决的是托管作业停顿,而不是测量的计算要求。 10 月 13 日,24 小时内的 610 架现有 4 舱预检没有 OOM 事件,p95 持续时间为 113 秒,14.31% p95 峰值内存。一项代表性工作暴露了两个 CPU 和 7.65 GiB RAM。本地完整和更改的清单计划也适合两个 CPU 和 4 个 GiB,无需交换,四个 CPU 的输出相同。保留 20 分钟截止时间、规划器配置文件、缓存信任和托管 retry/manual/override 路线。这些观察结果并未建立匹配工作负载的计费节省。普通的同一存储库混合控制移动消除了每个 PR 的三个铁匠分配和每个主运行的两个铁匠分配。安全保留其现有的可选托管准入。保守报名预约不变;早期的控制分配包含在保留的 5,110 信封中。请参阅 队列暴露和估计托管成本。暴露的活桶依然报10000;其集合读者的未使用配额不会建立组织范围内的可用容量。剩余的 890 配额必须涵盖相邻存储库、发布、重试和结转。此路由试验并不能证明可用的物理容量或更快的预检执行速度。
受保护的缓存预热器有两行平台:现有的 Linux 工作负载和一个托管的 macOS pnpm-store 发布者。它的每引用并发性和挂起运行合并保持不变。每一次承认的温暖运行都会增加一项托管 macOS 工作,并且没有铁匠注册; Pull-request CI 不添加作者或职位。在声称节省设置时间之前,本机生产者和消费者测量必须包括缓存传输、提取、安装和存档大小。
每个承认的上游主管道都在保留的 docker-seed-e2e 作业中选择已发布的升级绊线,该作业已包含在当前 5,110 注册到达信封中。仅文档的主要提示仍被 **/*.md 和 docs/** 推送过滤器排除。承认的主推保留相同的两个非取消奇偶校验槽;该边界包括两个活跃运行和两个合并后继运行。它并不假设每个推送的提交都会开始运行。每周更新迁移调度针对本机操作符状态的每个受支持基线使用一个目标 Docker 组,并对候选相关前身进行综合清理。如果该前身不在支持的集合内,它会添加一个现有的矩阵行:最多 5 个目标作业,加上图像准备、组规划器和混合参考验证器,每周运行最多 8 个 Blacksmith 注册。其单独的非取消并发组合并挂起的计划运行,并且无法取消手动验证。发布检查重用相同的有界分组和未更改的 32 个作业上限:在四个不同的基线上,正常的包验收选择 16 个目标作业(当前身需要自己的行时为 17 个),而发布浸泡选择 20 个。三场景组限制和 32 个作业并发上限保持不变。额外的每周突发和扩展发布作业共享现有的发布空间、相邻存储库和结转;在进一步更改扇出之前,仍必须检查实时共享存储桶。
每小时扩展运行时检查重用现有插件预发布所有者,其 max-parallel: 12 未更改。当前库存发出 8 个批处理行、18 个 Telegram 文件行以及 6 个没有包元数据和根扩展测试的插件文件行:每个承认的每小时运行最多 32 个 Blacksmith 注册,包括营业额。单个非取消计划时段可防止与另一个每小时延期运行重叠。允许活动运行完成并在五分钟的时间段内开始待定的替换,从而保留两个完整的库存,或 64 个注册。将这些添加到 5,110 自动运行信封中得到 5,174。完整的每小时 Node 库存有一个单独的 77 行上限,比不变的 70 行推送上限高出 7 个。预订所有 4 个主要到达站的这 7 排座位后,登记人数增加了 28 人,保守的数字为 5,202 人,低于 6,000 人的参考目标。这不会花费因删除正常 CI 的七个部分扩展行或不相关的 PR 扩展作业而节省的费用。 Manual/release 的入场仍然在该范围之外。在进一步增加之前重新计算库存并检查实时组织存储桶。
三个 Mac Node 部件在 github 和 hybrid 上每次运行都会添加两个托管作业,并且没有添加 Blacksmith 注册。正常的铁匠路线会在每次合格尝试中添加两次注册 - 1 次推送或 PR;手动运行和重试仍然托管。矩阵并发上限为 3。 GitHub 记录的 Enterprise macOS 并发限额为 50,与其他托管 Mac 工作流程共享;它不保证跑步者立即入场。此拆分不会改变运行器类别或存储库容量设置。
Release npm Cache Warm (release-npm-cache-warm.yml) 在计划和手动触发器上运行托管 Linux 作业,以从最新发布的 OpenClaw 包中准备 npm 下载种子,并禁用生命周期脚本。它的并发组与推送触发的 Vitest 预热是分开的,因此较新的推送无法取消待处理的种子。计划从 main 运行发布,因此新的发布分支可以通过 GitHub 的默认分支缓存范围恢复该种子。每个种子开始时都是空的,并且只包含当前的基线依赖图。跨 OS 发布检查首先恢复其候选特定缓存,然后恢复匹配的 runtime/suite 缓存,然后恢复此共享种子。仅归档npm的内容寻址_cacache目录;安装前缀、OpenClaw 状态、npm 日志和可执行 npx 缓存保持最新状态。生产者和消费者使用相同的相对归档路径并启用跨OS归档。 npm 保留正常的新鲜度和完整性检查,并下载缺失的特定于平台的软件包。这会为每个计划或手动预热运行添加一个托管的 Linux 作业,没有推送作业,也没有铁匠注册。
上游 PR 使用有界变更所有者 Node 计划,包括受保护的传递消费者和固定冒烟测试。广泛的投入保留了其所有者的覆盖范围;丢失或未解决的选择会导致预检失败。上游推送使用集成紧凑型。本机紧凑配置文件的上限为 90 行,GitHub-hosted 的上限为 96 行,插件后备打包的上限为 50 行。最终标准 Node 矩阵还强制执行 70 行推送、77 行主层验证行或 130 行 PR 行,包括精确计划。缺少更改的路径、缺少当前规划器功能和规划器错误会导致预检失败,而不是发出不完整的成功矩阵。批准的历史调度保留其完整的命名计划。计算每个发出的矩阵行和非矩阵作业,包括保守的六行 Android 库存,与并发无关。
Android保留4个普通排和6个全手动排。上游推送和 PR 在 Blacksmith 上的首次尝试重叠了所有四行,包括分叉 PR。 GitHub 覆盖、重试、手动调度、调度和其他存储库保留两个。 Fork 的第一次尝试已经使用了 Blacksmith;并发上限遵循该路线,而不需要相同的存储库头。前两排叉帽在 10 月 1 日的四次运行(36941929665、36941497583、36939940862 和 36941476576)中添加了第二个大约十分钟的波浪,产生了 20.7–22.5-minute 总数。四路入场消除了强加的等待,而不会改变作业数量或计划的跑步时间;自然跑步必须确定实际的跑墙时间。将 app lint 重新分配给现有的 Wear 和 Kotlin-lint 行不会添加任何作业或注册。三行上限使每个作业低于 10 分钟,但在 run 35812544118 中留下了 941 秒的 Android 跨度,因此正常运行允许所有四个独立行一起运行。保守的六排配额和 4 × 150 + 21 × 210 = 5,010 注册范围保持不变,低于 2026 年 9 月 23 日检查的 10,000 个实时桶的 6,000 个运营目标。此配额并不能确定实际跑步者的可用性或测量的挂墙时间改进。
在打包紧凑的核心工作之前,Preflight 保留实际附加的插件 Node 行。因此,当超出剩余的 Node 预算时,甚至低于独立压缩上限(90 个本机行或 96 个托管行),托管工具尾部压缩就会开始。 Dist描述符属于它们单独的矩阵,不消耗这个Node预算;它们仍然计入紧凑型上限。现有的文件所有者分割、时间权重、流程边界、运行者要求和准入限制仍然具有权威性。如果压缩无法容纳完整的库存,预检将失败,而不是放弃工作或增加任一上限。
批准的行上限增加将紧凑计划从 80 行增加到 90 行,最终 Node 矩阵从 64/120 行增加到 70/130 push/PR 行。它为测量的隔离网关服务器系列和测量的插件信封包装预留了空间。在限制下,每次运行可以在推送上允许另外六个 Node 注册,或者在 PR 上允许另外十个注册;紧凑行已包含在该总数中。在保留的 4 个 main/21-PR 到货范围内,增量为 4 × 6 + 21 × 10 = 234,将保守上限从 4,776 增加到 5,010。运行器类、工作线程、矩阵并发和超时保留其现有策略。仅增加上限并不能改善运行时间。
完整的手动 Node 计划将 Gateway isolated/database-worker 队列与现有的 64 个文件信封限制和固定文件权重分开。在完成 18 个独立文件并传递 235 个数据库工作文件中仅 137 个的案例后,运行 35727279415 耗尽了其 60 分钟的作业。当前的 257 个文件库存现在占据了五个完整的、不相交的条带,增加了四个手动作业,同时保留了配置、两个工作人员和作业截止日期。调度将这些行路由到 GitHub- 托管的跑步者,因此拆分不会添加铁匠注册。最终的 70/130 push/PR 行上限不变;文件限制和建议权重都不能保证有效时间。
共享插件包、QA 和提供程序套件使用本机 Vitest 分片,其大小根据现有的 90 个文件信封预算确定。他们的完整配置仍然拥有发现和排除;盘点库存永远不会将执行范围缩小到直接更改的插件。在 2f7fb353,Catch-all 在 6 个作业中有 486 个计数条目和 474 个有效文件,QA 在 3 个作业中有 238/232 个,而提供商在 4 个作业中有 275/256 个。统计条目包括 Vitest 排除的文件,因此预算比较保守。每个作业保留其现有的工作限制、隔离策略和每个文件模块清理。
进程限制插件回退使用每个测试文件的有效配置所有者,包括从普通插件套件迁移到数据库工作人员的文件。广泛的后备保留了完整的选定配置清单,包括没有包清单的内置插件;仅插件的更改保持其范围。即使是单个有界信封也会保留其显式文件范围,因此它无法静默执行更大的整个配置。不均匀的有界块使用自己的文件计数和现有的成本率;原生 Vitest 分片保留完整配置估计的同等份额。
路由到数据库工作人员配置的所有文件共享 20 个文件 CI 作业上限,包括每个共同定位的信封。有效配置具有分类;迁移的文件还保留任何更严格的原始插件作业和进程限制。这会将 run 35176277297 中的 185 个文件本机信封划分为 10 个不重叠的信封。在工作截止日期之前,该运行持续通过测试超过 58 分钟;这是一个下限,而不是完整的家庭计时样本。在 run 35477485803 中,仅根计数允许在一项串行作业中包含 149 个数据库工作文件;其测试步骤耗时 27 分 30 秒。现在,上限可以防止超大尺寸的迁移信封及其在成本包装期间的重新组装。分叉隔离、进程文件限制、工作人员限制、超时和 50 个作业后备上限保持不变。成本估算仍然是建议性的;托管 CI 必须确定最终的作业持续时间。
普通的 Codex 测试使用隔离的线程工作线程并从共享工作线程预算继承文件并行性。每个文件都会退役其模拟模块图和全局变量;一个普通的进程最多包含24个文件。数据库工作线程路由的 Codex 测试已经使用隔离的分叉并保留独立的 12 个文件绑定。 300 秒无输出看门狗、测试截止时间和断言保持不变。这些调度界限与时间权重校准无关;更大的流程界限本身并不能建立壁时间或矩阵行的改进。
精确和后备插件信封共享相同的打包所有者和每个作业 300 秒的总计估计预算,包括相同配置的多个信封。该预算仅适用于变更扩展的工作;紧凑核心预算没有变化。成员保留兼容的 runner/dist 要求并一次运行一个。打包保留每个生成的信封的子进程、环境、本机分片参数和包含范围,包括进程限制的 Codex、Matrix 和 Telegram 工作。具有相同准备要求的信封在其单独的流程运行之前共享一个构建;其费用一次收取。不同的准备模式保持独立,超出预算的信封保持单独。工作线程限制、运行程序类别、超时、覆盖范围和串行故障停止行为均保持不变。
在 9 月 22 日盘点库存时,将入场预算从 240 秒增加到 300 秒,将同样的 119 个信封打包到 40 个而不是 47 个工作中。他们的预计总工作时间仍为 10,140 秒。减少 7 个 checkouts/setups 预计可节省 315-420 机器秒,每个作业节省 45-60 秒。这是包装预测,不是测量经过时间的证明;请参阅 路由成本和 15 分钟资格 。所有四个行上限保持不变。
对于显式限制的插件配置,先决条件所有者标识需要构建运行时的文件。当这些文件跨越多个信封时,生产者会在应用现有文件限制之前对它们进行分组,因此不相关的测试不会导致重复的运行时构建。每个生成的信封保留其实际的先决条件费用和测量的文件成本。整体配置的原生 Vitest 分片保留其完整的发现和准备合同。
大多数回退率使用来自 371 个成功信封的每个计数文件的中位包装器秒数,这些信封跨越十果岭运行样本中的四个贡献 PR 运行:35490342736、35490482496 和 35491344005。 27 配置表包括 Feishu 和 0.411 seconds/file. 现有的运行时准备限额仍然是对这些后备估计的保守补充。
应用服务器固定装置开始重用数据库工作人员后,Codex 速率被刷新。最新的三个成功的合格 PR 在 2026 年 9 月 20 日 21:25 UTC 截止日期运行,分别是 35537834254、35537743091 和 35537672782,全部运行在两个检测到的 CPU 上,预算为两个工作线程。普通 Codex 信封,然后是串行的,在 78 个观测值中的中位率为 2.490 seconds/file。数据库工作线程配置的总体中位数(包括 Codex)在 114 个信封中从 7.582 更改为 7.599 seconds/file。显式数据库工作线程应用程序服务器文件使用保守的 17.31 seconds/file,从最慢的 11 个文件信封的 190.394 秒舍入;上一层是 46.26. 这使本机尾部在混合配置中位数上方可见。总案例时间是一种不同的衡量标准:这些应用程序服务器文件在 207 个文件观察中平均为 11.672 秒。包装器速率已包含工作人员调度,并且不得再次除以工作人员数量。
此校准保留了执行策略:普通 Codex 文件保持串行和非隔离,数据库工作线程路由的 Codex 文件保留隔离的分叉,并且两者都保持其 12 文件进程绑定。 300 秒无输出看门狗和测试截止时间保持不变。权重变化影响打包和预测,而不是每个文件的调度。
上限为 90 个本机或 96 个托管紧凑行、130 个最终 PR Node 行和 70 个最终推送 Node 行;更改扩展后备保留其 50 行上限。在较早的 240 秒预算中,重播 PR #153435 的 38 条更改路径以及 9034c0aa 上广泛的 SDK 回退,使用刷新的 Codex 计数库存,在 48 个扩展行中发出 124 个信封,而具有相同信封库存和流程的 50 行有所下降边界,对于两个更改集:
| 配置文件 | 紧凑型 PR 行 | 最终 PR Node 行之前→之后 | 最终推Node行 |
|---|---|---|---|
| 铁匠 | 76 | 124 → 122 | 56 |
| GitHub | 82 | 130 → 128 | 54 |
| 杂交种 | 72 | 120 → 118 | 47 |
紧凑 PR 计数包括 Node 矩阵之外的两个 dist 描述符。压缩和推送计数未更改,因为这些 Codex 配置位于压缩组之外,并且上游推送不会附加更改的扩展信封。最大的 Codex 预测从 609 秒降至 291 秒,包括现有的 100 秒运行时准备余量。在非 Codex 数据库工作组中,剩余的扩展楼层为 380 秒。总体最长预测行在 Blacksmith 上为 623 秒,在 GitHub 上为 380 秒,在 Hybrid 上为 518 秒。每个档案都符合落地上限,保守的注册上限仍然是落地 5,010 人。
通过将有效配置上限和先决条件分组应用于 f5138cb0b27f 清单,广泛的回退覆盖了 47 个作业中的所有 482 个数据库工作文件,每个作业最多 20 个工作文件。全封装插件精确方案涵盖47个扩展作业中的478个工作文件以及1个选定的核心测试作业; Broad Fallback还拥有四个内置插件文件。铁匠、混合和 GitHub 最终宽 PR Node 计数为 119、113 和 125;推送计数为 54、44 和 49。常规 Codex 运行时消费者共享一个准备好的信封而不是三个,而 Telegram 消费者共享一个而不是两个。唯一准备的数据库工作人员信封保留了原来的 11 个文件范围和更新后的 291 秒估计值。总预测时间为 10,167 秒。这些是规划器的计数和估计,而不是新的运行时测量。共享打包算法、当前测量的速率、时间预算和所有行上限均保持不变。
中位费率是估计值,而不是经过时间的保证。在 Codex 夹具更改之前,根据观察到的最大匹配子跨度重播历史 123 个包络布局,得到 240 秒的 432.758-second 组合包络总和,而临时 320 秒预算的 520.688 秒;最慢的单个信封耗时 508.783 秒。整个配置观察可以在源修订中具有不同的文件清单。这些是历史预测,而不是当前组合工作的测量墙。尽管预测时间为 240 秒,但运行 35490342736 中的原始作业将 17 个信封捆绑到 2,015.674 秒的子跨度和 2,049 秒的墙上时间中。本机 PR CI 必须验证对十分钟 PR 目标的改进。精确的 config/include-set 观测和定时改装中 PR-run 的成功摄取仍然是后续工作;窄 PR 样本不得仅仅因为未选择而修剪不相关的观测值。
GitHub- 托管核心 storage/state 条带也具有 64 个文件的准入上限。在run 35477045216中,203文件的串行条带继续通过测试,直到一小时的作业截止日期;它的 196 个文件的兄弟在 2,867 测试秒内完成。紧凑的分割所有者独立于旧的时序估计来限制每个托管先决条件保留条带,并且现有的不同系列规则防止在一项作业中进行重新组装。 Blacksmith 和 Hybrid 保留了现有的测量分区。每个文件都保持一次覆盖,具有分叉隔离、串行文件执行、工作限制、截止日期和 96 行托管紧凑上限。这是工作负载限制,而不是测量的新运行时间;托管 CI 必须确定最终的持续时间。
具有多个普通组的合格 Blacksmith 和混合紧凑型 bin 请求具有两个子进程插槽的现有 32-vCPU 运行程序。初始打包保留 360 秒的总预算,并在压缩之前完成网关序列化、运行时放置和工作线程固定。在运行时放置比较捐赠者和接收者容量之前,需要进行基于内存的跑步者促销。只有已经在具有两个子进程槽的 32 级上接纳的作业才会被重新打包到 500 秒的 bin 中。这些作业可以跨逻辑运行程序类共享容量,同时每个子进程保留其原始运行程序元数据和工作上限。现有的串行作业保留其成员资格、排序、估算和工人限制;即使最终估计时间仍低于 360 秒,扩大初始打包也可以集中缓慢的网关工作。兼容的并行组可以填补新的预算,而无需串行作业保留十组截止。铁匠系列作业保留其 200/276 秒预算;混合串行作业保留 210 秒。独占作业默认保留 150 秒。只有非构建 CLI 组的完整普通混合 bin 可以使用 250 秒并共享拆分同级;每个孩子仍然必须适合 150 秒。高于现有序列上限的组将保持独立。独占组、原始单个组、分布描述符和具有运行时准备的作业保持串行。混合专用和分布式存储箱保留其现有的先决条件共享。仅当实际主机至少有 8 个可用 CPU 和 24 GiB 内存时,分片执行器最多允许两个进程;较小的容量可容纳一个。每个重叠的子进程都会保留两个 Vitest 工作线程,其中包括压缩后剩下的一个单例;在外部重叠期间,内部项目并行度保持为 1。仅串行源 Telegram 数据库工作线程信封具有较窄的 内部进程异常 。命令文件遵循串行自托管行中测量的工作线程分配,并为托管、约束、冻结或重叠执行提供两个工作线程回退;现有的非隔离 fork runner 保留文件边界清理。主要 github 配置文件在 210 秒处保持串行状态。预检记录每个源修订的实际行数;完整的库存比较必须保留每个原始子计划和测试输入。本地运行时间、记忆和清理证据必须确定实际效果。
github 紧凑型规划器可以将较小的普通组放置在已经需要的更强的逻辑运行器上。每个发出的作业都保留其最强的容量所有者、串行执行、原始子进程和工作人员限制、210 秒预算和十组限制。 SDK和插件运行时消费者在打包前与普通文件分离; SDK 灯光项目与共享的包含列表与其自己的库存相交。父派生的分数成本仅在发出的作业边界处舍入,因此舍入小消费者不能创建冗余的运行时构建。共享加壳器可以交换组以填充兼容的容量,同时重新检查完整的替换。仅运行时的托管组可以在现有的 210 秒连续预算内分享他们最强大的先决条件;构建本身需要 160-166 秒,并且每个作业收费一次。无构建专属团体保留 150 秒的限制。在重新应用正常准入之前,将根据剩余的兼容容量调整搁浅的工具尾部的尺寸。 Exclusive、dist、oversized 和运行时准备 bin 保留其单独的约束。
9 月 16 日的容量修复删除了打包后 32 至 16 的全面降级和三个名为紧凑 32 至 16 的覆盖。在检查的库存中,每推18个现有混合作业或广义PR返回到32级; Blacksmith 配置文件恢复 19 个推送或 36 个广泛的 PR 放置,包括代理支持和工具。这使得跑步者注册总数为零,并且不添加任何托管行,因此保守的 5,010 名注册信封保持不变。选择该作业后,恢复真实网关 E2E 会添加一项 32 类作业,此库存中总共有 19 项混合作业,但附加注册数仍然为零。其他工作流程大小保持不变。这些数量取决于库存;在声称墙上时间改进之前,请验证发出的计划和实际的八 CPU/24-GiB 入场。
当前的纯 Blacksmith 计划使用 16 级仅源串行工具作业,其完整文件库存没有 compiler/artifact 容量固定装置或显式 runner/memory 锚点。每个小组都保留其两名工人的徽章。构建、分配、混合配置、重叠作业和未知文件库存保留其计划容量。最终的分配规则保留了包装、团体身份、测试覆盖范围、截止日期和跑步者注册;托管和混合计划保持不变。现有的铁匠文件估计仍然是历史估计,因此比较观察到的完整工作成本和更改后的持续时间,而不是假设一半的运行率意味着一半的费用。
仅失败作业混合重试在路由到托管 Ubuntu 时保留其原始矩阵及其承认的聚合估计。它们不会重新打包到 210 秒。现有的容量门将这些主机上的并发性减少到 1,而保留的两槽描述符保留了两个工作线程的子预算。此类重试可能会超过八分钟的正常运行目标;现有的 60/120 分钟工作截止日期和监管机构保持不变。请求的跑步者标签未确定实际的 CPU 或内存容量。
最终的 Node 矩阵首先在紧凑型和插件描述符中承认更长的估计作业。插件估计重用扩展批次成本所有者,包括现有的流程边界;运行时准备与紧凑作业使用的相同先决条件表分开收费。相等的估计和没有估计的历史描述符保持其原始顺序。 PR 首次尝试,包括分叉,其 Node 规划器后端是 Blacksmith 或混合后端,在默认 Blacksmith、显式 Blacksmith 或混合后端上允许最多 130 个活动 Node 行,与未更改的 PR 矩阵上限相匹配。托管计划、RunsOn、重试、冻结目标、主要和所有手动调度保留 96 个作业上限。录取主、PR资质派遣还保留96份;此 PR-event 优化不是其路由奇偶校验合同的一部分。在运行 33449014227 中,当较晚的 QA 作业开始时,所有 96 个插槽都被占用;该依赖延迟是矩阵准入,而不是运行者注册限制的证据。
扩展序列large/small作业承认360个预测秒;合格的混合并行 bin 最初允许 360,然后最终仅并行压缩到 500 秒。原生型材保留了 90 排紧凑型帽;托管计划保留96。150秒文件分割和默认的独占组预算保持不变;仅完整的非构建 CLI 箱就可以使用 250 秒普通混合准入预算。 PR-only 性能生命周期文件在运行 33532741896/33545657559 中保留了 127.288/135.808 秒本机跨度的 136 秒回退;上游推送忽略了该工具系列。当存储库变量不可用时,首先尝试从任何作者计划 Node 分片与默认 Blacksmith 后端分叉 PR,并且每个配置文件参与相同的注册绑定。最广泛的当前工作流程配置文件保留最多 87 个其他潜在行(14 个非矩阵和 73 个矩阵),或者对于没有 UI 命名项目合同的历史目标保留 88 个。保守的基于上限的信封已包含 12 个 Control UI 分片以及每个配置文件上的浏览器扩展行。排除四个无条件托管的 iOS 行、三个托管的 macOS Swift 阶段以及托管聚合门,保守上限为 80 个潜在合格行。这包括新的 Control UI 性能作业;保持上限,而不是花掉综合支票的储蓄。根据最终的 Node 上限,每次主运行的注册范围为 150 个,每个 PR 的注册范围为 210 个。两个活跃的主插槽(均待定的后继者)和观察到的 21 个未跳过的 PR 到达峰值在五分钟内完成了 4 × 150 + 21 × 210 = 5,010 的注册。这使得发布工作、相邻存储库和结转的 6,000 个参考操作目标内还有 990 个;它并不能证明这些抵达者适合。较早的 19 日到达的估计已经过时了。使用之前的 4,826 注册参考,2026 年 9 月 2 日有界队列审计计数了 321 个未分配的铁匠工作,并保留了 9 个辅助行,从而为 4,826 + 321 + 9 = 5,156 提供了计划注册和低于该参考的 844 行津贴。其 40 次精确尝试覆盖了 4,830 个工作岗位;排队观察的时间跨度为 21:50:48–21:57:11 UTC,并且不是同时进行的。已分配的作业、旧的等待审批运行、未观察到的重试和未列出的组织工作仍然在该队列之外,因此这是有条件的计划界限,而不是实时组织平衡。使用与推出模型分开的实际发出的行来评估单个 PR 试验。预算所有六个 npm 资格工作和相关的完全释放的孩子;共享令牌配额响应或未使用的存储桶不会建立组织范围内的使用情况或物理运行程序容量。
checks-ui-e2e 使用命名项目合同和已知的更改路径库存为普通上游 PR/main 计划发出九行:八个加权 Control UI 分片和一个浏览器扩展行。完整的手动清单、分叉和未知更改的路径保留十三行。这会从每个合格的普通运行中删除四个铁匠注册,而不会增加现有的注册上限。 Control UI 分片使用16级;浏览器行使用 8 级,除非由有界混合计划允许托管 Ubuntu。没有合同的历史目标在 Blacksmith planner 配置文件中保留总共 4 行,或者在 GitHub 和混合配置文件中保留 14 行。 49fb9c5 的 2026 年 9 月 2 日库存包含 359 个文件:329 个并行捆绑消费者、3 个并行自有文件、7 个串行捆绑消费者和 20 个串行私有 source/custom-build 文件。普通 CI 排除 7 个真实网关文件,剩下 352 个。四个原生项目代表资源所有权,无需添加作业或执行阶段:ui-e2e-bundled 和 ui-e2e-standalone 默认与两个工作人员共享组 0,或普通 CI 中的三个工作人员,然后是 ui-e2e-serial 和 ui-e2e-serial-standalone 共享组1 与一名工人。本地限制和明确的工人限制仍然适用。共享加权排序器按每个文件的测量持续时间除以该项目的有效工作人员数量来收费,并在选定的 Control UI 行中分配每个发现的规范一次。根配置使完整的清单保持可见以供发现。串行调度仍然保护共享 Vite 优化器缓存、真实网关和运行时预算测量的私有源服务器;测试用例、截止日期和隔离不变。
每个选定的项目都会发现 Chromium。第一个选定的捆绑包消耗项目构建一个私有生产 bundle/preview 并通过 Vitest 的调用范围根上下文发布其 URL;后来的消费者共享它直到调用拆卸。独立项目没有捆绑设置或 URL 桥,因此仅独立选择会跳过该构建。启用的手动校样捕获使用共享上传目录,包括 MCP 和日志套件。
普通和真实网关 Control UI 作业仅上传允许列表中的 failure.public.json 摘要,并将其保留 7 天,每个作业和运行尝试都有单独的工件路径。原始 failure.private.json 报告和 failure.private.png 屏幕截图保留在本地,并且不包含在这些上传中。没有公开摘要的旧冻结目标不会产生匹配的上传;原始捕获永远不是后备方案。
专用真实网关通道通过 createUiRealGatewayTestShards 和 test/vitest/vitest.ui-e2e-prebuilt.config.ts 将其完整的选定库存划分为两个作业。第一行将审核的并行允许列表之外的文件与选定的独立同伴进行平衡,这些同伴在串行执行后共享现有的两个工作阶段,而无需获取捆绑预览。另一行拥有剩余的并行文件。真正的node/SSH桌面调整大小组合仅发布;仅当桌面规格属于已选择的清单时,其引导程序才会在第一行运行一次。完整的 manual/release 运行并直接桌面规范编辑选择它。频繁的身份验证调整大小、仅查看过滤、撤销、接管和 UI 大小调整测试仍保留在普通 CI 中;真实的客体几何结构和完整的两个 browser/two-transport 组合仍在发布验证中。规划者拥有行布局;它和 Vitest 配置使用 vitest.ui-paths.mjs 中相同的并行资格允许列表。每个作业都需要干净的签出和完整的运行时、私有 QA 和来自 OPENCLAW_BUILD_PRIVATE_QA=1 OPENCLAW_RUN_NODE_SKIP_DTS_BUILD=1 pnpm build 的标准 Control UI 工件; build-artifacts 保留 SDK 声明生成和验证。源和构建的输出保持不变,直到所有工人和孩子完成,并且准备失败停止而不会重建或回落。经过审计的装置保持其私人 HOME、状态、港口、清理和现有的两名工人的约束。选定的调用预览消费者和平台系列固定装置通过私人预览为经过验证的标准 Control UI 资产提供服务,而无需重建它们。预览将工件身份传递给默认模拟的 Gateway hellos;显式身份覆盖和构建偏差检查保持不变。普通本地运行保留私有 UI 版本。分裂前冻结的目标和规划者保留了一份完整的工作;普通的本地配置保留其串行策略。
最初的两个工作人员部署进行了受控的 Linux 比较,涵盖了当时完整的 14 个文件清单和 25 个测试,将调用运行时间从 309.374 减少到 202.027 秒。这些历史结果并不衡量后来添加的白名单、完整的 CI 时序或 CI 延迟目标的实现情况。
符合条件的 control-ui 行请求 blacksmith-16vcpu-ubuntu-2404;当可选托管准入关闭时,浏览器扩展行保留 8-vCPU 请求,并且符合条件的真实网关作业请求 32 类。后端、事件、贡献者信任和缓存写入边界保持不变,包括混合首次尝试和可信贡献者分叉。历史 run 33692146223 有两个最慢的 UI 行请求 8-vCPU 标签,但报告两个 CPU;他们的 356/383 秒测试步骤设置了 8:20 非 Windows 墙。该运行的 32-vCPU 作业报告了 8 个 CPU。较大的请求不添加任何工人。在历史 run 33695337496 中,32 级上的所有 12 个 UI 行报告了 8 个 CPU,并在工作流程创建后 4:38 完成,测试步骤为 102-145 秒。这些测量结果并没有确定今天 16 级航线的时刻表。陈旧文件权重仍然需要现有改装的独立运行和替换阈值,而不是一次性手动调整。
在 run 35028248954、UI 作业 6/7 中,六分片 Control UI 计划请求 16 级并报告四个 CPU。在发出测试命令之前,设置大约需要 3 分 45 秒。该作业记录了 168 次通过测试和 3 次失败,然后在运行器启动后约 25 分 07 秒被取消;测试在取消前三秒完成。十二分片计划仍然需要原生 CI 时序证明,并且扩大该计划并不能解决这些断言或保证在不变的期限内完成。
两个真实网关行请求当前目标的 16 级,并为冻结或未分类的目标保留 32 级。当选择此校样通道时,拆分会添加一项作业和一项可能的注册;普通 PR 会忽略它。 Blacksmith real-Gateway 行有 30 分钟的作业预算,托管后备保留 40 分钟。该范围内的津贴不会增加任何工作、注册或工人,并且考试截止日期保持不变。它遵循确认的 20 分钟作业超时,run 38590548763 中 17 个文件中的 16 个已完成;自然运行必须确定津贴是否足够。拆分不会更改后端、贡献者信任、重试或缓存路由。
浏览器扩展行仅通过现有的 qaRuntime 构建配置文件准备其本机主机运行时 JavaScript 和资产,而不是重建声明和 Control UI。九排普通计划和十三排全库存计划均保持在现有的保守注册范围内。仅失败作业重试保留其先前发出的矩阵,包括具有六个 Control UI 分片的旧计划。 PR重试和混合推送重试通过实时路由选择托管Ubuntu,因此可能需要更长的时间;现有的 25 分钟超时没有改变。重新运行预检会选择 8 个 Control UI 分片用于普通的已知库存计划,或者选择 12 个分片用于完整验证,以及浏览器扩展行。在工作人员元数据存在之前发出的矩阵保留两个工作人员后备。 Blacksmith 配置文件上的上游推送重试保留 Blacksmith 路由。对于没有指定项目合同的历史目标,max-parallel 上限保持为 14,保留其之前的宽度。身体能力必须与注册限制分开检查。
之前的 13 个串行分片布局在 2026 年 9 月 1 日成功执行 run 33494931388 时消耗了 4,258 个作业秒,平均每 Control UI 行 327.5 秒;预飞增加了 39 秒,尾排增加了 363 秒。当前的项目通过有界捆绑并发来减少建模主体。在运行 33638745824 中,十二个成功的首次尝试 Control UI 行的 median/p90 测试步骤为 197/235 秒,而其检验中位数达到 116.5 秒。将 13 个 Control UI 分片减少到 12 个,消除了一次重复的签出和设置,而无需合并单独的浏览器扩展工作。当前的 Control UI 目标是在 15 分钟 PR/main 工作流程目标中每个普通作业 8 分钟。分别测量排队、结帐、设置和测试工作;最后一扇门仍在等待其他选定的工作。历史串行布局和单次托管重试不是成对的性能比较。
当后端未设置或 blacksmith 时,上游存储库 CI 将 Blacksmith 保留为推送和首次尝试相同存储库拉取请求运行的默认运行路径。混合动力在尝试 1 时保留了铁匠上的重装以及指定的关键路径高原车道;其他轻型车道和每个重新运行的铁匠车道都使用 GitHub- 托管容量。两个 UI E2E 作业的拉取请求重试在每种模式下均使用 GitHub-hosted Ubuntu;除非应用混合回退,否则推送重试仍保留在正常后端。手动 workflow_dispatch 和其他存储库运行使用 GitHub- 托管运行器作为主 test/build 通道。在未设置或 blacksmith 后端的情况下,普通上游手动调度 (release_gate: false) 仍然可以在其 Blacksmith 矩阵运行器上运行七个 check-shard 行;发布门检查行保持托管状态。 Same-repo 混合完整发布验证仅将冻结候选 lint 发送到其矩阵运行器,无论是对于没有发布上下文的确切主祖先 SHA 还是对于上游发布上下文候选。这些人工入场超出了上述 main/PR 抵达预计时间。 github 后端 提供手动存储库范围的回退;上游运行不会检查 Blacksmith 队列运行状况或自动改变变量。
Vitest工人尺码
固定作业准备
9 月 20 日的开销样本测量了绿色主运行 35520044205 和绿色 PR 运行 35456568835 中的所有作业步骤。 Main 有 72 个活跃作业和一个 16 分 45 秒的工作流程墙; PR 有 152 个活跃作业和 26 米 25 秒的墙。结帐中位数为 9/8 秒,Node 设置中位数为 13/13 秒。在每次运行中,结帐和设置消耗了 30.63/82.18 机器分钟。作业 API 将复合设置报告为一步;采样日志确认了 dependency/store 命中,并在测试步骤内以 7.1–21.7 秒的时间测量了冷工准备情况。这些不同的清单是基线,而不是配对的性能比较。
编译工作人员重用不会添加任何作业、注册、测试流程或工作人员。它使用现有的受保护的温暖和仅恢复操作缓存机制。温暖的结果必须包括传输、验证和联合清理;仅靠存档命中并不能节省成本。初始 PR 运行保持冷状态,直到受保护的预热器发布新的命名空间。删除未使用的构建存档上传可节省 5-6 秒的时间,加上工件作业中的打包和插件资产上传时间,这不是任一基线中的完成瓶颈。 Node 运行时构建保持独立,以保留并行启动和私有 QA 输出变体。 Checkout 已获取深度一选定源;历史测试先决条件和修订比较输入保留其现有所有者。
对四个 CPU、15.4、GiB、RAM 和 Node 24.19.0 进行 Linux 测试箱检查,测量准备情况并在 8.43/9.44 秒内进行联合清理,无需重复使用和恢复 30 MiB 存档后的 3.21/3.17 秒。峰值进程RSS从2.59–2.66 GiB下降到0.55 GiB。两个样本中点在下载和提取之前节省了 5.75 秒;运输成本必须低于改善消费者墙的成本。生产者在冷缓存上花费了 9.38 秒。这些是准备测量,而不是完整的工作流程或生产缓存命中率。
如果每 8 小时运行 36 次,则在 152 个活动作业中节省一秒的时间为每 8 小时窗口 1.52 机器小时,如果该比率全天持续,则为 4.56 小时。使用每次运行的实际合格计数;请求的 vCPU 成本和机器占用时间是单独的衡量标准。
工人天花板
当前串行自托管 Node 作业在运行时准备后对共享工作调度程序进行采样。可用 CPU 少于 8 个或少于 24 个 GiB 的主机保留工作流基于 CPU- 的现有上限。托管跑步者、冻结目标和重叠计划也保留了现有的上限。交互式本地调度不变。
| 要求的铁匠课程 | 观察到的 CPU / RAM | 具有净空的串行作业上限 | 重叠的儿童天花板 |
|---|---|---|---|
| 4 / 8 | 2 / 7.66 GiB | 2 | 2 |
| 16 | 4 / 15.42 GiB | 3 | 2 |
| 32 | 8 / 30.95 GiB | 8 | 2 |
组别针可以降低这些上限。 agentic-gateway-core-2、agentic-agents-embedded-base-*、agentic-agents-embedded-run 和 agentic-agents-tools 系列、命令组和整个 agentic-cli 组使用在 Blacksmith 和混合配置文件上测量的工人,以及 fallbackMaxWorkers: 2。完整的 CLI bin 在打包后请求 blacksmith-32vcpu-ubuntu-2404 并保留串行执行。观察到的八-CPU/30.95-GiB分配可以接纳八名工人;实际CPU,内存和负载仍然决定上限。分片运行程序在托管、冻结、约束或重叠执行上应用两个工作人员后备,与任何较低的作业或组限制相交。即使工作流程上限为 3,4-CPU/15.42-GiB 16 类分配也会收到该回退。 GitHub-托管规划、agentic-cli-process和其他时序敏感组保留其现有引脚。网关计划仍然独家运行;未经证实的兄弟姐妹共享其序列号保留其两人工作组上限。 CLI 库存、拆分策略、时间权重和准入预算保持不变。
agentic-gateway-server-isolated 系列(包括其数据库工作人员配置)使两名工作人员保持在 Blacksmith 和混合配置文件上。当前源首次登录 CI 超出了 8 名工人分配下不变的 90 秒截止日期;八名工人的基线控制在 85.4 秒内完成,几乎没有留下余地。两名工作人员预算恢复了冷启动空间,而无需更改测试截止日期、断言、库存或清理。现有的主机准入和回退规则、独立规划的 GitHub 配置文件以及单独的四工作网关方法策略保持不变。
历史上的9月20日配对检查在源39b3aa10677c99af54e3bffb43cadf3bb6c89eb8使用相同的八位CPU,30.95 GiB,Node 24.19.0测试盒进行固定2/8/8/2 序列,每轮都有新的 JavaScript 缓存路径。每一轮都运行相同的 114 个文件,并通过一个现有跳过的 2,776 项测试。两工墙分别为481.535和474.459秒;八工人墙分别为 225.123 和 225.151 秒,中点减少了 52.9%。峰值总和过程 RSS 从 8.71 上升到 20.70 GiB,总用户加系统 CPU 增加约 8.1%。没有任何后代进程能够在一轮中幸存下来。其余 14 个运行时承载文件也在 8 个工作线程处通过,其中 39 个通过测试,1 个现有跳过,14.96 GiB 峰值总和为 RSS。这些测量涵盖了该来源的 128 个文件组。此后,其库存和共享网关装置发生了变化;候选人特定的功能、记忆和清理证明必须单独记录。 52.9% 结果未建立电流源或整体 CI 加速。现有的两人计时世代保留为咨询楼层,直到正常的整组改装取代它们为止。
命令拆分和打包保留保守的两个工作人员重试预算。文件层和已知的工人特定观察结果在包装前收费;稍后的工作人员选择无法将未预算的工作添加到整行。放置后,它们的预测子秒将使用预期的分配:8 个在无上限的串行 32 类行上,2 个在受约束或重叠的行上,以文件计数为上限,并以最长的文件为界。运行时准备不分。单独的时序标识保留直接 two/eight-worker 样本;新的并行观察不像串行观察那样被划分。实时 CPU 负载和内存压力可以降低调度程序的分配。
嵌入式基础文件、尝试运行程序和工具文件遵循共享调度程序的文件并行性。底座保留了三个平衡的条纹,用于容纳大型harness文件;单独的溢出压缩和不完整轮配置保持串行。并行代理墙时间使用不同的计时键。在这些测量结果到来之前,规划人员将遗留的串行成本除以两个有效的工作人员,同时保留最大的不可分割文件的成本。新的并行测量取代了这种后备措施,没有任何折扣。
代理核心文件共享已配置的工作池,包括本地调度及其单工作器限制。紧凑的代理核心组保留了两名工人的上限。他们的初步估计将串行计时历史除以有效的文件工作人员,从而保留了不可分割文件的成本。单独的并行计时键让后续测量取代这些估计,而无需再次划分。文件库存和大量导入的 CLI 条带保持不变。
工具文件使用共享工作调度程序,而不是强制一次一个文件。紧凑型工具组保留两名工人的上限和独家儿童入场权。他们的规划人员估计使用当前文件成本除以有效工作人员数量,以最长文件为界;单个慢文件无法从文件并行性中受益。历史序列组总数不再是这些估计的基础。 Docker 辅助装置保留其单独的串行配置,并且隔离的工具配置保持最新的模块状态,而无需禁用文件并行性。集中工具计划推迟了不相关的全套库存发现,并保留了边界和内置的 TUI 检查。其他精确的选择和广泛的计划保留了其完整的注册套房所有者。
专门的 Codex、Slack、Telegram、包合约和仅发布插件配置也从工作上限继承文件调度。 Codex、Telegram、包合约和插件保留隔离的模块图。 Slack 使用文件本地传输装置和文件之间现有的运行器模块清理,因此分叉可以重用其准备好的依赖项。 Slack 和插件运行时使用应用程序主线程 SQLite 工作代理的分叉。普通 Telegram 文件在每个现有的十文件作业信封内共享一个进程,而本机 Telegram 数据库工作文件保留其单文件进程生命周期。插件分片仅发布。这些更改减少了流程开销,并允许文件并发,而无需扩大作业库存或工作人员预算。 Slack 和 Telegram 多文件估计在两名工作人员资格后保守地将其历史序列率折扣为 1.2。 Singleton 和 Native-Worker 成本保持不变;新的并行测量取代了那些串行参考,没有任何折扣。打包可在每个跑步者轮廓上节省一排 Node PR,而紧凑和推动预算不变。
9 月 19 日检查 在 8 个 CPU 上每个单元运行了两个预定义样本,30.95 GiB 和 Node 24.19.0. 所有 12 个样本均通过。单计划单元运行所有 293 个 core-2 文件;两个计划单元还通过一次性仅检查准入例外同时运行完整的 core-1 组。 Production Gateway 的排他性保持不变。默认解析为三个工人。
| 工人 | 计划 | 墙秒,两个样品 | 峰值总和 RSS | 峰值过程 RSS |
|---|---|---|---|---|
| 3(默认) | 1 | 313.0 / 288.8 | 5.92 GiB | 5.63 GiB |
| 6 | 1 | 248.5 / 239.7 | 8.49 GiB | 8.12 GiB |
| 8 | 1 | 252.5 / 254.5 | 10.08 GiB | 9.69 GiB |
| 3(默认) | 2 | 364.9 / 347.2 | 9.04 GiB | 5.66 GiB |
| 6 | 2 | 359.0 / 316.4 | 12.12 GiB | 7.46 GiB |
| 8 | 2 | 380.0 / 339.6 | 14.71 GiB | 8.59 GiB |
8名工人将单计划中点降低了15.8%;六减少了 18.9%。八号并没有改进组合的双平面墙,六号在两种布局中都稍快一些。这些两个样本的比较并没有建立精确的最佳值或整个工作流程的加速。没有重新运行任何失败,也没有测试断言或截止日期发生变化。
CI 内存层保留总容量的 25% 用于其他工作。最差的八工人单一计划 RSS 的两个副本需要 2 × 10.08 = 20.16 GiB,适合 28 × 0.75 = 21 GiB。六名工人的界限是 2 × 8.49 = 16.98 GiB,适合 24 × 0.75 = 18 GiB。实际重叠的 RSS 已包括两个计划,不会再次相乘。这在至少有 8 个 CPU 的主机上提供了 6 个从 24 到低于 28 GiB 的工作线程和 8 个从 28 到 128 GiB 的工作线程。更大的内存层、显式覆盖、16 个工作线程上限、负载回退、cgroup 约束和可用内存限制仍然存在。 free/process-available内存最多8个GiB仍然限制自动工人为2人;最多 4 个 GiB 将它们限制为 1。承诺的时间权重不变。
所有者路径和发布覆盖范围
Docker 种子在每个承认的上游主管道上运行一个已发布的升级幸存者; QA Smoke 保留所有者路径选择。普通手册 CI 和完整发布验证选择所有六个 Docker 种子通道。 Main在标准打包之前通过ciArtifacts构建完整的运行时和公共SDK声明; manual/release 运行时保留完整的包生成。拉取请求及其精确头回退调度忽略了这些作业、真实网关 UI 和命名的内置进程验证器。 Unit/boundary 和模拟网关覆盖范围仍然存在。完整的文件证明清单属于scripts/lib/ci-proof-test-inventory.mts,适用于业主决议后的精确紧凑的PR计划。保留的主要证据和完整的手动清单保留了每一个断言。
Windows 规划器消耗两个现有包脚本中的所有显式文件,并保持每个文件完整。参考运行 35520647082 有 689/837 秒的 Windows 作业。第一个五行运行 35530187452 在 333/496/425/450/370 秒内通过了所有 Windows 测试,暴露了不均匀的文件成本和重复的 67.2-second 运行时构建。
规划器现在使用该运行中已用的整个文件段,包括导入和挂钩,而不是汇总并发案例时间。共享 Vitest 元数据将兼容的项目文件分组在一起;超大项目仅在文件边界处拆分。共享运行时先决条件所有者将其使用者放在一起,因此在 Vitest 工作线程启动之前会进行一次准备工作。这包括普通的 Claude CLI 可执行启动集成测试:其本机 Node-leading 和 npm-shim 变体重用准备好的 dist,而不是在 240 秒 CLI- 准备预算内构建 TypeScript。当前的项目调用次数从 72 次下降到 35 次,而进程隔离或覆盖范围没有改变。该模型每行预留 104 秒用于观察设置、共享工作器编译和包装器转换,另外还预留 68 秒用于一次运行时准备。它为未测量的文件保留了三秒的后备时间。四行预测每行 489 秒; 5 个预测分别为 412 秒。这些是需要托管验证的估计值,包括实际的运行者队列时间。所有 133 个文件和共享的工作工件固定装置均保持不变。
工作工件固定装置仍然是 Windows 后续:参考记录了一个共享 18.087-second 编译,然后在最后一个案例完成之前至少 139.608 秒(213.267 秒汇总了并发案例)。第一个五行运行测量了整个文件的 170.203 秒数与 217.299 并发情况秒数之和。在另一次优化之前,配置文件生成 copy/verification 和借款人在 Windows 上启动。
仅证明分层就使参考 924 秒关键路径保持不变。对于五个 Windows 行和每个 C1–C6 目标分片等于或低于 500 秒,保留记录的 Node 矩阵等待时间为 793 秒,以 Compact-small-46 为首。如果所有作业队列都保持在 8 秒以下,compact-small-4 仍然给出 680 秒。 96 行 Node 并发上限导致观察到的等待时间为 140-160 秒;减少入场证明并不能证明这些等待消失了。这两种情况都没有声称十分钟的目标已经实现。
全层 Windows 扩展最多添加三个非 Node 注册。在不花费任何 PR 证明节省的情况下,使用 83 个潜在合格的非 Node 行和未更改的 70/130 Node 上限:4 × 153 + 21 × 213 = 5,085,将 915 留在 6,000 参考信封以下。本页其他位置的历史计算使用早期的两行 Windows 库存。 Compact90、push70、PR130 和 96 个并发 Node 限制保持不变。日常计时改装依然遵守主打样张和发布样张;未更改分层的承诺体重基线。
| 车道 | PR 覆盖范围 | Main/manual 和完整的发布覆盖 |
|---|---|---|
| Docker 种子 | 现有每车道更换所有者,以及 selector/update/Doctor/state 测试 | 在每个承认的上游主管道上发布升级幸存者;普通型 manual/release CI 上的所有六车道 |
| QA 烟雾 CI | 现有 QA/channel/packaging 所有者范围以及重点单元套件 | 业主自选主材;手册 CI 上完整支持的烟雾轮廓 |
| 真实网关 UI | UI 单元和模拟网关浏览器项目 | 现有选定main/manual真实网关库存 |
| 构建过程证明 | 浏览器注册、Doctor 持久性、Discord 多部分、SQLite 商店、手表和 TUI 边界测试 | 构建工件中的本机主机、Doctor、Discord、SQLite、手表和 TUI 金丝雀 |
| 医生拒绝/Codex 恢复 | 博士admission/repair和马具replacement/cancellation的界限 | main/manual Node 计划中的完整文件 |
| Windows | 测量的整个文件行中的所有 133 个本机 unit/boundary/process 文件 | 相同的清单,历史目标保留其包命令 |
测量的分片权重
基础设施和主机拥有的 SQLite 测试消费者也遵循现有的工作上限,保留隔离的分叉和夹具拥有的 home/state 目录。目录敏感回归在联接的子进程中运行,并且备份命令装置消耗调用的准备运行时。文件并行性不会添加紧凑组、运行器注册或单独的工作器预算。
网关核心、数据库工作线程、方法、方法隔离、服务器和服务器隔离配置以独占计划准入运行。进程内网关冷启动单独测得为 37 秒,在争用情况下测得为 50 秒(与 90 秒的测试预算相比)。每个专属计划加入之前的普通打包计划开始前;独家计划在后续计划开始之前加入。普通跨度在具有至少 8 个可用 CPU 和 24 个 GiB 内存的 CI 主机上最多允许两个计划。根聚合、全代理聚合和网关聚合保留相同的栅栏。没有加入进程组的可移植运行程序使包含网关的作业保持串行,就像共享最终缓存叶的调用者一样。计划准入保留现有的总持续时间预算、跑步者分配和每个计划的工人限制。这不会增加就业机会。即使调用者请求两个计划,分片运行程序也会强制执行相同的独占围栏。精确的更改测试选择保留了网关配置所有者及其准入元数据。网关准入在运行时放置之前完成,因此库存更改保留已准入的作业上限,而不是创建不同的组策略。
当进程组和缓存叶归调度程序所有且输出所有权明确时,具有多个文字测试文件目标的直接 CI 调用将使用此有界准入。使用控制台报告器,例如带有 --coverage.enabled=false 的 --reporter=dot,或现有的多调用 JSON 报告所有者。未解析的配置输出和 GitHub 摘要报告器保持串行;显式并行覆盖保留其调用者拥有的输出策略。选定的规格和文件成员资格保持不变。显式本地并行设置和全套延续保留其现有行为。即使内部进程重叠,聚焦的 CI 分片也会在失败后停止准入,除非普通的连接失败启用了显式延续。自动准入也会在未经验证的加入后停止并耗尽已准入的工作;有界调度并不能确定完全受保护的证明是否符合其租约或工作流程的截止日期。
普通紧凑型 Gateway 箱保留其 300 秒预测测试预算。以前的平行垃圾箱在整个工作环境中保持其两名工人的上限,除了测量网关垃圾箱,其其他组单独保留该上限。
网关方法仅在具有至少八个实际 CPU 和 28 个 GiB RAM 的串行非冻结自托管作业中使用四个工作线程。受限主机、重叠作业、托管重试和冻结目标保留两个工作线程。四工作人员计时标识与两名工作人员历史记录分开。原始慢速行的三个 Linux 测试箱重播通过,峰值总和 RSS 低于 9 GiB,并且至少 6.7 GiB 在四台 CPU、15.4-GiB 机器上可用。较小的证明主机明确使用了四个方法工作者;生产入场保留较大的内存储备。这些重播建立了测试行,而不是整个 CI 延迟保证。
规划器保留聚合工作限制,并且仅当执行器的有序两槽队列适合 300 测试秒时才允许并行 bin。报告的测试步骤墙使用相同的队列,因此最长的孩子永远不会被二除。每个作业一次的运行时准备是分开的:52 个最近的 8 类构建花费了 41-55 秒,因此其计划储备为 60 秒。 private-QA 保留时间仍为 104 秒。包括结帐、设置、准备、依赖等待以及工作流预测中的最终入口。
超大 CLI 和 Blacksmith 代理支持系列使用现有的文件拆分器,保留完整的库存及其串行资源策略。当每个串行组都有一个合格的配置、一两个显式文件以及两个工作人员引脚或后备时,精确选择的纯源 CLI、网关 client/server 和嵌入式代理作业将使用 16 类。显式更宽的工作引脚可保持计划容量。打包后应用此选择;将完整的系列、不合格的配置、构建、内存层和显式的大型运行锚保持在其计划容量内。资源门控工具测试仍然不在此规则之内。 RunsOn 为这些保留的铁匠工作继承了相同的混合选择。孤立的attempt.llm-boundary.cache-stability.test.ts选择在它是该组唯一的文件并且相同的警卫持有时也使用16级。 33488188fcab 的完整重播通过生产分片执行器在 105 秒内通过了所有 19 项测试,使用四个 CPU、12-GiB 内存限制且无交换。峰值内存为 4.23 GiB,没有 OOM。这仅限定该文件;任何不合格的孤立兄弟姐妹都会使整个工作保持其计划的能力。此选择的本机延迟和计费节省仍需要合并后观察。普通自托管群组可跨逻辑班级共享现有提升的32级容量,现有群组交换填补搁浅容量。当完成的计划符合其行上限时,混合打包会保持成本递减的初始放置,从而保留现有的串行网关接收者用于运行时工作。在灵活并行组之前,仅使用串行网关组重建一次上限计划,从而在最终并行重新打包之前为重复的条带系列保留空间。替代方案以相同的家庭、时间和工人限制重新运行所有准入和运行时安置检查;如果超过上限,它仍然会失败。最终 70/130 push/PR 上限保持不变。本机紧凑准入允许 90 行,而托管准入允许 96 行。本机工具箱保留单独的两个工作人员子进程和 300 秒的测试预算。包含分区的已更改-Node 规划器证明的行在初始打包和测量的重新平衡中均使用 150 秒;两者都保留 60 秒的作业设置时间。
每小时混合主验证携带完整的工具系列,因此其普通工具行使用 420 秒测试加上 60 秒的初始包装和测量再平衡设置。经规划的行保持 150 秒; PR、推送、发布和托管计划保留其预算并发出相同的矩阵。 480 秒的排行保持在 8 分钟目标以内,并且低于 main 现有的 500 秒并行排行。在 2026 年 10 月 14 日的库存中,仅在网关优先重建和最终对合并之后,main 的第一个打包通道计划了 80 个作业,并达到了 78 个作业的紧凑上限(76 Node 加两行),因此任何新组都在预检中失败。更密集的模具预算将第一遍打包为 77 个作业(最后 77 行 Node 中的 76 行),并保留两个后备; Planner 探针适合一到三个新的 25-280 秒组。子进程、工作限制、运行程序类、超时、计时权重和行上限防护均保持不变。这些是规划目标,而不是衡量的工作期限保证。
托管的每小时工具保留其现有的 720 秒总预算(660 秒的测试加上设置),以将集成层保持在每小时行上限之内。它使用完整的托管文件价格,无需本地墙观察。 GitHub 和混合工具使用相同的文件打包来实现托管重试预算。仅当同伴不增加预计的挂机时间并且保持在现有的 300 秒整个作业预算内时,它才可以填补不可分割文件的空闲工作人员。
90 的原生紧凑余量适合现有最终 PR 限制内的分区规划器证明;它不会增加最大 Node 矩阵大小。已更改的 Node 规划器证明按所有权划分为七个文件,保留每个现有断言。独立的依赖中心方案在与叶配置所有权不同的情况下运行,从而保留了现有的截止日期。两名工人和连续外部入场保持不变。冷文件估算使用观察到的案例成本加上启动津贴,直到完整的分割文件 CI 观察结果到达。超过 150 秒的不可分割文件保留其记录的成本,并需要单独的测试所有者修复;承认永远不会影响他们的预测。工作工件 CI 装置保留了本机 32 类分配:三代保留案例需要 8 个 CPU 和 24 个 GiB,并且在这些案例运行之前,约束重放已经使用了 6.05 GiB。其两名工人政策保持不变。
大型工作区库存证明在其自己的 agentic-gateway-core-inventory 调用中运行,并在完整的 CI 计划中具有独家计划准入。其 13,000 个文件的暂存、应用、序列化日志和恢复检查保留了 120 秒的截止日期,而不与同级 Vitest 文件竞争。
在其独家计划中,Gateway 数据库工作人员队列在现有 Vitest 工作人员上限下以并行分叉方式运行文件。每个分叉都保留非隔离运行程序对本机数据库所有者、准入和模块状态的文件边界清理。一名工作人员仍然串行运行文件;文件清单和无输出看门狗保持不变。共享测试端口声明涵盖子进程启动和进程内侦听器生命周期,包括子进程绑定其套接字之前的切换。
网关服务器文件也在并行分叉中运行,每个运行程序配置文件上都有两个工作人员的紧凑上限。两个本机 Vitest 子流程生命周期装置首先在同一配置中的串行项目中运行;他们的冷门收藏不能与普通文件竞争。其余文件保持其并行阶段。规划器保留每个本地固定装置的测量成本,并仅将剩余的遗留串行工作除以有效工人数量;单文件组保留其不可分割的成本。整个并行调用和分割调用的总和记录单独的时序标识。单例条带恢复整个父级的每个文件成本,而无需再次乘以测量的子级跨度。现有的文件拆分器和作业打包器在未更改的行和持续时间预算内消耗这些调整后的成本。
完整的混合主请求和拉取请求计划保留其现有作业和运行程序分配,同时在 440 秒内接纳测量的运行时组,包括现有的 100 秒构建余量。这为checkout/setup保留了八分钟目标中的40秒;它不会改变考试截止日期或保证经过的时间。只有没有 dist 或 private-QA 准备的非排他性作业参与。整个运行时组只能在其自己明确的工作人员限制的情况下转移到已经需要的同等或更强的运行者。
接收者已经可以准备运行时间或者具有备用的普通容量。普通接收者变成串行并准备一个运行时;其之前的平行团队通过明确的固定方式保留了两名工人的津贴。他们准备好的时间标识保持不变,保留了完整的父代。 CI 执行器应用所提供的作业上限和组上限中较小的一个。当转账的最大估计值相同时,计划者会优先选择剩余时间更长的接收者。这可以添加运行时构建,同时减少请求的进程并发性,而无需添加作业或运行程序注册。在验证结果时计算准备成本。
两个替换垃圾箱必须通过共享家庭、团体计数和预算检查。如果没有转移适合,CI 保留完整的现有计划并报告其超预算估计;优化不能抑制测试覆盖率。接收者的能力必须保留捐赠者工作的固定跑步锚,包括该组的任何早期晋升。独家、私有-QA、分布式和托管策略保持不变。精确的变更文件计划保留其原始安置模板和入场楼层。
改装存储来自发出的组描述符的类型化运行时放置观察、成功的完整包络和运行时就绪标记。每次测量都伴随着配置、组环境、完整的文件成员资格和预构建模式。精确匹配的观察优先。当它不存在时,其文件仍然存在的最大兼容观察提供咨询平台。这会在添加文件后保留已知的工作,而不会汇总重叠的观察结果、借用另一个环境的成本或将 directory/glob 选择器解释为完整文件。稍后的精确测量可以降低优化后的估计值。
这些观察结果使用相同的独立运行采样规则,并且仅在文件分割后应用。他们不会重建完整的父分区或更改测试分区。现有的父项和精确子项计时键保留其含义。包装材料的准备工作已包含在每次观察中;单独的共享运行时构建按每个作业收费一次。未知群体保留正后备成本。具有相同清单的本机证据必须在声称改进之前验证延迟、实际资源和清理。
config/ci-test-timings.json 记录 UI 和网关 E2E 文件、PR 工具文件和紧凑型 Node 组的 CI 测量值。 UI 和紧凑型包装商更喜欢主动重量而不是其内部冷启动表。 UI E2E 密钥是存储库相对路径,包括 ui/src/pages/ 下的测试,每个文件估计包括测量的分叉、导入和设置开销。紧凑组有单独的 Blacksmith 和 GitHub-hosted 测量,从作业 API 跑步者标签中选择(blacksmith-* 与托管 ubuntu-24.04);混合和大组条带调整继续使用其现有策略。紧凑权重使用完整的 [shard:x] begin 到 end 范围,保留进程启动和测量运行中的任何争用。普通铁匠紧凑型工作可以同时执行两组;串行作业保留 planConcurrency: 1。改装保留了每个完整的子跨度,包括争用,而不减去设置或重写历史成本。跑步者资料校准仍然是一项单独的准入政策。
本机 32 类上的纯源单例还可以在分片重命名和重新分区时保留稳定的计时标识。此配置文件需要八个实际 CPU、28–32 GiB RAM、八个工作人员上限、一个承认的外部计划以及已确认的当前自托管运行。确切的配置、文件和支持的环境可识别测量。仍需要两次独立的成功观察。只有最后的串行单行才使用这个价格;打包、共享行、托管执行和后备工作线程策略保持现有的估计。这些完整的子跨度已经包括进程开销。
对于拆分紧凑组,改装还记录一次运行和跑步者配置文件中完整一代的父成本。它将每个部分的中值跨度相加,采用该运行中最大的完整代或直接亲代测量值,并应用相同的两次运行最小值和中值规则。稳定的父估计在文件添加和重新分区后仍然存在,而精确的子键继续仅描述其原始清单。部分世代不能创建或降低父估计;观察子级可以在修剪过程中保留现有的父级。来自不同运行、配置文件或代的零件永远不会形成一个整体。
网关 E2E 使用与 UI E2E 相同的贪婪分区所有者。测量的文件持续时间包括套件挂钩;新文件使用按已发现文件的每字节测量秒数缩放的源字节。如果没有测量,网关分区将单独使用源字节。 CLI JSON 套件按命令系列划分,因此其现有案例可以跨四个分片运行,而无需不可分割的串行尾部。
紧凑的计划是在飞行前一次构建的。 E2E 分片独立构建其分区,因此它们必须从结账中读取相同的已提交文件。他们从不下载计时工件或查阅恢复的计时缓存。丢失或无效的定时文件,或OPENCLAW_CI_TEST_TIMINGS=0,使用整个文件的冷启动估计;过时的密钥无法更改已发现的测试清单。
使用经过身份验证的 gh CLI,运行 pnpm ci:timings:refit 以重新生成文件。每次调用都会提前 7 天冻结一个 UTC 上限和下限。每个运行列表页面都使用这两个边界。在该窗口之外返回的运行创建时间戳无法验证。在下载运行日志之前,收集器会验证所有捕获的尝试的作业元数据。成功的作业如果缺少完成、来源无效、启动时间过长、时间顺序颠倒或在元数据观察时间之后完成,仍然无法通过验证。
在窗口内创建的运行可以在其冻结上限之后完成,同时收集早期队列。当其他有效的成功作业在该截止之后结束时,计划采样会跳过整个运行,报告其 ID 和截止,并在不消耗样本配额的情况下寻求替代。它永远不会下载该队列的日志,也不会仅将较晚的作业放入明显完整的库存中。显式 --tooling-run 请求会因运行 ID 和中断而失败;两条路径都不会移动窗口。
改装寻求在 main 上运行最多五个已完成的计划 ci.yml,并得出成功或失败的结论,并从成功的作业中解析紧凑的测量结果。即使每次推送测试工作被禁用,计划的 CI 也拥有主要验证,因此跳过的推送运行无法隐藏其测量结果。当测试文件与采样的主版本不同时,UI 文件样本将被排除。这些文件保留其现有价格,直到匹配源样本满足正常的独立运行和替换频段规则。排除的样本永远不会提供修剪更改文件的价格的证据。共享助手或产品更改仍然会影响未更改的测试;这些权重仍然是建议性的。取消、超时、中立和其他工作流结果被排除在外。仅文档运行和不可解析的日志不会填充该配额。失败的工作流程仅提供正时序样本:它们丢失的作业永远不会被视为修剪缺失键的证据。成功的工作流队列保留其现有的修剪策略,包括与失败的工作流样本混合时。它还寻求最新的五个成功的 ci.yml pull_request 运行,并提供紧凑或编号的工具测量,跳过仅文档和不可解析的队列。收集器可识别普通、changed-compact 和 changed-config-compact 作业,并为两个计时系列读取每个日志一次。这些测试执行 PR merge-ref; source 记录该来源与上游主运行和发布运行分开。 PR 计划可能会选择一个子集,因此它们的测量永远不会修剪未观察到的紧凑、运行时或工具权重。 PR 紧凑样本仅更新精确选择器子键:选定的子集可以共享缩减的完整库存的父级名称,因此其子级和不合格的直接跨度都无法对该父级重新定价。 Main 的直接采样和完整生成折叠保持不变。紧凑样本保留其发出的库存密钥和流道配置文件。当历史密钥具有不同或不明确的工人上限时,改装将保留其之前的价格,而不是像政策那样进行平均,包括折叠的母公司成本。它使用执行器的最低规则与声明的作业和组工作人员限制相交,并根据执行器记录的 CPU、内存、计划准入、运行程序环境和冻结目标事实解析声明的后备限制。未知的后备入场保留之前的价格。可靠的继承限制也成为运行时放置标识的一部分。这些上限描述了公认的限制,而不是动态内存压力下的实际工作人员。即使每个观察到的运行都使用相同的后备,与显式 #workers-N 或 #file-parallel-N 计时标识冲突的公认上限也无法取代该标识的价格。当前工具文件测量在规划器中处于活动状态。更新的 9 月 26 日队列、有界串行包装和普通容量重用适合现有的行上限,而无需激活运行 35506602947 的旧上限计划。该地图保留了单独的 Blacksmith 和 GitHub 测量值。当文件移动时,编号的工具父项及其子项计时键会发生变化,因此每个文件的成本可以在重新打包后继续存在。直接轮廓测量不按比例缩放;托管回退使用测量的 Blacksmith 文件和现有托管因素。未测量的文件使用剩余的冷提示或正的两秒默认值。
只有成功的完整工具调用才有贡献。本机文件摘要包括套件挂钩;较旧的仅详细日志提供案例持续时间总和。这些案例成本不包括 import/setup,并且可能超过并发案例的挂起时间,因此它们是包装重量而不是每个文件挂起时间的索赔。重试为每个文件、分析和运行贡献一个中值。普通改装需要两次独立运行并保留15%写入阈值。部分 PR 计划并不能证明缺失的文件消失,因此工装图保留了未观察到的文件。
对于明确审核的种子,请使用 pnpm ci:timings:refit --tooling-run <id>(可重复)。它验证成功的 PR 工作流程和作业元数据,仅允许工具运行一次,保留所有其他时序图,并在 source 中记录种子运行 ID 和合并引用来源。初始工具种子使用运行35506602947;随后的每日样本将根据普通规则替换它。
它还对拥有 Gateway E2E 的每个发布检查工作流程进行最多五次成功的手动运行采样。运行搜索仍受 25 个页面和 GitHub 的 1,000 个结果过滤查询限制。不完整的分页不写入就会失败。主页最多包含 100 个运行,因此取消的提示不会在贡献运行之前耗尽搜索;请求的捐助者配额保持不变。
对于每个选定的运行,改装都会捕获 run_attempt 并枚举尝试 1 到该值。它会在读取成功、已完成的作业之前验证每个作业的运行 ID、尝试和工作流程 SHA。当部分重试仅运行失败的作业时,这会保留原始成功的作业。重复的运行和作业 ID 不会添加样品。普通手动 CI 调度仍被排除在外,因为其测量目标可能与工作流程头不同。发布工作流程在测试之前验证其选定的目标。他们的工作流程 SHA 识别的是工具,而不是测量的源。
使用 --runs <n> 更改运行配额,而不是 7 天窗口。使用 --repo <owner/repo> 选择存储库,使用 --out <path> 在其他地方写入,或使用 --dry-run 报告更改而不写入。该报告将主要观察结果和发布观察结果分开,包括运行 ID、尝试、工作流 SHA、创建日期、工作流结论、解析的配置文件和定时作业计数。
对于使用已下载的主作业日志进行范围修复,请使用相同的 refitTestTimings 减速器以及已验证的成功作业元数据和当前计时文件。保留独立的运行 ID 和运行程序标签。明确设置每次运行的 completeInventory 事实:成功的工作流程可能会提供修剪证据;失败或部分工作流程清单可能不会。两次贡献运行刷新符合条件的键,而不启用未观察组的三运行修剪规则;不要用作业总数或本地时间来代替子跨度。将输入运行 ID 和替换表保留在 PR 中。 9 月 16 日的 CLI 刷新在运行 35042635751 和 35044335386 中使用了成功的作业:569.841 和 620.791 秒的完整子跨度用 595 秒的舍入中位数替换了过时的 136 秒权重。插件回退成本有一个单独的估计器,并且不是这个紧凑的时序缩减器的输入。
9 月 23 日的范围更新使用成功的主运行 35791016837 和 35792496414 来处理五个二级紧凑行及其移位组。完整的网关方法生成将过时的 510 秒父代替换为 1,023 秒;部分条纹样本不提供父总数。相同的减速器刷新了其他 25 个符合条件的 Blacksmith 紧凑价格,包括 197 秒 media/UI 组和 226 秒安全组。部分清单保留不相关的计时条目。工人限制、跑步者类别、入场预算和矩阵上限保持不变;精确头 CI 测量最终的包装,而不是将估算视为墙上时间保证。
9 月 16 日的紧凑更新对六个绿色主要运行中的所有 168 个成功的紧凑作业进行了采样:35117379165、35120372547、35123270863、35124135571、35125714752 和 35126089717。它们的 132 个完整选择器世代不包含部分父代总数。未更改的减速器适用于每次更换和拆卸,保留其独立运行的最小值、异常值过滤器和 15% 阈值。范围输出仅适用于其 Blacksmith 紧凑地图; UI、网关 E2E、运行时放置观测和托管测量保留其先前值。
| 紧凑型系列 | 上一个铁匠秒 | 六次运行 parent/span 中位数 | 改装秒针 |
|---|---|---|---|
| 基础设施 storage/state | 104(未测量的父后备) | 1,403.158 | 1,403 |
| 医生config/state | 67(未测量的父后备) | 614.943 | 615 |
| 运行时配置 | 113(未测量的父后备) | 847.352 | 847 |
| 基础设施 system/runtime | 86 | 692.647 | 693 |
| 网关核心3 | 167 | 381.772 | 382 |
| 命令医生 | 61 | 304.648 | 305 |
Storage/state 第 2 部分和第 3 部分测量了 735.136 和 623.723 秒;医生 config/state 第 2 部分测量了 505.405 秒。现有的选择器拆分将混合 storage/state 系列从三个部分变成了十个,Doctor config/state 从两个部分变成了五个部分,运行时配置从三个部分变成了六个部分。他们完整的文件清单、进程隔离、工作限制、命名方案和定时密钥生成仍然由现有规划器拥有。重新分区的孩子会收到新的会员密钥;被测量的父母在这种变化中幸存下来。在完整测量达到 578 秒和 491 秒后,Blacksmith 还将 Gateway core-1 和 core-2 添加到其现有的分割所有者列表中。混合和托管已经分割了这些所有者。独立代理支持保留其现有的全集团合同。
更改紧凑规划器或计时输入的 PR 现在选择其所有者测试、受影响的传递导入消费者、受保护的回归以及每个后端的固定烟雾设置。完整的紧凑型库存仍然在主线上每小时运行一次;完整发布验证保留其完整命名计划。更改所有者行的目标是最多 150 估计测试秒,同时保留整个文件、现有运行程序类和 130 行 PR 上限。单个不可分割的文件或标准组可能会超出该目标。这些入学预估并不能证明工作时间或 setup/build/queue 节省; before/after 重放证据属于变更落地证据。
9 月 16 日的刷新保留了三个系列之前的完整时序条目,以避免托管扩展:agentic-gateway-server-isolated、agentic-gateway-core-runtime 和 agentic-agents-core-spawn-production-boundary。应用他们的 Blacksmith 改装将使托管回退范围扩大到超出当时的 80 行紧凑型上限。没有两个独立的最近托管样本可用于校准它们。因此,范围内的刷新推迟了这些系列,而不是引入额外的托管行或发明托管测量。无范围改装和所有观察到的超限都属于 PR 证据,以便稍后进行容量感知刷新。 agentic-cli-process 系列还保留了其之前的计时:按照现有文件权重分配其新的父级总计,将不可分割的子级定价为 239 秒,超出了其 200 秒的合同。该系列需要单独的文件成本改装;其主张和预算保持不变。
9 月 21 日的独立网关刷新将其原来的单文件 30 秒重量替换为 1,043 秒。未更改的改装减速器测量了 9 月 14 日至 21 日冻结窗口内截至 14:07:53 UTC 的最新五个成功主推贡献者的完整子跨度:35591186572、35592313474、35593033375、35601102699 和35607421993。 gateway-server-isolated 和 gateway-database-workers 的中位数均为 1,043.136 秒;一个孩子的墙并不是完整的家庭费用。两个重复的库存特定儿童保留其测量的 396 秒和 690 秒体重。其他系列和配置文件保留其现有的测量值。匹配的后备方案涵盖了未来的库存变化,而不会抑制改装。现有的 150 秒分割阈值会生成 12 个子级,包括单独的运行时先决条件子级。这与独占容器打包不同:网关配置保留独占计划准入及其当前的工作策略。应用工具发布层和测量的工具工人后,广泛的回退适合不变的上限:111 个混合、120 个 GitHub 和 117 个铁匠 PR Node 行。
在检查的库存中,混合紧凑描述符在推送时从 29 变为 51,在广泛 PR 时从 53 变为 75;对于独立 CLI,最大预测仍为 518 秒。在那次修订中,普通的二胎垃圾箱保持在 360 秒之内。不包括 dist,Node 矩阵使用 50 个推行和 113 个宽 PR 行,包括 40 个插件行,在当时的 64/120 上限内。铁匠紧凑描述符从 34/52 更改为 59/77;诚实的 804 秒最大值属于独立代理支持。托管计划在 51/79 描述符上保持字节相同。混合为每个 push/PR 添加 22/22 个注册,或在保留的四个 main/21-PR 到达信封中添加 550 个注册;这些行消耗了现有的预留容量,因此当时强制执行的 4,776 注册上限并未增加。预算和超时不变。
这些样本早于 17:33 UTC 转轮容量恢复。它们保留了旧分配的争用,因此这些预测不是测量的加速。验证 PR 和第一次主运行上恢复的八个 CPU/two-child 准入、最长紧凑作业、总挂起时间和发出的注册计数。
少于两个独立的主要契约贡献者会导致调用失败。如果紧凑键和运行时放置观察都不满足现有的独立运行采样规则,它也会失败。保留的基线重量和释放测量不能满足这些检查。两次失败都会使定时文件保持不变。测量仅来自成功的 UI E2E、网关 E2E 和紧凑作业;紧凑组还需要 exit 0 标记。每个参赛作品至少需要两次运行样本;一次运行中的多次尝试仍然只为每个密钥和配置文件贡献一个样本。仅当该配置文件在至少三个采样的成功工作流程中的每一个中至少有一个观察结果时,并且仅当每次贡献运行(包括失败的工作流程)中都不存在该键时,才会对键进行修剪。库存不完整的重复运行片段不能通过更改其顺序来成为修剪证据。完整库存贡献运行较少的配置文件保留所有以前的密钥;丢失或无法解析的日志不计入阈值。空运行和 PR 变更表中的删除仍然很明确。在取中位数之前,高于 2.5 倍密钥中位数的样本将被丢弃,并且当新中位数在 15% 以内时,现有权重保持不变。 UI E2E 开销是中值分片 (wall - body) / fileCount,限制为 0–5 秒。
空的 compactGroupSeconds.github 地图被设计为冷启动行为:主要紧凑作业通常在 Blacksmith 上运行,因此托管配置文件将保持其源内 COMPACT_GITHUB_GROUP_SECONDS_HINTS 回退,直到托管观测值满足采样最小值。稍后在混合后端上的主要尝试,或者使用 OPENCLAW_CI_RUNNER_BACKEND=github 的主要运行,可以自然地填补它。一旦记录,托管权重将在所有 Blacksmith 窗口中幸存:修剪需要从采样窗口中至少三个托管运行进行观察。成功的 PR 紧凑样品保留其精确的执行身份,并且永远不会建立库存完整性或将选定的子集折叠到不合格的系列重量中。
CI Test Timings Refit 工作流程每天 09:43 UTC 运行,并支持在 main 上进行手动调度。当权重发生变化时,它会使用有限的采样运行 ID 和完整报告工件的链接更新单个 ci/test-timings-refit 分支和 PR,并保留 30 天。完整的更改条目表保留在该文件中,而不是步骤输出或发布者的环境中;无效或过大的 run-ID 摘要在不截断报告的情况下无法发布。它永远不会推送到 main;未更改的权重不会产生提交或 PR 更新。 gitignored .artifacts/vitest-shard-timings.json 仍然是本地测试项目运行程序的单独整体配置定时缓存,而不是这些 CI 打包程序的输入。
共享的 generated-PR 发布者在其租用分支推送之前刷新 main 并拒绝过时的生成器输入或重叠的定时文件更改。它使用单独的存储库范围的 GitHub 应用程序令牌进行分支和 PR 写入;工作流程的 GITHUB_TOKEN 仅具有内容读取权限。应用程序创建的事件会触发 CI,而无需 GITHUB_TOKEN- 特定的工作流审批步骤。正常的存储库审查和必要的检查仍然适用;此工作流程不启用自动合并。请参阅 GitHub 的工作流程触发规则。
Bounded 混合托管卸载
自动上游混合首次尝试在添加短作业之前对完整选定的托管库存进行计数:控制和缓存作业、每个选定的检查或 Node 矩阵行、文档和 i18n、性能和托管本机作业。预检记录 hybrid_hosted_base_rows、hybrid_hosted_total_rows 和 hybrid_hosted_offload;工作流防护独立扩展实际作业门、矩阵和运行器表达式以验证计数。普通的同一存储库混合预检和门,加上选定的 PR 故障报告器,是强制基础托管行;它们在允许可选卸载之前消耗空间。 Fork、qualification 和 RunsOn 控件保留自己的记账和路由。性能行使用其现有的 run_control_ui_performance 所有者;未引入 40/45 行限制、作业或并发增加。
HYBRID_HOSTED_BASE_ROW_LIMIT 为 40,HYBRID_HOSTED_ROW_LIMIT 为 45。在 40 个基本托管行或低于 40 个时,预检可能会将 security-fast 和浏览器扩展 E2E 行移动到托管 Ubuntu,通过此准入最多添加两行且永远不会超过 45。超过 40 个基地托管行,都保留了现有的铁匠路线。无论是否可选托管入场,三个 checks-ui 单位碎片仍保留在现有铁匠池中;他们的测试、工人和铁匠超时都没有改变。超过 45 的符合条件的基数会发出行数警告并保留完整的基数清单。 45 行预算限制可选卸载准入;它不会拒绝现有覆盖范围或重塑不合格的后备清单:重试、手动和冻结目标、其他存储库和 github 中断覆盖保留其现有路由,包括已经超过 45 行的完全托管运行。
在此许可之后,上游主推送和受信任的 Windows- 选择的 PR(具有完整紧凑的 Node 计划和一个串行行中至少 500 预测秒)可以将七个检查行移动到托管 Ubuntu:依赖项、五个核心测试类型条带和运行时拓扑架构。扩展包边界保留 Blacksmith。他们之前的托管行保留保留在准入中,因此其他检查保持相同的阈值;报告的托管总数仅计算实际卸载量。这五个条带分布了相同的完整编译器图,以前分为两行和中央类型检查作业。单独的 hybrid_hosted_checks 决策需要新鲜、健康的 分配证据 以及在同一 45 行限制内为每个选定的检查提供足够的空间。没有测量到的延迟下限的精确 PR 将保留其现有路由。
当前的 6 个混合扩展 lint 条带是基础托管清单的一部分。当托管入场不可用时,类型拆分最多添加三个铁匠注册;使用现有保守的四 main/21-PR 到达信封,153/213 注册范围变为 156/216,即 5,160 个注册,低于 6,000 个操作目标。无 Node 矩阵上限或托管准入限制更改。为每次运行保守地保留额外的真实网关行会将信封提高到 157/217,即 5,185 个注册 (4 × 157 + 21 × 217),使 815 个低于操作目标。此保留不花费普通 PR 现有的证明层遗漏;符合条件的混合托管库存保持不变,因为这些行保留了 Blacksmith。
主推则考虑 hybrid_hosted_main_checks 下的 lint 和中心测试类型;神器构建保留铁匠。此准入仅消耗剩余的托管容量,并且需要较早的检查准入。公共关系保留铁匠来担任这两项核心工作。完整的工作流程目标为十五分钟,包括分配和设置;将精确的头部计时与该目标进行比较。超时保持不变。
Control UI E2E 分片、QA Smoke、真实网关检查和 Android 保留其现有路由。测试库存和工人限制保持不变。安全性会等待预检的原始预算决策,并且在预检失败后仍会运行,除非工作流程被取消。托管分配延迟和普通缓存设置可以抵消计算节省,因此在扩大准入之前比较第一次精确头运行的 hosted/Blacksmith 行计数和队列时间。