Skip to content

Add Windows unified exec yield floor#27086

Merged
iceweasel-oai merged 1 commit into
mainfrom
codex/windows-unified-exec-yield-floor
Jun 15, 2026
Merged

Add Windows unified exec yield floor#27086
iceweasel-oai merged 1 commit into
mainfrom
codex/windows-unified-exec-yield-floor

Conversation

@iceweasel-oai

Copy link
Copy Markdown
Contributor

Why

The Windows unified_exec experiment regressed at the turn level in a way that points to premature backgrounding / extra command cycles rather than individual responses getting heavier:

  • codex_local_tool_calls_per_turn was up about 20.7%.
  • codex_local_blended_tokens_per_turn was up about 4.1%, and codex_local_output_tokens_per_turn was up about 4.0%.
  • codex_local_response_latency_per_turn was up about 8.3%.
  • The primary activity metrics also moved down: codex_turns about -6.6%, codex_dau about -1.0%, and codex_local_hourly_active_users about -3.0%.

At the same time, the per-response metrics moved in the other direction: blended tokens per response, output tokens per response, and latency per response were all lower in test. That suggests the bad turn-level shape is largely about extra tool/model cycles, not each response being slower or more expensive on its own.

Local Windows benchmarking showed the likely mechanism: shell-wrapped commands pay a large PowerShell startup/teardown tax before the actual command has much time to run. In the benchmark, the PowerShell wrapper added roughly 0.7-1.0s versus direct exec:

  • Windows PowerShell: about 740ms p50 / 800ms p90 overhead versus direct exec.
  • PowerShell 7 (pwsh): about 930ms p50 / 980ms p90 overhead versus direct exec.

The model commonly asks for a 1s initial yield. On Windows, that can spend nearly the whole window waiting on PowerShell machinery, so otherwise-short commands are more likely to return as background sessions and require follow-up polling/tool calls.

This is intentionally a temporary unlock. It gives Windows closer to the same useful post-shell command window as other platforms while we work on reducing the PowerShell tax directly, for example with persistent PowerShell workers or conservative direct-exec paths for commands that do not need shell semantics.

What changed

  • Adds a Windows-only 2s floor to unified_exec's initial yield_time_ms clamp.
  • Keeps larger model-requested waits unchanged, including the existing 10s default.
  • Keeps the existing 30s max clamp.
  • Leaves non-Windows behavior unchanged.
  • Adds platform-gated tests for both the Windows floor and the non-Windows clamp behavior.

Verification

  • just test -p codex-core unified_exec

@iceweasel-oai
iceweasel-oai marked this pull request as ready for review June 8, 2026 23:12
@iceweasel-oai
iceweasel-oai requested a review from a team as a code owner June 8, 2026 23:12

@jif-oai jif-oai left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is very hacky so I would like to see concrete numbers that proves that this will drastically improve the A/B result

@iceweasel-oai
iceweasel-oai merged commit e7a9988 into main Jun 15, 2026
31 checks passed
@iceweasel-oai
iceweasel-oai deleted the codex/windows-unified-exec-yield-floor branch June 15, 2026 20:56
@github-actions github-actions Bot locked and limited conversation to collaborators Jun 15, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants