Windows app stutters when switching chats or opening Settings

Open 💬 5 comments Opened Jun 28, 2026 by kangmingxuan

What version of the Codex App are you using (From "About Codex" dialog)?

Windows app package: OpenAI.Codex 26.623.5546.0

PATH Codex CLI/runtime after update: codex-cli 0.142.3

The running app-server during capture was the embedded Windows app binary:

C:\Program Files\WindowsApps\OpenAI.Codex_26.623.5546.0_x64__2p2nqsd0c76g0\app\resources\codex.exe app-server --analytics-default-enabled

Note: Directly executing the embedded WindowsApps app\resources\codex.exe --version returned Access Denied, so I can confirm the Windows app package version and PATH CLI version, but not a separate embedded app-server version string.

What subscription do you have?

Not provided in this public report. I can update this if needed.

What platform is your computer?

OS: Windows 11 Pro
OS version: 10.0.26200
OS build: 26200
Architecture: x64
Logical processors: 32
Memory: 63.77 GB
Shell: PowerShell

What issue are you seeing?

The Codex Windows desktop app visibly stutters when switching conversations or entering Settings. During the stutter, mouse movement also feels interrupted.

I captured a clean WPR/ETW trace using these profiles:

GPU
DesktopComposition
HTMLResponsiveness

The capture was launched from an external elevated PowerShell process to reduce observer effect from Codex itself.

WPA export shows a large UI responsiveness delay:

Table: repro_UI_Delays_Summary_Table_Delays_By_Process,_Type.csv
Process: Codex.exe <OpenAI.Codex> (8308)
UI delay duration: 37.965 s
Start time: 0.392 s
End time: 53.326 s

This happened while the machine was not under overall CPU pressure:

WPA CPU precise Idle: 88.55%
WPA CPU sampled Idle: 89.44%
Codex.exe <OpenAI.Codex> (8308): 2.05% CPU in WPA precise table
codex.exe <OpenAI.Codex> (12748) app-server: 0.86% CPU in WPA precise table
Codex.exe <OpenAI.Codex> (6476) renderer: 0.71% CPU in WPA precise table

The same trace shows heavy repeated child-process activity from the Codex app-server. Using command-line detail rows from WPA Processes Lifetime to avoid double-counting aggregate PID rows:

| Executable | Detail rows | Total table duration | Max table duration |
| --- | ---: | ---: | ---: |
| git.exe | 494 | 161.320 s | 2.250 s |
| conhost.exe | 88 | 75.250 s | 4.000 s |
| powershell.exe | 60 | 74.810 s | 4.030 s |
| node_repl.exe | 36 | 575.450 s | 39.400 s |
| node.exe | 28 | 1.220 s | 0.050 s |
| taskkill.exe | 28 | 5.060 s | 0.250 s |

Repeated Git command patterns:

| Command pattern | Count |
| --- | ---: |
| "git" -c core.hooksPath=NUL -c core.fsmonitor=false remote -v | 62 |
| git.exe -c core.hooksPath=NUL -c core.fsmonitor=false remote -v | 62 |
| "git" -c core.hooksPath=NUL -c core.fsmonitor=false rev-parse HEAD | 61 |
| git.exe -c core.hooksPath=NUL -c core.fsmonitor=false rev-parse HEAD | 61 |
| "git" config --null --get core.fsmonitor | 61 |
| git.exe config --null --get core.fsmonitor | 61 |
| "git" -c core.hooksPath=NUL -c core.fsmonitor=false status --porcelain | 60 |
| git.exe -c core.hooksPath=NUL -c core.fsmonitor=false status --porcelain | 60 |

Git detail rows occurred from 1.748 s through 72.101 s, about 421 detailed Git command rows per minute.

Node/runtime churn in the same capture:

node_repl.exe: 36 lifecycle rows, parent process is Codex app-server codex.exe (12748)
node.exe --version: 28 rows
taskkill.exe /PID ... /T /F: 28 rows, apparently cleaning up node_repl PIDs

500 ms process sampling cross-check:

Main app Codex.exe (8308):
  max CPU about 108% of one core
  average CPU about 55% of one core
  max working set 1723 MB
  max private memory 2169 MB

App-server codex.exe (12748):
  max CPU about 82% of one core
  average CPU about 23% of one core
  max working set 384 MB

Renderer Codex.exe (6476):
  max CPU about 78% of one core
  average CPU about 22% of one core
  max working set 806 MB

No sampled Responding=False was observed, but ETW HTML responsiveness reports the UI delay above.

codex doctor --summary --ascii --no-color after updating the PATH runtime:

Codex Doctor v0.142.3 - windows-x86_64
16 ok | 1 idle | 2 notes | 1 warn | 0 fail degraded

Relevant checks:
- Runtime: standalone 0.142.3-x86_64-pc-windows-msvc
- Config loaded
- Auth configured
- State DB healthy
- Network websocket connected
- Active provider endpoints reachable
- Warning: rollout files are missing from the state DB

This does not look like system-wide CPU/GPU exhaustion. It looks like the Codex Windows app/UI path is experiencing long HTML responsiveness delay while app-server background work repeatedly polls Git state and starts/stops Node runtime helpers.

What steps can reproduce the bug?

  1. Launch the Codex Windows app.
  2. Keep an existing workspace/thread open.
  3. Start WPR with GPU, DesktopComposition, and HTMLResponsiveness.
  4. Switch between conversations and open the Settings UI.
  5. Observe visible UI stutter and mouse cursor stutter.
  6. Stop WPR and export with Windows Performance Analyzer / WPAExporter using HtmlResponsivenessAnalysis.wpaprofile.

What is the expected behavior?

Switching conversations and opening Settings should be responsive, without visible UI freezes or cursor stutter.

Background Git scanning and Node/MCP/runtime helper management should not create enough churn to coincide with large UI responsiveness delays.

Additional information

Related issues I found while checking for duplicates:

  • #30185: generic Windows app performance lag/stutter report.
  • #29911: Windows Git scanner repeatedly launching Git for empty .git directories.
  • #25744: macOS helper/node_repl accumulation and input lag.
  • #29822: Windows CLI /new and resume slow after 0.142.0, possibly app/runtime related but not the same reproduction.

I have retained the raw WPR trace locally:

codex-ui-repro-20260628-165114.etl
Size: 3,292,528,640 bytes

I am not attaching the raw ETL publicly because it is large and may contain sensitive local activity. I can provide it through an appropriate private channel if useful.

A smaller evidence package is available locally and contains:

environment.txt
codex-doctor.txt
status.txt
wpr-output.txt
selected WPA exported CSV files
processes-before-codex-family.csv
process-samples-codex-family.csv
processes-after-codex-family.csv
process-lifetime-codex-family.csv
codex-ui-performance-summary.md

View original on GitHub ↗

This issue has 5 comments on GitHub. Read the full discussion on GitHub ↗