Skip to content

Stop OON reply filter from dropping followee Phoenix replies - #183

Closed
Pitchfork-and-Torch wants to merge 1 commit into
xai-org:mainfrom
Pitchfork-and-Torch:cursor/magellan-freespeech-oon-reply-ancestors-e29b
Closed

Stop OON reply filter from dropping followee Phoenix replies#183
Pitchfork-and-Torch wants to merge 1 commit into
xai-org:mainfrom
Pitchfork-and-Torch:cursor/magellan-freespeech-oon-reply-ancestors-e29b

Conversation

@Pitchfork-and-Torch

Copy link
Copy Markdown

Bug

Phoenix, MOE, Topics, and TweetMixer set in_reply_to_tweet_id and leave ancestors empty. Thunder copies the parent into ancestors.

OONRetweetReplyFilter dropped any reply with empty ancestors, including in_network == Some(true). That ran in the pre-score filter chain, before Phoenix scoring and before VF.

A followee reply retrieved by Phoenix never reached For You. The same reply from Thunder survived.

This is not #179 (seen/served treating a reply as its parent). Not #180 (VF skipping Phoenix reply parents). #180 is post-selection ancillary VF. These cards died before that hydrator. Not #99 (self-reply chains). OON retweets and OON replies still drop.

Five-line proof

  • Entry: PhoenixSource / PhoenixMOESource / PhoenixTopicsSource / TweetMixerSource write in_reply_to_tweet_id and leave ancestors empty
  • Sink: OONRetweetReplyFilter on PhoenixCandidatePipeline (pre-score)
  • Break: (is_reply && ancestors.is_empty()) fired after InNetworkCandidateHydrator stamped a followee reply in_network = true
  • Viewer effect: a followee reply retrieved by Phoenix disappears from For You
  • Twin: ThunderSource already pushes in_reply_to into ancestors and is kept; OON replies still drop

Fix

Drop only OON retweets and OON replies. Empty ancestors is a producer gap, not an OON signal.

Tests

  • drops_oon_retweets_and_replies_only
  • keeps_in_network_phoenix_reply_when_ancestors_empty
  • still_drops_oon_reply_even_when_ancestors_present
  • integrates_with_in_network_hydrator keeps followee Phoenix-shaped replies

cargo test cannot run. Public dump has no Home Mixer manifest. Standalone rustc model of the keep/drop predicate passed.

Fork PR: none (closed Pitchfork-and-Torch#65 as wrong tree)

Phoenix, MOE, Topics, and TweetMixer set in_reply_to_tweet_id and leave
ancestors empty. OONRetweetReplyFilter treated empty ancestors as a hard
drop, so in-network followee replies never reached scoring or VF.
Thunder already copies the parent into ancestors and survived. OON
retweets and replies still drop.
@Pitchfork-and-Torch
Pitchfork-and-Torch force-pushed the cursor/magellan-freespeech-oon-reply-ancestors-e29b branch from 0ae9eb6 to 902a06f Compare September 8, 2026 23:07
@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.

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