Skip to content

Reconcile unread navigation after settled read receipts - #736

Merged
witbrock merged 1 commit into
mainfrom
fix/unread-refresh-after-receipt
Sep 16, 2026
Merged

witbrock merged 1 commit into
mainfrom
fix/unread-refresh-after-receipt

Conversation

@witbrock

Copy link
Copy Markdown
Member

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.txt in 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.

@witbrock
witbrock merged commit ed5c5cc into main Sep 16, 2026
2 checks passed
@witbrock
witbrock deleted the fix/unread-refresh-after-receipt branch September 16, 2026 21:18
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.

1 participant