Repository navigation
Thread RCS replies (thread-identifier, replyToGUID) - #40
Open
stealth658 wants to merge 1 commit into
Open
stealth658 wants to merge 1 commit into
stealth658 wants to merge 1 commit into
Conversation
Received RCS replies reference the replied-to message, but RawSmsIncomingMessage did not model those keys and the parse hardcoded reply_guid/reply_part to None, so replies arrived unthreaded: - thread-identifier: "r:<part>:<guid>", same shape as the iMessage reply ref - thread-originator-guid: the bare guid (fallback, part 0) Replies sent from another of the account's devices are reflected as RawSmsOutgoingMessage with the guid in mD replyToGUID (capital GUID). The field was renamed "replyToGuid", so it never matched; accept both spellings and also map it to reply_guid (part 0). after_guid is unchanged. Relayed replies sent from rustpush now carry thread-identifier and thread-originator-guid built from reply_guid/reply_part. split_reply_thread parses the "r:<part>:<guid>" shape and returns None on malformed input instead of panicking.
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.
RCS replies arrive unthreaded even though the relay payloads reference the replied-to message.
Received replies:
RawSmsIncomingMessagedidn't model these keys and the parse hardcodedreply_guid/reply_parttoNone:thread-identifier:r:<part>:<guid>, the same shape as the iMessage reply refthread-originator-guid: the bare guid (used as a fallback, part 0)Replies sent from another of the account's devices (reflected
RawSmsOutgoingMessage): the guid is inmDasreplyToGUID(capital GUID). The field was renamedreplyToGuid, so it never matched. It now accepts both spellings and is also mapped toreply_guid(part 0);after_guidis unchanged.Relayed replies sent from rustpush now include
thread-identifierandthread-originator-guidbuilt fromreply_guid/reply_part.split_reply_threadparses ther:<part>:<guid>shape and returnsNoneon malformed input instead of panicking.Testing: builds on current master (
cargo check). The receive-side keys come from captured payloads on my account (T-Mobile RCS): a reply sent from iOS carriedthread-identifier/thread-originator-guid, and its reflected copy carriedreplyToGUID, all matching the original message'sg. I have not run this end to end yet. The send-side part is untested: I don't know yet whether the receiving device threads relayed replies that carry these keys.