Windows Desktop: reopening a long thread restores an old message instead of the latest content
Summary
On Codex Desktop for Windows, reopening a long local thread from the left sidebar consistently restores the viewport at the same old cross-thread status message instead of the latest content. Sending new messages, switching away and back, and manually jumping to the bottom do not update the persisted reopening position.
This is not an old deep-link/notification route: the issue reproduces when opening the thread directly from the sidebar.
Environment
- Codex Desktop:
26.721.4979.0 - Platform: Windows x64
- Thread shape: long local thread, approximately 175 turns, with many collapsed processed/activity blocks and background updates
Reproduction
- Open a long existing thread from the left sidebar.
- Scroll or jump to the latest content.
- Send/receive newer turns.
- Switch to another thread.
- Reopen the affected thread from the sidebar.
- Observe that the viewport returns to the same old message rather than the latest content.
Expected behavior
Opening a thread from the sidebar should land at the newest content, or at minimum preserve the most recently viewed bottom position. A visible, reliable “jump to latest” control should remain usable after history pagination completes.
Actual behavior
The app always lands on the same historical message. This makes the current status look stale and, in long-running supervision threads, can make an obsolete pause message appear current.
Local diagnostic evidence
A desktop log captured during sidebar reopen shows:
thread/readsucceeds.thread/resumesucceeds.- The latest turn is reported as
latestTurnStatus=completedwhile the renderer simultaneously recordsmarkedStreaming=true. - The thread reports about
turnCount=175. - Immediately afterward, the renderer performs many sequential
thread/turns/listrequests while loading history.
This suggests a renderer resume-state mismatch combined with virtualized/paginated history anchor restoration. The underlying thread is current; the failure is in viewport positioning/render recovery.
Workarounds tried
- Open from the sidebar rather than an old notification/deep link.
Ctrl+Endafter loading.- Switch to another thread and return.
- Send newer messages from the bottom.
These only help temporarily; reopening still returns to the same old message.
Related issues
- #17193 — long threads jump away while navigating toward latest output
- #17169 — chat scroll position bounces in long conversations
- #19690 — completed/failed turns restored with
markedStreaming=true - #17536 — reliable navigation to latest assistant response / message blocks
Privacy
Conversation IDs, local paths, project names, account data, and message contents are intentionally omitted. Full sanitized log excerpts can be provided if maintainers request them.
4 Comments
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action
I can confirm a similar issue in the Codex desktop app on macOS as of August 11, 2026.
This happens intermittently when switching back to a very long conversation. Instead of opening at the latest message / bottom of the thread, the viewport lands much higher in the conversation. Reaching the newest content then requires a very long period of manual downward scrolling.
Expected behavior: switching to an existing conversation should open at the latest content, or provide an immediately visible and reliable “Jump to latest” control. This macOS reproduction suggests that the viewport restoration problem may not be Windows-specific.
I reproduced this on a newer Windows build, with a specific subagent-panel trigger.
Environment:
26.818.8289.0codex-cli 0.149.0-alpha.4.3Microsoft Windows NT 10.0.26200.0 x64Observed sequence:
Diagnostic evidence:
active.inProgressand has recent commentary.This reproduction did not involve intentionally selecting an old task, forking, rolling back, or steering through Remote Control. The likely trigger was opening and then closing subagent content in the right panel, after which the parent view restored a stale historical anchor.
Immediate recovery attempted: focus the Codex window and issue
Ctrl+End(“jump to latest”). The task itself was not interrupted or modified.This may overlap with #39945, but in this occurrence the visible symptom is the same-thread parent viewport pinned to an old completed message after right-panel subagent navigation.
Follow-up on the
26.818.8289.0reproduction: explicit parent navigation plus repeatedCtrl+Enddid not recover the view; it remained pinned to the same historical completed message while app-level thread status still showed an active current turn. I then reloaded the Desktop renderer (Ctrl+R), explicitly reopened the parent task, and issued a fresh jump-to-latest. This reinforces that the failure survives ordinary route navigation and is tied to renderer/virtualized-history anchor restoration after closing right-panel subagent content.