Stop SubscriptionHydrator from skipping exclusive originals on retweets - #208
Open
Pitchfork-and-Torch wants to merge 1 commit into
Open
Pitchfork-and-Torch wants to merge 1 commit into
Pitchfork-and-Torch wants to merge 1 commit into
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.
Bug
SubscriptionHydratorfetches TES exclusive-conversation authors bycandidate.tweet_id(the wrapper).IneligibleSubscriptionFilterkeepssubscription_author_id = None.TES stores
exclusive_conversation_author_idon the original Super Follow post. An in-network retweet of that original is a new tweet id. The hydrator looks up the wrapper, TES returns none / miss,Hydrator::update_allskips the write, and the filter treats None as eligible.Phoenix already drops OON retweets. In-network retweets of exclusive originals survive to this filter.
LanguageCodeHydrator,MediaInfoHydrator,EngagementCountsHydrator, and ads brand-safety already key TES / media byget_original_tweet_id(). This hydrator does not.VF
DropExclusiveTweetContentRuleis a later post-select gate. It is not this class. This is the mixer Super Follow filter looking up the wrong tweet. Not #119 (VF primary wrapper id). Not #118 (QuoteHydrator quoted id on retweets). Not #116 (OON retweet original Recs).SubscriptionHydrator::hydrate_from_client/cache_keyIneligibleSubscriptionFilter(None => keep)LanguageCodeHydratorcache_key/ TES lookup viaget_original_tweet_id()Fix
Key TES and the hydrator cache by
get_original_tweet_id(). Native exclusive posts are unchanged (wrapper id == original id). Public posts still hydrate as None and stay eligible.Quote-of-exclusive is leftover.
get_original_tweet_id()does not walkquoted_tweet_id. Separate class.Tests
subscription_author_idfrom the originalcargo testcannot run. Public dump has no Home Mixer manifest. Verification of the change is on you.