Files
codex/.github/scripts/windows_bazel_test_durations.tsv
T
jgershen-oai 7e049b3eaa Balance Windows Bazel test shards using duration estimates (#49103)
## Why

Hash-based sharding does not account for differences in test duration. Use estimated test time to balance the Windows Bazel workload across shards.

## What changed

- Add checked-in duration weights and a deterministic selector that assigns the longest targets first to the least-loaded shard.
- Assign every queried target exactly once, default missing weights to one second, and ignore stale weights.
- Run queries and selection in the foreground so failures stop the job before tests run with a partial target list.
- Emit LF-delimited target labels for Git Bash and report estimated shard loads on stderr.

## Testing

Add seven passing selector tests covering deterministic coverage and balancing, missing and stale weights, invalid inputs, duration-file overrides, and CLI output. Run them on the first Windows CI shard.

GitOrigin-RevId: d415ae093bfe57794ee53a2eb9d712022202dad8
2026-09-28 23:52:19 +00:00

15 KiB

1# Windows Bazel duration weights; columns: target<TAB>seconds.
2# Seeded from 24 successful public openai/codex Windows job logs across six main
3# runs, September 21-23, 2026. Public GitHub Actions run IDs:
4# 35638529858, 35665540272, 35694732932, 35912411800, 35919297566, 35924169500.
5# To refresh, take the median summed inner-run time (N * average) from clean,
6# uncached PASSED summaries, excluding partial cache hits and FLAKY results.
7# Round up to positive integer seconds. These weights exclude build/download time.
8# Every queried target is assigned; missing weights default to 1 and stale entries are ignored.
9//codex-rs/agent-graph-store:agent-graph-store-unit-tests76
10//codex-rs/agent-identity:agent-identity-unit-tests66
11//codex-rs/agent-roles:agent-roles-unit-tests48
12//codex-rs/analytics:analytics-unit-tests29
13//codex-rs/app-server-client:app-server-client-unit-tests51
14//codex-rs/app-server-daemon:app-server-daemon-unit-tests4
15//codex-rs/app-server-protocol:app-server-protocol-unit-tests19
16//codex-rs/app-server-test-client:app-server-test-client-unit-tests25
17//codex-rs/app-server-test-client:codex-app-server-test-client-bin-unit-tests1
18//codex-rs/app-server-transport:app-server-transport-unit-tests65
19//codex-rs/app-server/tests/common:common-unit-tests26
20//codex-rs/app-server:app-server-all-test-windows-cross2835
21//codex-rs/app-server:app-server-unit-tests399
22//codex-rs/app-server:codex-app-server-bin-unit-tests48
23//codex-rs/app-server:codex-app-server-test-notify-capture-bin-unit-tests1
24//codex-rs/app-server:exec-server-bin-unit-tests1
25//codex-rs/app-server:test_notify_capture-bin-unit-tests1
26//codex-rs/apply-patch:apply-patch-all-test-windows-cross50
27//codex-rs/apply-patch:apply-patch-unit-tests48
28//codex-rs/apply-patch:apply_patch-bin-unit-tests24
29//codex-rs/arg0:arg0-unit-tests24
30//codex-rs/backend-client:backend-client-unit-tests41
31//codex-rs/chatgpt:chatgpt-all-test-windows-cross26
32//codex-rs/chatgpt:chatgpt-unit-tests27
33//codex-rs/cli:cli-app_server-test-windows-cross3
34//codex-rs/cli:cli-app_server_daemon-test-windows-cross1
35//codex-rs/cli:cli-cloud_auth-test-windows-cross47
36//codex-rs/cli:cli-cloud_config-test-windows-cross3
37//codex-rs/cli:cli-daemon_startup-test-windows-cross4
38//codex-rs/cli:cli-daemon_telemetry-test-windows-cross1
39//codex-rs/cli:cli-debug_clear_memories-test-windows-cross4
40//codex-rs/cli:cli-debug_models-test-windows-cross2
41//codex-rs/cli:cli-delete-test-windows-cross2
42//codex-rs/cli:cli-doctor_enterprise_network-test-windows-cross3
43//codex-rs/cli:cli-doctor_path_safety-test-windows-cross47
44//codex-rs/cli:cli-exec_server-test-windows-cross39
45//codex-rs/cli:cli-exec_server_websocket_auth-test-windows-cross4
46//codex-rs/cli:cli-execpolicy-test-windows-cross2
47//codex-rs/cli:cli-features-test-windows-cross3
48//codex-rs/cli:cli-login-test-windows-cross4
49//codex-rs/cli:cli-marketplace_add-test-windows-cross2
50//codex-rs/cli:cli-marketplace_remove-test-windows-cross1
51//codex-rs/cli:cli-marketplace_upgrade-test-windows-cross2
52//codex-rs/cli:cli-mcp_add_remove-test-windows-cross3
53//codex-rs/cli:cli-mcp_list-test-windows-cross2
54//codex-rs/cli:cli-mcp_login-test-windows-cross2
55//codex-rs/cli:cli-plugin_cli-test-windows-cross7
56//codex-rs/cli:cli-queue-test-windows-cross1
57//codex-rs/cli:cli-sandbox_cloud_config-test-windows-cross48
58//codex-rs/cli:cli-sandbox_network_proxy-test-windows-cross1
59//codex-rs/cli:cli-sandbox_tty-test-windows-cross1
60//codex-rs/cli:cli-unit-tests2
61//codex-rs/cli:cli-update-test-windows-cross47
62//codex-rs/cli:cli-worktree-test-windows-cross12
63//codex-rs/cli:codex-bin-unit-tests60
64//codex-rs/cli:logs_client-bin-unit-tests1
65//codex-rs/cloud-config:cloud-config-unit-tests47
66//codex-rs/cloud-tasks-client:cloud-tasks-client-unit-tests35
67//codex-rs/cloud-tasks-mock-client:cloud-tasks-mock-client-unit-tests59
68//codex-rs/cloud-tasks:cloud-tasks-env_filter-test-windows-cross1
69//codex-rs/cloud-tasks:cloud-tasks-unit-tests1
70//codex-rs/code-mode-host:code-mode-host-grpc-test-windows-cross28
71//codex-rs/code-mode-host:code-mode-host-grpc_notifications-test-windows-cross25
72//codex-rs/code-mode-host:code-mode-host-grpc_tcp-test-windows-cross1
73//codex-rs/code-mode-host:code-mode-host-grpc_timing-test-windows-cross7
74//codex-rs/code-mode-host:code-mode-host-stdio-test-windows-cross11
75//codex-rs/code-mode-host:code-mode-host-unit-tests2
76//codex-rs/code-mode-host:codex-code-mode-host-bin-unit-tests1
77//codex-rs/code-mode-protocol:code-mode-protocol-unit-tests62
78//codex-rs/code-mode-runtime:code-mode-runtime-array_sort-test-windows-cross24
79//codex-rs/code-mode-runtime:code-mode-runtime-jit-test-windows-cross1
80//codex-rs/code-mode-runtime:code-mode-runtime-unit-tests7
81//codex-rs/code-mode:code-mode-unit-tests49
82//codex-rs/codex-api:codex-api-clients-test-windows-cross75
83//codex-rs/codex-api:codex-api-models_integration-test-windows-cross66
84//codex-rs/codex-api:codex-api-realtime_websocket_e2e-test-windows-cross63
85//codex-rs/codex-api:codex-api-realtime_websocket_tls-test-windows-cross66
86//codex-rs/codex-api:codex-api-sse_end_to_end-test-windows-cross48
87//codex-rs/codex-api:codex-api-unit-tests60
88//codex-rs/codex-home:codex-home-unit-tests13
89//codex-rs/codex-mcp:codex-mcp-unit-tests61
90//codex-rs/config-schema:codex-write-config-schema-bin-unit-tests48
91//codex-rs/config:config-unit-tests75
92//codex-rs/connectors:connectors-unit-tests39
93//codex-rs/context-fragments:context-fragments-unit-tests59
94//codex-rs/core-api:core-api-unit-tests1
95//codex-rs/core-plugins:core-plugins-unit-tests20
96//codex-rs/core/tests/common:common-unit-tests48
97//codex-rs/core:core-all-test-windows-cross3162
98//codex-rs/core:core-mcp_trace_propagation-test-windows-cross2
99//codex-rs/core:core-responses_headers-test-windows-cross5
100//codex-rs/core:core-unit-tests251
101//codex-rs/exec-server-protocol:exec-server-protocol-unit-tests48
102//codex-rs/exec-server/tests/support:support-unit-tests48
103//codex-rs/exec-server:exec-server-accepted_websocket-test-windows-cross1
104//codex-rs/exec-server:exec-server-capability_discovery-test-windows-cross1
105//codex-rs/exec-server:exec-server-chatgpt_cloudflare_affinity-test-windows-cross1
106//codex-rs/exec-server:exec-server-deferred_environment-test-windows-cross1
107//codex-rs/exec-server:exec-server-environment-test-windows-cross10
108//codex-rs/exec-server:exec-server-environment_config-test-windows-cross1
109//codex-rs/exec-server:exec-server-exec_process-test-windows-cross1
110//codex-rs/exec-server:exec-server-file_stream-test-windows-cross1
111//codex-rs/exec-server:exec-server-file_system_unix-test-windows-cross1
112//codex-rs/exec-server:exec-server-file_system_windows-test-windows-cross11
113//codex-rs/exec-server:exec-server-forward-test-windows-cross10
114//codex-rs/exec-server:exec-server-health-test-windows-cross1
115//codex-rs/exec-server:exec-server-http_client-test-windows-cross2
116//codex-rs/exec-server:exec-server-http_request-test-windows-cross1
117//codex-rs/exec-server:exec-server-http_request_logging-test-windows-cross3
118//codex-rs/exec-server:exec-server-initialize-test-windows-cross1
119//codex-rs/exec-server:exec-server-macos_fs_spawn-test-windows-cross1
120//codex-rs/exec-server:exec-server-process-test-windows-cross4
121//codex-rs/exec-server:exec-server-relay-test-windows-cross8
122//codex-rs/exec-server:exec-server-selected_capability_roots-test-windows-cross1
123//codex-rs/exec-server:exec-server-unit-tests116
124//codex-rs/exec-server:exec-server-websocket-test-windows-cross1
125//codex-rs/exec:codex-exec-bin-unit-tests1
126//codex-rs/exec:exec-all-test-windows-cross331
127//codex-rs/exec:exec-event_processor_with_json_output-test-windows-cross1
128//codex-rs/exec:exec-unit-tests47
129//codex-rs/ext/agent-message-board:agent-message-board-local_board-test-windows-cross46
130//codex-rs/ext/agent-message-board:agent-message-board-unit-tests30
131//codex-rs/ext/agent:agent-agent_service-test-windows-cross3
132//codex-rs/ext/agent:agent-unit-tests1
133//codex-rs/ext/connectors:connectors-unit-tests47
134//codex-rs/ext/extension-api:extension-api-capabilities-test-windows-cross14
135//codex-rs/ext/extension-api:extension-api-registry-test-windows-cross31
136//codex-rs/ext/extension-api:extension-api-state-test-windows-cross57
137//codex-rs/ext/extension-api:extension-api-unit-tests35
138//codex-rs/ext/git-attribution:git-attribution-unit-tests30
139//codex-rs/ext/goal:goal-accounting-test-windows-cross1
140//codex-rs/ext/goal:goal-goal_extension_backend-test-windows-cross9
141//codex-rs/ext/goal:goal-steering-test-windows-cross1
142//codex-rs/ext/goal:goal-unit-tests47
143//codex-rs/ext/guardian-reviewer:guardian-reviewer-unit-tests36
144//codex-rs/ext/guardian-v2:guardian-v2-unit-tests50
145//codex-rs/ext/history-notes:history-notes-history_notes_extension-test-windows-cross1
146//codex-rs/ext/history-notes:history-notes-image_model_input-test-windows-cross2
147//codex-rs/ext/history-notes:history-notes-unit-tests1
148//codex-rs/ext/image-generation:image-generation-unit-tests47
149//codex-rs/ext/mcp:mcp-hosted_apps_mcp-test-windows-cross26
150//codex-rs/ext/mcp:mcp-plugin_mcp-test-windows-cross5
151//codex-rs/ext/mcp:mcp-unit-tests48
152//codex-rs/ext/memories:memories-unit-tests28
153//codex-rs/ext/queue:queue-queue_service-test-windows-cross9
154//codex-rs/ext/queue:queue-unit-tests25
155//codex-rs/ext/skills:skills-executor_file_system_authority-test-windows-cross36
156//codex-rs/ext/skills:skills-skills_extension-test-windows-cross7
157//codex-rs/ext/skills:skills-unit-tests8
158//codex-rs/ext/web-search:web-search-unit-tests1
159//codex-rs/external-agent-migration:external-agent-migration-unit-tests4
160//codex-rs/features:features-unit-tests47
161//codex-rs/feedback:feedback-unit-tests77
162//codex-rs/file-system:file-system-unit-tests48
163//codex-rs/git-utils:git-utils-unit-tests83
164//codex-rs/guardian-context:guardian-context-cache_prefix-test-windows-cross66
165//codex-rs/guardian-context:guardian-context-unit-tests67
166//codex-rs/history:history-unit-tests59
167//codex-rs/hooks:hooks-unit-tests16
168//codex-rs/hooks:write_hooks_schema_fixtures-bin-unit-tests48
169//codex-rs/lmstudio:lmstudio-unit-tests1
170//codex-rs/login:login-all-test-windows-cross5
171//codex-rs/login:login-unit-tests320
172//codex-rs/memories/read:read-unit-tests62
173//codex-rs/memories/write:write-unit-tests20
174//codex-rs/message-history:message-history-unit-tests74
175//codex-rs/model-provider-info:model-provider-info-unit-tests63
176//codex-rs/model-provider:model-provider-unit-tests64
177//codex-rs/models-manager:models-manager-unit-tests35
178//codex-rs/mxc-sandbox:mxc-sandbox-unit-tests36
179//codex-rs/network-proxy:codex-network-proxy-bin-unit-tests48
180//codex-rs/network-proxy:network-proxy-unit-tests85
181//codex-rs/network-proxy:network-proxy-windows_stable_ingress-test-windows-cross37
182//codex-rs/ollama:ollama-unit-tests1
183//codex-rs/otel:otel-tests-test-windows-cross17
184//codex-rs/otel:otel-unit-tests48
185//codex-rs/plugin:plugin-unit-tests74
186//codex-rs/prompts:prompts-unit-tests62
187//codex-rs/protocol:protocol-unit-tests67
188//codex-rs/response-debug-context:response-debug-context-unit-tests66
189//codex-rs/rmcp-client:rmcp-client-foreign_stdio_cwd-test-windows-cross48
190//codex-rs/rmcp-client:rmcp-client-mcp_2026_discovery-test-windows-cross4
191//codex-rs/rmcp-client:rmcp-client-mcp_2026_message_limits-test-windows-cross4
192//codex-rs/rmcp-client:rmcp-client-mcp_2026_mrtr-test-windows-cross2
193//codex-rs/rmcp-client:rmcp-client-mcp_2026_oauth_discovery-test-windows-cross1
194//codex-rs/rmcp-client:rmcp-client-mcp_2026_sse_discovery-test-windows-cross1
195//codex-rs/rmcp-client:rmcp-client-mcp_2026_stdio-test-windows-cross39
196//codex-rs/rmcp-client:rmcp-client-mcp_2026_stdio_discovery-test-windows-cross2
197//codex-rs/rmcp-client:rmcp-client-mcp_events-test-windows-cross2
198//codex-rs/rmcp-client:rmcp-client-process_group_cleanup-test-windows-cross1
199//codex-rs/rmcp-client:rmcp-client-resources-test-windows-cross1
200//codex-rs/rmcp-client:rmcp-client-stdio_descriptor_boundary-test-windows-cross1
201//codex-rs/rmcp-client:rmcp-client-stdio_message_limits-test-windows-cross3
202//codex-rs/rmcp-client:rmcp-client-stdio_stderr_cleanup-test-windows-cross1
203//codex-rs/rmcp-client:rmcp-client-streamable_http_oauth_startup-test-windows-cross6
204//codex-rs/rmcp-client:rmcp-client-streamable_http_oauth_store_pinning-test-windows-cross38
205//codex-rs/rmcp-client:rmcp-client-streamable_http_oauth_tool_call-test-windows-cross2
206//codex-rs/rmcp-client:rmcp-client-streamable_http_recovery-test-windows-cross51
207//codex-rs/rmcp-client:rmcp-client-streamable_http_remote-test-windows-cross3
208//codex-rs/rmcp-client:rmcp-client-streamable_http_test_support-test-windows-cross1
209//codex-rs/rmcp-client:rmcp-client-streamable_http_user_agent-test-windows-cross1
210//codex-rs/rmcp-client:rmcp-client-unit-tests50
211//codex-rs/rmcp-client:rmcp_test_server-bin-unit-tests39
212//codex-rs/rmcp-client:test_mcp_2026_discovery_stdio_server-bin-unit-tests43
213//codex-rs/rmcp-client:test_mcp_2026_stdio_server-bin-unit-tests25
214//codex-rs/rmcp-client:test_stdio_server-bin-unit-tests41
215//codex-rs/rmcp-client:test_streamable_http_server-bin-unit-tests40
216//codex-rs/rollout-trace:rollout-trace-unit-tests76
217//codex-rs/rollout:rollout-unit-tests56
218//codex-rs/sandboxing:sandboxing-unit-tests74
219//codex-rs/secrets:secrets-unit-tests57
220//codex-rs/shell-command:shell-command-unit-tests60
221//codex-rs/shell-escalation:codex-execve-wrapper-bin-unit-tests62
222//codex-rs/shell-escalation:shell-escalation-unit-tests60
223//codex-rs/skills:skills-unit-tests59
224//codex-rs/state:state-unit-tests242
225//codex-rs/test-binary-support:test-binary-support-unit-tests48
226//codex-rs/thread-manager-sample:codex-thread-manager-sample-bin-unit-tests47
227//codex-rs/thread-store:thread-store-unit-tests95
228//codex-rs/tools:tools-json_schema_policy_fixtures-test-windows-cross34
229//codex-rs/tools:tools-unit-tests37
230//codex-rs/tui:codex-tui-bin-unit-tests2
231//codex-rs/tui:md-events-bin-unit-tests1
232//codex-rs/tui:tui-all-test-windows-cross36
233//codex-rs/tui:tui-manager_dependency_regression-test-windows-cross2
234//codex-rs/tui:tui-test_backend-test-windows-cross25
235//codex-rs/tui:tui-unit-tests1003
236//codex-rs/utils/approval-presets:approval-presets-unit-tests66
237//codex-rs/utils/audio:audio-unit-tests76
238//codex-rs/utils/cli:cli-unit-tests64
239//codex-rs/utils/git-discovery:git-discovery-unit-tests59
240//codex-rs/utils/oss:oss-unit-tests1
241//codex-rs/utils/output-truncation:output-truncation-unit-tests60
242//codex-rs/utils/plugins:plugins-unit-tests36
243//codex-rs/utils/sandbox-summary:sandbox-summary-unit-tests66
244//codex-rs/windows-sandbox-rs:codex-command-runner-bin-unit-tests1
245//codex-rs/windows-sandbox-rs:codex-windows-managed-deny-probe-bin-unit-tests1
246//codex-rs/windows-sandbox-rs:codex-windows-sandbox-setup-bin-unit-tests1
247//codex-rs/windows-sandbox-rs:windows-sandbox-rs-helper_manifest-test-windows-cross1
248//codex-rs/windows-sandbox-rs:windows-sandbox-rs-unit-tests23
249//codex-rs/windows-sandbox-service:codex-windows-sandbox-service-bin-unit-tests46
250//codex-rs/windows-sandbox-service:windows-sandbox-service-unit-tests12
251//codex-rs/worktree:worktree-settings-test-windows-cross59
252//codex-rs/worktree:worktree-unit-tests76
253//codex-rs/worktree:worktree-worktree-test-windows-cross92