fix(web): reconcile foreground messages independently of websocket validation - #861
Merged
Merged
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
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.
Why we need this PR?
Focused message reconciliation is coupled to WebSocket reconnect recovery. A healthy retained socket can skip it, while an unresponsive socket delays it behind ten-second validation even when HTTP is available.
What changed
Validation at head
86f1d345d95db52cb7949730aeb3bd67c83b20a1:e001b8e92retained the healthy connection and fetched messages. With the owned WS service paused, channel and DM server GETs completed within the first second and new messages were visible in first-second screenshots; WS resumed after twelve seconds. Production bytes are unchanged at this head, so these finite runtime samples are associated by verified hashes; native QA was not rerun on the test-only commit. They do not prove physical-device cause, client-body timing or exact first paint.Remaining runtime gaps: held-response account/target/permission transitions, native split foreground, iOS, physical devices and cross-device behavior. Normal tests cover owner fences and late-pagination races. Existing native-to-JS foreground signal delivery and probe budget remain unchanged. Merge authorized for this exact head with the listed limitations retained.
Checklist
Impact Areas
@alook/shared)@alook/web)@alook/app)@alook/email-worker)@alook/ws-do)