Peter Steinberger
78e11ca2c0
perf(ci): keep prompt snapshot generation off the jiti loader (5.1min lane -> ~1.5min) ( #109757 )
...
Measured breakdown of check-prompt-snapshots in run 29557851276 (5m03s):
- 37s checkout + Node env setup
- 4m25s inside one `pnpm prompt:snapshots:check` process:
- ~35s tsx import of the generator graph
- ~3min first createOpenClawCodingTools call: the message-tool schema
build resolves the scenario channel plugin, the empty loaded registry
falls back to the bundled-channel jiti loader
(extensions/telegram/index.ts), and jiti re-transpiles the core source
graph (136.6s jiti self time in --cpu-prof; second generation call in
the same process takes 0.3s)
- ~1min more for the cold provider-plugin lookup in
normalizeAgentRuntimeTools; no provider plugin owns tool-schema hooks
for the `codex` harness provider, so the jiti load only rediscovers a
no-op
- <2s actual rendering + oxfmt + drift compare
Split axis decision: the planned 2-3 way scenario shard matrix cannot
lower the pole because the cost is a one-time per-process transpile;
every shard would pay the full ~4min again (jiti fsCache does not help:
a warm-cache rerun still took 200s). Fix the generator instead:
- Preload each scenario's channel plugin surface (channel-plugin-api.js,
resolved via the bundled-plugin public-surface resolver) through the
ambient tsx/vitest ESM graph, and pin exactly that channel in a scoped
loaded registry while the scenario's tools are built. Snapshot bytes
are unchanged: the loaded plugin object is the same export the bundled
jiti fallback materializes, and cross-channel action discovery still
sees no other loaded channels.
- Pass allowProviderRuntimePluginLoad=false to normalizeAgentRuntimeTools;
registry-only resolution returns the same undefined plugin instantly.
Coverage guard: test/scripts/prompt-snapshots.test.ts now generates the
snapshot files and asserts zero jiti plugin-loader calls (with the
offending transform targets in the failure message), so a future scenario
or channel that misses the preload fails the suite instead of silently
restoring the 4-minute lane.
Proof: `pnpm prompt:snapshots:check` passes byte-identical against the
committed fixtures in 54s wall / 35s CPU locally (was 354s wall / 306s
CPU); focused vitest suites (32 tests incl. new guard), tsgo core-test +
extensions-test lanes, scoped oxlint/oxfmt, and `git diff --check` are
green. Expected CI pole when the lane fires: ~5.1min -> ~1.5-2min.
2026-07-17 00:27:23 -07:00
..
2026-07-12 13:26:39 +02:00
2026-07-16 20:59:29 -07:00
2026-07-16 20:59:29 -07:00
2026-07-07 00:39:59 +01:00
2026-07-13 18:26:59 -05:00
2026-07-13 19:12:21 -05:00
2026-07-10 10:42:36 +01:00
2026-07-12 17:24:45 -07:00
2026-07-16 00:57:19 -07:00
2026-07-12 10:42:07 +01:00
2026-07-05 08:00:23 -04:00
2026-07-11 06:15:41 -07:00
2026-07-07 02:03:36 -04:00
2026-07-12 22:18:10 -07:00
2026-07-14 23:11:28 -07:00
2026-07-13 21:50:36 -07:00
2026-07-13 22:12:21 -07:00
2026-06-23 14:01:29 +02:00
2026-07-04 13:47:14 -07:00
2026-07-16 04:53:43 -07:00
2026-07-17 00:03:41 -07:00
2026-07-12 10:42:07 +01:00
2026-07-16 22:48:03 +01:00
2026-07-15 19:28:37 -07:00
2026-07-13 17:13:16 -07:00
2026-07-16 18:48:20 -07:00
2026-07-12 10:26:32 +08:00
2026-07-06 11:09:49 +02:00
2026-07-15 03:45:37 -07:00
2026-07-16 22:01:34 -07:00
2026-07-16 00:16:20 -07:00
2026-07-16 00:16:20 -07:00
2026-07-11 06:15:41 -07:00
2026-07-14 20:29:18 -07:00
2026-07-11 01:09:51 -07:00
2026-07-16 09:54:49 -07:00
2026-07-11 15:04:25 -07:00
2026-07-11 06:15:41 -07:00
2026-07-15 05:03:43 +01:00
2026-07-04 13:49:20 +02:00
2026-07-14 23:19:48 -07:00
2026-07-11 06:15:41 -07:00
2026-07-12 08:40:22 +08:00
2026-07-13 00:34:57 -07:00
2026-07-01 22:05:26 -05:00
2026-07-16 18:15:58 -07:00
2026-07-14 10:41:36 -07:00
2026-07-16 12:14:06 -07:00
2026-07-16 01:47:37 -07:00
2026-07-16 17:09:56 -07:00
2026-07-15 13:06:24 -07:00
2026-07-16 21:51:06 -07:00
2026-07-16 17:22:28 -07:00
2026-07-17 00:03:41 -07:00
2026-07-10 18:06:06 +01:00
2026-07-15 03:34:08 -07:00
2026-07-16 00:39:08 -07:00
2026-07-12 07:44:25 +08:00
2026-07-12 10:42:07 +01:00
2026-07-12 12:09:17 +08:00
2026-07-16 13:10:41 -07:00
2026-07-11 01:09:51 -07:00
2026-07-12 15:09:23 +08:00
2026-07-16 18:48:20 -07:00
2026-07-13 05:07:18 -07:00
2026-07-15 22:32:29 -07:00
2026-07-16 10:24:02 -07:00
2026-07-13 22:09:36 -07:00
2026-07-16 18:48:20 -07:00
2026-07-12 10:42:07 +01:00
2026-07-11 01:09:51 -07:00
2026-07-16 18:56:18 -07:00
2026-07-15 13:14:35 -07:00
2026-07-16 21:19:06 -07:00
2026-07-15 07:27:10 -07:00
2026-07-12 10:42:07 +01:00
2026-07-11 01:09:51 -07:00
2026-07-15 15:08:52 -07:00
2026-07-11 06:30:57 -07:00
2026-07-16 01:12:40 -07:00
2026-07-10 13:00:50 +01:00
2026-07-06 17:31:23 -04:00
2026-07-16 20:43:06 -04:00
2026-07-16 08:35:51 -07:00
2026-07-16 00:39:08 -07:00
2026-07-15 06:14:54 -07:00
2026-07-05 12:40:31 +02:00
2026-07-15 13:37:53 -07:00
2026-07-11 01:09:51 -07:00
2026-06-24 13:24:43 +08:00
2026-07-15 01:13:44 -07:00
2026-07-12 07:17:48 +02:00
2026-07-13 11:44:28 -07:00
2026-07-16 10:26:29 +01:00
2026-07-15 22:52:59 -07:00
2026-07-14 07:42:17 -07:00
2026-07-12 10:42:07 +01:00
2026-07-03 15:36:11 +00:00
2026-07-13 01:53:28 -07:00
2026-07-16 17:33:35 -07:00
2026-07-16 17:17:07 -07:00
2026-07-16 01:44:30 -07:00
2026-07-16 08:02:31 -07:00
2026-07-15 23:01:31 -07:00
2026-07-14 12:11:25 -07:00
2026-07-13 01:47:43 -07:00
2026-07-14 03:25:56 -07:00
2026-07-01 20:24:38 -05:00
2026-07-12 12:52:38 -07:00
2026-07-10 10:42:36 +01:00
2026-07-01 20:42:25 -07:00
2026-07-13 19:12:21 -05:00
2026-07-01 22:05:26 -05:00
2026-07-10 10:42:36 +01:00
2026-07-05 10:57:19 -07:00
2026-07-12 10:42:07 +01:00
2026-07-12 10:42:07 +01:00
2026-07-11 15:57:55 +08:00
2026-07-10 17:31:42 -07:00
2026-07-10 16:59:10 +01:00
2026-07-10 19:01:30 +01:00
2026-07-10 16:59:10 +01:00
2026-07-16 22:27:04 -07:00
2026-07-16 07:38:14 -07:00
2026-07-12 15:22:37 +08:00
2026-07-11 06:15:41 -07:00
2026-07-14 00:27:34 +01:00
2026-07-15 13:14:35 -07:00
2026-07-15 12:55:00 -07:00
2026-07-15 22:57:36 -07:00
2026-07-16 18:50:57 -07:00
2026-07-07 10:54:35 +01:00
2026-07-07 10:54:35 +01:00
2026-06-23 15:20:29 +02:00
2026-06-23 18:00:53 +02:00
2026-07-16 21:42:12 -07:00
2026-07-11 01:09:51 -07:00
2026-06-26 18:54:45 -05:00
2026-07-16 18:49:36 -07:00
2026-07-16 16:08:16 -07:00
2026-07-16 04:53:43 -07:00
2026-07-11 19:57:54 +08:00
2026-06-29 00:39:06 -07:00
2026-07-12 09:01:33 +01:00
2026-07-16 04:50:53 -07:00
2026-07-16 17:43:56 -07:00
2026-07-12 17:26:04 -07:00
2026-07-12 10:42:07 +01:00
2026-07-14 18:31:00 -07:00
2026-07-11 06:15:41 -07:00
2026-07-11 06:15:41 -07:00
2026-07-10 20:16:19 +01:00
2026-07-07 07:45:55 -07:00
2026-07-15 13:22:31 -07:00
2026-07-13 11:41:27 -07:00
2026-07-16 03:21:08 -07:00
2026-07-17 00:52:44 +01:00
2026-07-14 09:27:02 -07:00
2026-07-17 07:55:00 +01:00
2026-07-10 22:31:42 -07:00
2026-07-05 13:25:36 +02:00
2026-07-11 01:09:51 -07:00
2026-07-04 08:00:15 +02:00
2026-07-16 03:36:20 -07:00
2026-07-17 04:14:39 +01:00
2026-07-04 01:56:21 +02:00
2026-07-16 20:37:45 -07:00
2026-07-16 02:02:09 -07:00
2026-07-13 01:47:43 -07:00
2026-07-15 03:45:37 -07:00
2026-07-15 17:41:54 +01:00
2026-07-11 21:29:40 +08:00
2026-07-15 22:40:00 -07:00
2026-07-14 23:41:24 -04:00
2026-07-15 13:37:53 -07:00
2026-07-17 06:54:52 +01:00
2026-07-08 08:01:00 -07:00
2026-07-11 01:09:51 -07:00
2026-07-16 23:25:40 -07:00
2026-07-17 06:11:20 +01:00
2026-07-11 01:09:51 -07:00
2026-07-16 08:35:10 -07:00
2026-07-12 04:28:22 +02:00
2026-07-16 00:38:44 -07:00
2026-07-16 04:53:43 -07:00
2026-07-16 17:53:09 -07:00
2026-07-16 08:18:44 -07:00
2026-07-14 22:13:37 -07:00
2026-07-13 03:40:53 -07:00
2026-07-16 03:13:44 -07:00
2026-07-16 03:21:08 -07:00
2026-07-16 01:55:33 -07:00
2026-07-13 17:53:10 -07:00
2026-07-15 00:26:41 -07:00
2026-07-16 00:39:08 -07:00
2026-07-14 05:41:24 -07:00
2026-07-15 06:14:54 -07:00
2026-07-17 00:27:23 -07:00
2026-07-11 01:09:51 -07:00
2026-06-24 10:22:56 +08:00
2026-06-23 14:01:29 +02:00
2026-07-16 13:51:18 -07:00
2026-07-15 20:02:53 +01:00
2026-07-17 03:06:39 +01:00
2026-07-10 21:59:59 +01:00
2026-07-14 09:35:58 -04:00
2026-07-16 11:38:19 -07:00
2026-07-16 15:53:00 +01:00
2026-07-16 18:48:20 -07:00
2026-07-12 10:42:07 +01:00
2026-07-15 00:34:38 -07:00
2026-07-05 08:00:23 -04:00
2026-07-10 17:47:32 -07:00
2026-07-16 11:16:29 -07:00
2026-07-15 09:52:01 +01:00
2026-07-10 02:06:53 -07:00
2026-07-16 04:50:41 -04:00
2026-07-11 01:09:51 -07:00
2026-07-11 09:44:19 -07:00
2026-07-15 10:05:02 -07:00
2026-07-15 13:37:53 -07:00
2026-07-16 09:03:15 -07:00
2026-07-11 17:27:01 -07:00
2026-07-14 09:59:20 -07:00
2026-07-17 00:27:23 -07:00
2026-07-07 10:22:07 +01:00
2026-07-11 01:09:51 -07:00
2026-07-16 09:45:47 -07:00
2026-07-11 07:28:20 -07:00
2026-07-16 17:22:28 -07:00
2026-07-16 02:00:15 -07:00
2026-07-04 01:56:21 +02:00
2026-07-15 04:07:46 -07:00
2026-06-24 22:54:00 +08:00
2026-07-15 21:29:48 -07:00
2026-07-11 06:15:41 -07:00
2026-07-01 21:21:31 -05:00
2026-07-11 14:50:37 -07:00
2026-07-15 22:40:39 -07:00
2026-07-12 10:42:07 +01:00
2026-07-03 17:58:15 -07:00
2026-07-16 14:11:33 -07:00
2026-07-11 16:38:37 -07:00
2026-07-11 16:38:37 -07:00
2026-07-11 06:15:41 -07:00
2026-07-14 16:05:14 -07:00
2026-07-16 00:39:08 -07:00
2026-07-15 06:14:54 -07:00
2026-07-11 01:09:51 -07:00
2026-07-05 14:19:13 -04:00
2026-07-16 00:39:08 -07:00
2026-07-16 16:47:30 -07:00
2026-07-16 05:26:00 -07:00
2026-07-11 01:03:30 +01:00
2026-07-16 11:45:31 -07:00
2026-07-16 00:39:08 -07:00
2026-06-23 14:01:29 +02:00
2026-07-16 18:48:20 -07:00
2026-07-12 10:42:07 +01:00
2026-07-05 14:25:57 -04:00
2026-07-11 12:48:27 +08:00
2026-07-16 17:20:47 -07:00
2026-07-12 17:26:04 -07:00
2026-07-17 00:03:41 -07:00
2026-07-16 05:58:53 -07:00
2026-07-14 18:08:33 -07:00
2026-07-15 06:14:54 -07:00
2026-07-15 08:15:13 -07:00
2026-07-14 22:14:11 -07:00
2026-07-05 12:53:06 -07:00
2026-07-13 13:38:19 +08:00
2026-07-10 13:33:20 -07:00
2026-07-11 06:15:41 -07:00
2026-07-17 00:10:17 -07:00
2026-07-05 11:12:55 -07:00
2026-07-16 19:02:52 -07:00
2026-07-15 05:03:43 +01:00
2026-07-05 12:16:41 -07:00
2026-07-11 06:15:41 -07:00
2026-07-10 10:42:36 +01:00
2026-07-16 23:30:02 -07:00
2026-07-12 10:42:07 +01:00