Skip to content

Stop MoE corpus from keying the retweeter - #188

Closed
Pitchfork-and-Torch wants to merge 1 commit into
xai-org:mainfrom
Pitchfork-and-Torch:cursor/magellan-leftover3-moe-origin-0951
Closed

Stop MoE corpus from keying the retweeter#188
Pitchfork-and-Torch wants to merge 1 commit into
xai-org:mainfrom
Pitchfork-and-Torch:cursor/magellan-leftover3-moe-origin-0951

Conversation

@Pitchfork-and-Torch

Copy link
Copy Markdown

Bug

AuthorColdStart::author_corpus gated Phoenix MoE scores on wrapper author_id. Phoenix already keys the original author (as_tweet_info / get_original_author_id). A treatment-origin retweet by an unbucketed retweeter was zeroed. A control-origin retweet by a treatment retweeter leaked into treatment For You.

This is not #172 (RankingScorer author-diversity pool). This is not #31 / author-size IPS. This is not #125 (gizmoduck origin size/NSFW). Diversity stays the post-Phoenix repeat lever. Corpus membership is the MoE keep/zero gate.

Five-line proof

  1. Entry: Phoenix MoE retrieval stamps ForYouPhoenixRetrievalMoe; CoreData writes retweeted_user_id from TES source_user_id.
  2. Sink: author_corpus -> apply_moe_ranking_policy -> RankingScorer / VMRanker -> TopKScoreSelector.
  3. Break: corpus looked up c.author_id (retweeter). get_original_author_id() was unused.
  4. Viewer: treatment For You lost MoE RTs of treatment authors via unbucketed retweeters, and kept MoE RTs of control authors via treatment retweeters.
  5. Twin: PostCandidate::as_tweet_info already sends the original author to Phoenix. Cold-start boost already excludes RTs (retweeted_tweet_id.is_none()).

Fix

Key AuthorIsTreatment / AuthorIsControl on get_original_author_id(). Originals and quotes unchanged.

Tests

  • treatment_keeps_moe_retweet_of_treatment_origin (fails on unmodified main)
  • treatment_zeros_moe_retweet_of_control_origin (fails on unmodified main)
  • Existing non-RT MoE / holdout / control tests unchanged

Standalone rustc model of old vs new corpus: 3/3 passed (2 fail on unmodified main).

cargo: cannot run. Public dump has no home-mixer Cargo.toml.

Rejection table (this wave)

Candidate Why not
RankingScorer author diversity keying retweeter #172 claimed
Author-size IPS Forbidden
Gizmoduck origin size/NSFW #125 claimed
Thunder undelete #186 claimed
Thunder RT of tombstone / QuotedTweetDelete #150 / #138 claimed
TimelineHome DMCA / geo media #187 claimed
OON NSFW Phoenix skip #185 claimed
Ads served bury organic #184 claimed
Author / quote / RT handle mute-keyword #182 / #140 / #164 claimed
mute_surfaces / mute_options on Gizmoduck No live Entry: UserFeatures is Vec of strings only
WTF hide_recommendations Sibling leftover; not this class
OON followee RT via stale in_network Same class as #128 / #154 / #183
TES/gizmoduck/VF fail-closed spray Forbidden
SidTail / PopularTopics / BroadcastLiveness enable Forbidden intern-enable

AuthorColdStart gated Phoenix MoE scores on wrapper author_id.
Retweets of a treatment origin by an unbucketed retweeter were
zeroed; retweets of a control origin by a treatment retweeter leaked.
Key the original author, matching Phoenix tweet_info.
@Pitchfork-and-Torch
Pitchfork-and-Torch force-pushed the cursor/magellan-leftover3-moe-origin-0951 branch from 590b12a 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