Skip to content

fix(history): reconcile duplicate Claude history and prepare v4.0.3 - #49

Merged
muggle-stack merged 3 commits into
masterfrom
fix/claude-history-duplicates
Sep 22, 2026
Merged

muggle-stack merged 3 commits into
masterfrom
fix/claude-history-duplicates

Conversation

@muggle-stack

@muggle-stack muggle-stack commented Sep 22, 2026 •

Copy link
Copy Markdown
Owner

When Claude history pages contain both a native user-message ID and its browser-generated alias, loading older pages can display the same conversation twice and place later prompts above the initial greeting. Reconcile those aliases across loaded pages and cached pages while keeping the newer row's lifecycle and expanded details. Browse keeps the newer copy in its owning page; partial cache writes replace existing rows in place so missing or equal timestamps cannot move an updated middle row to the end.

Distinct messages remain separate even when their text, timestamps, or task IDs match. The change also repairs existing cached copies on read and prepares product metadata and bilingual release notes for v4.0.3. The wire protocol remains v72; native transcripts are unchanged.

Validation:

  • Full pytest suite: 4,955 passed, 4 platform skips.
  • Node 24 Web build, full front-end reliability suite, and Web lint passed.
  • Cache regression tests reproduce the review finding before the fix and cover missing/equal timestamps, native aliases, reordered partial writes, and updated row content.
  • Ruff 0.15.13, shell syntax, ShellCheck, and whitespace checks passed.
  • Browser regressions passed in Chromium and iPhone WebKit for paginated aliases and expanded details.
  • A reproduction using the affected transcript's message identities retains 10 distinct turns instead of displaying 15 copies. The history fix has been deployed for maintainer testing.

Release v4.0.3 will be tagged only after CI and AI review pass and this PR is merged.

- Match live browser ids to unique native user ids when browsing older pages.
- Preserve mounted rows, native detail identities and expanded process content.
- Repair cached duplicate copies and cover pagination in Chromium and WebKit.
- Align product, installer and Web metadata at version 4.0.3.
- Document history alias reconciliation and the existing update workflow.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: dde60fa1c8

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread web/src/history-page-cache.ts Outdated
- Keep established cached row positions while merging newer native or alias copies.
- Cover missing and equal timestamps, reordered partial writes, and updated content.
- Clarify cache ordering behavior in the v4.0.3 release notes.
@muggle-stack

Copy link
Copy Markdown
Owner Author

@codex review

Please review the latest head, 4ea675585300781a20516d5d2b9a395807e7eeb1. The partial cache-write ordering finding is fixed: cached overlaps keep their established slot while the incoming content and lifecycle win. Added failing-before/passing-after coverage for missing/equal timestamps, native aliases, and reordered partial writes. The complete local gate and Chromium/iPhone WebKit history regressions passed.

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. 🎉

Reviewed commit: 4ea6755853

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

@muggle-stack
muggle-stack merged commit 70cf0a1 into master Sep 22, 2026
2 checks passed
@muggle-stack
muggle-stack deleted the fix/claude-history-duplicates branch September 23, 2026 07:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants