Repository navigation
Codex Desktop becomes extremely sluggish when opening very large local thread on Windows #25390
Description
What version of the Codex App are you using (From “About Codex” dialog)?
OpenAI.Codex app 26.527.3378.0; Codex CLI/Doctor 0.135.0-alpha.1
What subscription do you have?
ChatGPT Pro
What platform is your computer?
Microsoft Windows NT 10.0.26200.0 x64
What issue are you seeing?
Codex Desktop for Windows becomes extremely sluggish/freezing-like when opening or switching back to a very large local conversation thread. The same workflow through the Codex extension inside Antigravity is much smoother, so this appears specific to Codex Desktop's local transcript/history rendering path.
Affected local thread:
- Sanitized title: Cikan hatayi duzelt
- Thread id: 019e5fe0-5e81-7a02-abef-f2bde9c26a4a
- Rollout/history size: 242.5 MB
- 50,589 JSONL lines
- 29,169 response_item records
- 21,178 event_msg records
- 10,538 function_call records
- 112 input_image records
- 87 lines larger than 1 MB
- Max JSONL line: 3,631,856 characters
Observed when selecting/opening the thread:
- thread/resume took 7,760 ms, later 3,153 ms
- thread/goal/get took 8,606 ms, later 2,087 ms
- Windows still reports Codex processes as responding, but UI interaction becomes extremely slow
- Total Codex private memory was about 1.95 GB
- Main renderer-like Codex.exe process was about 695-825 MB
- app-server/renderer CPU stayed high
- System RAM was not exhausted
What steps can reproduce the bug?
Feedback ID: 019e77a2-d87b-7960-a86b-1a7462d09bcc
- Use Codex Desktop on Windows.
- Work in one local thread for many hours, with lots of tool output, screenshots/images, and long transcript history.
- Let the local rollout/history become very large. In this case it reached 242.5 MB and 50,589 JSONL lines.
- Switch away from the thread, then reopen/select it from the Codex Desktop sidebar.
- Observe multi-second thread/resume and thread/goal/get work, high app-server/renderer CPU, and extremely sluggish UI interactions.
This is difficult to reproduce with a tiny sample because the failure appears tied to accumulated local history size and image/tool-output payloads.
What is the expected behavior?
Codex Desktop should remain responsive when selecting a long local thread. Long transcript/tool-output/image history should be virtualized or lazily rendered/hydrated, with large base64/image payloads kept off the renderer's critical path.
Users should not need to manually hand over to a new thread every few hours just to keep the Desktop UI usable.
Additional information
Tried locally:
- Set desktop conversationDetailMode=STEPS_PROSE and verified config with codex doctor. This reduces detail but does not solve slow opening of the large thread.
- Checked state/rollout inventory.
- Cleaned duplicate helper/MCP processes.
- Verified system RAM was not exhausted.
Possibly related open issues found before submitting: #21134, #24676, #20544, #21232, #24510, #23919. This report adds current Windows Desktop version, exact local rollout metrics, and the Antigravity Codex extension comparison.
Activity
github-actions commentedon May 31, 2026
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action
pomazanbohdan commentedon Jul 3, 2026
I can confirm a second Windows Desktop repro with another large local thread.
Local read-only measurements from my affected thread:
Coding019f1f87-b799-72f3-8995-c31754f7d8a8response_item, 14,628event_msg, 75turn_context, 3session_metafunction_call, 7,455function_call_output, 4,377message, 4,238reasoningThis is the largest active local thread on my machine. The next largest active session is only ~28.02 MiB, so this thread is ~4.2x larger than the next one.
The Desktop UI becomes very sluggish when working with / switching back to this thread. The file was also actively open/appended by Codex while being measured, so this looks like a live long-session path, not only an archived-history problem.
This supports the hypothesis that Desktop is doing too much transcript hydration/parsing/rendering on the critical path for large local rollout JSONL files. Lazy loading, virtualization, summary/index-first loading, and keeping large tool-output/reasoning/function-call payloads off the initial renderer path would likely help.
Eliagiac commentedon Jul 15, 2026
Adding a privacy-safe cross-report synthesis from the existing public tracker evidence:
This is qualitative corroboration only. The reports are heterogeneous and do not establish a shared root cause, prevalence, or a history-size threshold. I do not have a publishable local symptom record, measurements, or controlled reproduction to add. Rotating work into a fresh task is a workflow mitigation, not a diagnosis or a measured fix.
meza commentedon Aug 1, 2026
Adding a current native-Windows reproduction from Codex Desktop client
26.727.51351with bundled app-server0.146.0-alpha.9.2.The affected active task has an approximately 12 MiB rollout containing about 4.9k items. After a clean Desktop restart:
thread/resumerequests for the same task.thread/turns/listrequests clustered into roughly two seconds.thread/turns/listrequest reconstructed the complete approximately 4.9k-item rollout.The visible symptom is a long wait for task content and noticeable input lag in the Desktop UI.
As controls, all schedules were paused and all tasks were unpinned before restarting Desktop. The remaining task-opening delay persisted. This does not prove that schedules or pinned tasks never contribute to other startup work; it shows that they do not explain this reproduction.
What the trace establishes is that opening one task waits alongside initialization work and triggers repeated complete-history reconstruction. It does not by itself establish how much of the perceived latency comes from app-server processing versus renderer work.
This appears related to #33786, but the observed request pattern here is a burst during task opening rather than proven continuous background polling. The much smaller approximately 12 MiB history also suggests that the behavior is not confined to exceptionally large multi-hundred-megabyte rollouts.
RongNianXin commentedon Aug 20, 2026
A small reproducibility aid for Windows reports: I published a read-only PowerShell checker that locates one local rollout by task UUID and reports its path, size in MiB, modification time, automatic-compaction count, and the latest input/window ratio. It does not modify the session or print conversation bodies.
Tool and usage notes:
https://github.com/RongNianXin/codex-workflows/tree/30f217f/实用小工具/查看当前任务本地对话的文件大小
Important limitation: file size, compaction count, and context ratio are diagnostic signals only. They do not by themselves establish that transcript size is the cause of renderer lag, repeated hydration, network delay, or model behavior. For an upstream report, I would still include the Codex/Desktop version, OS, a sanitized timing trace, and a comparison with a smaller task.
Disclosure: I maintain the linked community repository; it is not affiliated with OpenAI. I am sharing it here as a privacy-conscious measurement helper, not as a confirmed fix or as evidence for a universal size threshold.
jahidrfc commentedon Aug 31, 2026
Additional sanitized large-history measurements from Windows:
Completed RPC latency in a stable log sample:
thread/readthread/listIn the current affected run,
thread/listreached 257.65 seconds. Queue waits were generally tiny compared with total elapsed time, suggesting the long tail was mainly service time after dispatch rather than time waiting in the client queue.Only 3–7 recent tasks were represented in sampled loaded-state snapshots, but the corresponding hydration telemetry reported 19,243–28,055 items and 173–358 turns held. One turn reached 2,503 items. I did not observe cursor, limit, page, offset,
hasMore, ornextCursorfields in thethread/readtelemetry; logging may omit request parameters, so this is not proof that pagination is absent.One anonymized XL archived-rollout sample contained:
turn_contextrecordsuser_messagerecordstoken_countor reasoning eventsAggregate archived corpus at measurement time:
These observations do not establish formal O(n) complexity, but they support the narrower claim that time-to-interactive appears history-dependent and that bounded per-thread hydration is not evident in available telemetry. A useful acceptance target would be indexed metadata plus a fixed byte-bounded recent page on the critical path, with older turns and event-heavy detail virtualized or loaded in the background. Startup and first interaction should not synchronously replay full retained history.
This appears closely related to #16158 and #21211.
No raw logs, task IDs, filesystem paths, prompts, record contents, account data, or screenshots are included.
RongNianXin commentedon Aug 31, 2026
Thanks for the careful, privacy-safe measurements. The queue-wait versus service-time split is especially useful, and I agree that the available telemetry does not prove missing pagination or formal O(n) behavior.
These data make the history-dependent critical-path hypothesis more concrete than a file-size threshold alone. For future comparisons, Desktop/app-server version, rollout size and record mix, cold versus warm open, and
thread/listandthread/readpercentiles would make a useful minimal measurement set.I’ll keep the size, compaction, and context figures from the helper I shared above labeled as screening signals rather than causal evidence.