Repository navigation
Reconcile unread navigation after settled read receipts - #736
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
A completed message read dispatched the catalogue refresh before releasing its pending-read marker. The unread reconciliation guard therefore rejected that refresh, allowing the conversation tile to show zero while “Jump to first unread” retained an outdated count.
Release the confirmed read before dispatching the refresh, and invalidate pre-read catalogue responses for partial receipts as well as full receipts. This allows the current catalogue count to correct the button while retaining in-flight and conversation-switch guards.
Validation: 35 targeted Jest tests passed; frontend static checks and diff checks passed. The extended Playwright fixture fails against the previous implementation with the unread button still visible and passes at 390px and 1280px with this change, including conversation switching. Browser validation uses production modules/CSS with synthetic APIs, not live authentication. Evidence:
.run/unread-followup/result.json, screenshots, and.run/unread-followup-baseline/failure.txtin the worker run.Merge decision: ready for this bounded correction. Follow-up to #735 and Von task #V#task_agent_6baa72d330157297645b6bdd68d1b480. The current follow-up does not request deployment.