macOS: paginated task history ends at recent turns although older messages remain in local session
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 125k
- Forks
- 19.4k
- PR merge metrics
- PR metrics pending
Description
Environment
- Codex experience on macOS, Apple Silicon.
- Installed ChatGPT.app bundle: version 26.901.51231, build 8109 (read from Info.plist; not an About-dialog measurement).
- Platform: Darwin 25.6.0 arm64 arm.
- Subscription: not collected for this report.
Actual behavior
An existing local task remains visible and usable, but its older conversation history cannot be browsed in the original task. Restarting the application twice did not restore the missing history.
Read-only inspection found:
- The local session JSONL still contains older user messages in a compacted replacement_history snapshot. A filtered export recovered 56 older user-message entries. This is NOT a claim that the complete original conversation or all old assistant replies are retained.
- The task is marked history_mode = paginated.
- The task-reading interface follows its returned pagination cursor, but reaches nextCursor = null / hasMore = false after returning only recent turns. The older messages retained in the local session are not returned.
- The per-task history projection inspected in thread_history_1.sqlite contains recent turns; an older completed turn observed in the session log was not present in that projection.
- The user also tried the documented "/" feedback entry point, but no feedback option appeared.
Steps observed
- Open an existing long-running local task.
- Attempt to browse its older conversation history.
- Restart the application and reopen the task; repeated twice without recovery.
- Compare retained visible messages in the local session JSONL against the task-history pagination results using read-only inspection.
The original trigger is unknown. We cannot provide a clean new-install reproduction yet.
Expected behavior
The original task should allow browsing supported retained historical messages, with an explicit explanation of any compaction-related gaps. The task-reading interface should expose the corresponding available history, or clearly report an incomplete projection rather than silently ending pagination.
Please advise whether there is a supported, non-destructive per-task history repair/reindex operation. A file export or a new task does not restore browsing in the original task.
Related reports and distinction
- #34175 concerns legacy-mode history rendering. This report concerns a task marked paginated.
- #28087 concerns startup/initialization failure during backfill. Here the task remains usable; the problem is incomplete historical retrieval.
A projection/reconstruction inconsistency is a hypothesis, not a confirmed root cause. No session or history database has been edited as a workaround.
Privacy
No raw logs, chat contents, account identifiers, local usernames, private task IDs, screenshots, or personal health/visa information are attached. Only redacted structural observations are included.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the paginated task-reading interface, the local session JSONL, and the per-task projection in thread_history_1.sqlite. Reproduce using an existing long-running local task, then compare the returned cursor and retained messages with the projection. Done means supported retained history is browsable or any compaction-related gaps are reported explicitly, without editing user data.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- macos, rust, sqlite
- Domain
- databases, desktop
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100