Skip to content

Stop QuoteHydrator from skipping quoted ids on retweets - #118

Open
Pitchfork-and-Torch wants to merge 1 commit into
xai-org:mainfrom
Pitchfork-and-Torch:fix/quote-hydrator-original-id
Open

Stop QuoteHydrator from skipping quoted ids on retweets#118
Pitchfork-and-Torch wants to merge 1 commit into
xai-org:mainfrom
Pitchfork-and-Torch:fix/quote-hydrator-original-id

Conversation

@Pitchfork-and-Torch

Copy link
Copy Markdown

Bug

Phoenix QuoteHydrator asks TES for quoted tweets by wrapper tweet_id.

get_quoted_tweets reads the quoting tweet's nested quote. That field lives on the original post. A retweet wrapper stores source_tweet_id, not quoted_tweet. quoted_tweet_id / quoted_user_id stay None.

OON retweets are already dropped by OONRetweetReplyFilter. This path is a followed-user retweet of a quote (in-network).

  • Entry: Phoenix QuoteHydrator (phoenix_candidate_pipeline.rs, phoenix_scores_pipeline.rs)
  • Sink: VFCandidateHydrator puts quoted_tweet_id on TimelineHomeRecommendations; AuthorSocialgraphFilter quoted mute/block; AdsBrandSafetyVfHydrator quoted labels
  • Break: TES and cache keyed by candidate.tweet_id instead of get_original_tweet_id() (retweeted_tweet_id.unwrap_or(tweet_id))
  • Viewer effect: retweet of a quote of a VF-Drop / blocked / muted inner tweet still serves on For You
  • Twin: MediaInfoHydrator, LanguageCodeHydrator, and EngagementCountsHydrator already cache and fetch by get_original_tweet_id()

This is not PR 117 (TES/graph fail-closed). This is not PR 94 (core TES wiping retweet/reply ids). This is not PR 98 (exclude_videos on quotes). This is not PR 23 (mute quoted author when the id is already present).

Fix

Look up and cache TES quoted tweets by candidate.get_original_tweet_id(). Native quotes are unchanged (original == tweet_id). Two retweets of the same quote now share the cache key.

Tests

  • Native quote still hydrates when TES is keyed by the candidate id
  • Retweet of a quote hydrates when TES only has the original id (fails on unmodified main)
  • TES keyed only by the wrapper id does not hydrate a retweet of a quote

cargo: cannot run. Public dump has no Home Mixer manifest.

@Pitchfork-and-Torch

Copy link
Copy Markdown
Author

Parking this intern-stack PR per operator GitHub cleanup (2026-09-08). Hunt notes remain local. Not a reject of the class.

@Pitchfork-and-Torch

Copy link
Copy Markdown
Author

Reopened. This was a serving-path hunt PR parked by mistake during the 2026-09-08 intern-stack cleanup. Not a reject of the class. Leaving it for xAI review.

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