Repository navigation
Open the message a push is about, and show unread from while you were away (GRYT-1976) - #462
Merged
Merged
Conversation
… away (GRYT-1976) A tap now opens the conversation and message sealed into the push. A push from an older server has neither and still stops at the server. Unread counts only started when the phone connected, so anything that came in while it was away never got a badge. The phone now asks for read:list and sends read:set, as the desktop does. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This was referenced Oct 31, 2026
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.
Two bugs from the production phone app.
Tapping a push only opened the server. The guess was that the target gets lost while connecting. It doesn't: the push never had one, only a server tag and the sealed text. The server half is Gryt-chat/server#351. It adds the conversation and message to the seal, and this PR opens them. A push from an older server has neither and stops at the server, as it does now.
No badge on channels. The pill was there, but counting started when the phone connected, so anything that came in while it was away never showed. The server has had read markers for this, and the phone never used them. It now asks for
read:liston connect and sendsread:setwhen you open a channel, when a message lands in the open channel, and on mark as read. That also means reading on the phone clears the desktop's count.Look at:
read:listreplaces the phone's own counts for every channel with a marker. The channel on screen is skipped and its marker moved instead, or an open channel would show a badge.PushTapsgoes back to the tabs and then pushes, becausedismissTocan't reach a DM's route on the Messages tab. Tapping a push for the DM you already have open on that tab probably stacks a second copy, so back shows it again.Tested on an iPhone 17 Pro Max simulator against a local build of the server PR, with the server's own
sealPreviewandsimctl push:Not verified:
pin the payload as far as the code shows.pon the local notification, covered by reading only.conversationIsGoneclosed it. A real one should stay open, since that check waits for the list to load.Channels you've never opened still get no badge, on the desktop too: GRYT-1977.
GRYT-1976
🤖 Generated with Claude Code