openai / openai/codex

[macOS Desktop 26.831.20005] Custom sidebar section reorder reports success but does not persist

Open
#42,165 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

app bug tool-calls
Dominant language
Rust
Stars
125k
Forks
19.4k
PR merge metrics
PR metrics pending

Description

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

26.831.20005 (build 7524)

What subscription do you have?

ChatGPT Pro

What platform is your computer?

Darwin 25.6.0 arm64 arm

What issue are you seeing?

Reordering the members of a custom sidebar section through the Codex Desktop built-in reorder_section tool can report success without changing the visible sidebar or persisting the requested order.

In the reproduced case:

  • The custom section contained one index task plus ten local Codex tasks.
  • The tool returned a successful result containing the exact requested task order.
  • An immediate task-list read could briefly return the requested order.
  • The visible sidebar retained the previous order.
  • A later task-list read returned the previous order again.
  • Fully quitting and relaunching ChatGPT/Codex did not repair or preserve the requested order.
  • Section membership remained correct; only member ordering was wrong.
  • No error or warning was shown to the user.

This makes “ask Codex to organize the sidebar” unreliable and prevents an automation from safely keeping a custom section synchronized with an external ordering rule. The tool result is a false positive: callers cannot distinguish a durable reorder from a transient in-memory update.

What steps can reproduce the bug?
  1. Create a custom sidebar section containing at least three local Codex tasks.
  2. Note the current visible order, for example A, B, C.
  3. From a Codex task, ask Codex to reorder that custom section to C, A, B so the built-in reorder_section app tool is called.
  4. Observe that the tool returns success and reports C, A, B.
  5. Inspect the visible sidebar. It may remain A, B, C.
  6. Read the task/section list immediately and again after a short delay. The requested order may appear briefly, then revert.
  7. Fully quit and relaunch the desktop app.
  8. Observe that the previous order A, B, C remains.

Read-only local inspection after relaunch showed that both durable ordering representations still contained the previous order:

  • The custom-section item list in electron-persisted-atom-state.sidebar-custom-sections-v3.
  • The host section's SQLite threads.section_position values.

Additional controls performed:

  • SQLite PRAGMA quick_check returned ok.
  • The global-state JSON parsed successfully.
  • There was one normal main application window, ruling out a second normal window overwriting the order.
  • No internal state files were manually edited.
What is the expected behavior?

When reorder_section returns success for a custom section:

  1. The visible sidebar should immediately reflect the requested order.
  2. The order should be committed to durable custom-section state and the host section's persisted positions.
  3. The order should remain stable after refresh and full application restart.
  4. If persistence fails, the tool should return an error instead of reporting success.
Additional information

This appears related to, but is more specific than, existing stale-sidebar reports:

  • #35090 — visible sidebar ordering can disagree with backend ordering.
  • #36300 — sidebar can preserve stale ordering after activity changes.
  • #41214 — sidebar organization can reset during restart/hydration.
  • #30778 — a sidebar ordering preference can fail to persist.

The distinguishing behavior here is a custom-section bulk reorder invoked through the built-in app tool returning success while neither durable ordering representation receives the requested order.

The public app-server implementation in #36007 describes section moves as atomically persisted in SQLite with restart coverage, so the Desktop custom-section reorder path may be updating only renderer/account state or may not be reconciling that state with host section positions.

Task names, task IDs, account IDs, custom section IDs, and filesystem paths are intentionally omitted. Sanitized diagnostics can be provided if maintainers request them.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the Desktop reorder_section path and compare its updates against electron-persisted-atom-state.sidebar-custom-sections-v3 and SQLite threads.section_position, using the behavior described in #36007 as context. Verify that the requested order appears in the sidebar, survives refresh and restart in both durable representations, and that persistence failures are not reported as success.

Written by the indexing model from the issue text.

Assessment

Tech stack
sqlite
Domain
databases, desktop
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.