Skip to content

Stop Following VF from scoring quoted posts at TimelineHome - #115

Open
Pitchfork-and-Torch wants to merge 1 commit into
xai-org:mainfrom
Pitchfork-and-Torch:fix/following-vf-ancillary-recs
Open

Stop Following VF from scoring quoted posts at TimelineHome#115
Pitchfork-and-Torch wants to merge 1 commit into
xai-org:mainfrom
Pitchfork-and-Torch:fix/following-vf-ancillary-recs

Conversation

@Pitchfork-and-Torch

Copy link
Copy Markdown

Bug

Following reverse-chron fetches every attached post at TimelineHome, including quoted tweets and conversation ancestors. For You already fetches those ids at TimelineHomeRecommendations.

NSFW_HIGH_PRECISION, DO_NOT_AMPLIFY, spam-high-recall, and the other OON-only Drop rules are Interstitial (or Allow) on Home and Drop on Recs. should_drop_ancillary only treats Action::Drop. AncillaryVFFilter is on the Following post-selection path.

A followee quoting an NSFW / DoNotAmplify post therefore survives Following, while the same quote is dropped on For You.

  • Entry: VFFollowingCandidateHydrator collects tweet_id, ancestors, quoted_tweet_id, retweeted_tweet_id into one vec and calls get_result(..., TimelineHome, ...)
  • Sink: AncillaryVFFilter (drop_ancillary_posts)
  • Break: quoted/ancestor ids never see Recs Drop rules
  • Viewer effect: Following shows a followee quote of a post For You would hard-drop
  • Twin: VFCandidateHydrator (Phoenix / For You) already puts quotes and ancestors on TimelineHomeRecommendations

This is not PR 55 (For You dual-role HashMap merge). This is not PR 90 (two-map residual on that hydrator). This is not fail-open on miss.

Fix

Keep Following primaries (and retweet originals) on TimelineHome. Fetch quotes and ancestors on TimelineHomeRecommendations. Do not collapse the two maps: primary visibility reads Home, ancillary drop reads Recs (quotes/ancestors) and Home (retweet originals, unchanged).

Tests

  • Quote whose Recs verdict is Drop and Home verdict is Interstitial -> drop_ancillary_posts = true; primary stays Interstitial
  • Ancestor Recs Drop -> ancillary drop
  • Followee NSFW primary with Recs Drop on the same id -> still Interstitial, not ancillary-dropped
  • Retweet original stays on Home (Following RT amplification unchanged this PR)

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

Still-open leftover

For You still pushes retweeted_tweet_id onto the Home vec even when the wrapper is OON. Separate class. Do not mix it here.

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