[app] Activity view keeps stale ordering after chats receive new activity
What version of the Codex App are you using (From “About Codex” dialog)?
26.727.40816 (build 6067)
What subscription do you have?
ChatGPT account (exact plan is not relevant to this client-side reproduction)
What platform is your computer?
Darwin 25.6.0 arm64 arm
What issue are you seeing?
The new sidebar Activity view keeps the ordering captured when the view is enabled.
If a chat that is already listed receives new activity, its status can update, but it stays in its old position instead of moving according to its new attention state / recency. Turning Activity view off and back on immediately rebuilds the list and places the chat in the expected position.
This makes the view look stale even though the underlying chat data has updated.
What steps can reproduce the bug?
- Update the macOS app to
26.727.40816. - Click the bell to enable Activity view and leave it enabled.
- Note the position of an older chat in the Priority or Recent sections.
- Open that chat and send a new prompt, or let it receive/complete a new turn.
- Observe the Activity view after the new activity arrives.
- The chat remains at its previous position.
- Turn Activity view off and back on, either by clicking the bell twice or toggling the keyboard shortcut twice.
- The chat is now reordered using its current state/recency.
What is the expected behavior?
Activity view should re-rank existing chats when their attention state or recency changes, so newly active or newly updated chats appear in the appropriate current position.
If keeping a stable order while the view is open is intentional, the UI should provide an explicit refresh action and document that behavior. Currently there is no indication that ordering is a snapshot.
Additional information
The feature was introduced in the July 30 26.727 changelog as a view for chats recently engaged with or requiring attention:<br>[https://learn.chatgpt.com/docs/changelog](<https://learn.chatgpt.com/docs/changelog>)
Read-only inspection of the renderer bundled with 26.727.40816 suggests the stale order is deterministic:
- Activity state records an
activatedAtvalue and arecentRecencyByItemIdmap when the view is enabled. - Existing Recent entries continue to sort using the captured recency value even when live recency changes.
- The watcher adds recency values for previously unseen IDs, but does not replace captured values for existing IDs.
- Existing Priority entries also retain their snapshot order; newly qualifying entries are appended rather than re-sorting the full list.
- Disabling and re-enabling Activity view recreates this state, which matches the observed workaround.
This looks like snapshot/stability logic preventing live reordering. Whether that behavior is intentional or accidental, it conflicts with the view's recent-activity semantics and has no visible refresh affordance.
Related but not exact duplicates:
- openai/codex#35090 — active thread appears at the bottom after pin/unpin in the normal sidebar.
- openai/codex#33077 — project-level Last updated sorting is overridden by persisted sidebar order.
- openai/codex#36156 — VS Code thread list does not refresh after its initial fetch.
6 Comments
Additional Windows reproduction: #37266 reproduces the same stale recency ordering in the normal project-grouped sidebar, without Activity view enabled.
In that reproduction, none of the affected threads were pinned, and read-only inspection showed that the state database had distinct
created_at_ms,updated_at_ms, andrecency_at_msvalues. A freshthread/listresult usingsortKey: "recency_at"returned the non-pinned threads in the correct descending order, while the rendered project sidebar retained a different, stale order.This suggests that the backend data/listing is current and that an incremental client-side update may be updating existing rows without reinserting or re-sorting them. The affected environment was Codex App
26.730.8199.0on Windows x64.Additional Windows reproduction on Codex Desktop
26.803.5235.0(bundled component0.147.0), Windows x64 build26200.8875:This provides a useful distinction: the data source is current and manual reordering works, but incremental sidebar updates do not reliably rebuild or reconcile the visible project-group order. If manual ordering and recency ordering are both supported, the active mode should be explicit and deterministic.
No screenshots are attached because the original captures contain private project labels and account UI. A fully redacted reproduction can be provided if needed.
Additional macOS reproduction on ChatGPT Desktop 26.803.61601 (build 6396), in the normal project-grouped sidebar (not relying on Activity view):
projectSortModewaspriority.list_threadsresult had the new active threads in the correct recency order and reported the older threads as idle.This points to a stale Priority-mode project-sidebar re-render/reconciliation issue rather than pinning or unread state. No list-refresh or sort-toggle workaround was tested in this reproduction.
Expected: the rendered project sidebar should re-rank when newly created threads become active or their recency/state changes; active threads should not remain below older idle threads.
@nornagon-openai, you authored the server-side
recencyAtwork in #27910 and linked the paired Codex Apps PR, so you seem like the most relevant public contact. Apologies if this belongs with another Apps/sidebar owner—could you please route it to the right person and consider prioritizing it?This is extremely frustrating in everyday multi-thread use and creates a poor user experience: actively running work can remain buried below completed threads, so the sidebar is not dependable for monitoring tasks a user just started.
I did read-only static analysis of the packaged renderer from macOS build
26.803.61601and the current public app-server. The findings are more specific than a generic stale-sort hypothesis:waiting → unread → active → idle, then recency. So unread is not above waiting, but it is intentionally above active. If running work is expected to stay at the top, the current rank itself conflicts with that expectation.recencyAton turn start, emitsthread/status/changed, and returns correctly ordered results fromthread/list(sortKey: "recency_at"). The public repository does not contain the desktop renderer that owns the comparator and cache.A focused client-side fix would be:
unreadfor sorting. Keep that concern separate from real attention state, or expire the captured state once the read transition is reconciled.waiting → active → unread → idle(or provide a persistently visible active section). Even if unread-over-active remains intentional, the invisible-unread behavior above is still a bug.The relevant desktop renderer is not in the public repository, so I have not opened a PR.
Follow-up after updating macOS from
26.803.61601(build6396) to26.810.52044(build6662):The practical symptom appears improved in the normal project sidebar. Running/resumed tasks are showing up where I expect under the current default ordering.
A read-only comparison of the packaged renderer suggests the main reason is that the default chat and project sort modes changed from
prioritytoupdated_at(“Last updated”). For the normal multi-task workflow, that is a sensible and effective mitigation because starting or resuming a task advances its recency and moves it upward.I would not yet treat this as confirmation that the underlying Activity/Priority issue is fully fixed:
waiting → unread → active → idle.So build
26.810.52044is materially better in the default Last updated workflow, and I am no longer reproducing the original practical problem there. The explicit Priority/Activity path may still need separate validation or a focused fix.Additional Android Remote / Realtime Voice reproduction on a Windows host:
thread/startfromclient_name="codex_chatgpt_android_remote"for the resulting task.projectwith chat sortpriority.threadSourcewas null for this Android-created task, but the canonical list still recognized the correct project, so the available evidence does not establish the null source as causal.Current host: Codex App
26.814.5517.0, bundled core/CLI0.148.0-alpha.15; the affected rollout records0.147.0-alpha.6.6. Windows 11 Pro 25H2, build26200.9168, x64. Subscription: ChatGPT Pro. Android app and OS versions were not available from the Windows host.No local state was modified. Private paths, project names, prompts/transcripts, account data, and complete thread IDs are omitted.