x-algorithm changelog (unofficial)

Unofficial, community-maintained project. Not affiliated with, endorsed by, or operated by X Corp. or xAI. Notes are generated from the public git history of xai-org/x-algorithm and may contain mistakes; the upstream diff is the source of truth.

· 1b3fec2 · 92 files, +4,993/−3,132

vm-ranker can now compute the value model itself (off by default)

candidate hydratorsconstantsfiltersnumeric tweaksparamsschemascorers
  • vm-ranker/ gets its own params.rs with 44 param! defaults. These include 27 ranking weights that mirror home-mixer's names, keys and current defaults (all of home-mixer's weights except ContActiveSecs5mResidualNormWeight; e.g. FavoriteWeight = 0.5, ReplyWeight = 5.0), plus DPP settings (DppEnabled on, DppTheta = 0.65, DppMaxSelectedRank = 150) and author-diversity settings (EnableAuthorDiversity on, AuthorDiversityDecay = 0.5, AuthorDiversityFloor = 0.25).
  • New vm-ranker/scoring/value_model.rs builds value-model weights from those params (weights_from_params). It is gated by ComputeValueModel, which defaults to off. New ranking_config.rs and config_sync.rs files are added alongside.
  • Home-mixer side: new vm_ranker_debias_payload.rs and a VMRankerSendDebiasInputs flag (off). PhoenixMOEMaxResults 200 → 0 and PhoenixMoeColdStartMaxResults 0 → 200. PhoenixRetrievalMOEInferenceClusterId "Experiment3Memy04" → "Experiment2Memy04".
  • Grox: GROK_GEMMA_FOLLOWER_SPLIT 200_000 → 225_000.

Full analysis → Summary: hand-written notes, checked against the diff

Automatic analysis

Config parameters (param! defaults)

ParameterFeature-switch keyOldNew
PhoenixMOEMaxResults
home-mixer/params/param.rs
rust_home_mixer_phoenix_moe_max_results2000
PhoenixMoeColdStartMaxResults
home-mixer/params/param.rs
rust_home_mixer_phoenix_moe_cold_start_max_results0200
PhoenixRetrievalMOEInferenceClusterId
home-mixer/params/param.rs
rust_home_mixer_phoenix_retrieval_moe_inference_cluster_id"Experiment3Memy04""Experiment2Memy04"
Added parameterTypeDefaultFile
CachedPostsReuseWeightedScoreboolfalsehome-mixer/params/param.rs
VMRankerSendDebiasInputsboolfalsehome-mixer/params/param.rs
AuthorDiversityDecayf640.5vm-ranker/params.rs
AuthorDiversityFloorf640.25vm-ranker/params.rs
BidirectionalFollowDwellWeightBoostf640.0vm-ranker/params.rs
BidirectionalFollowReplyWeightBoostf6415.0vm-ranker/params.rs
BlockAuthorWeightf64-31.2vm-ranker/params.rs
ClickWeightf640.4vm-ranker/params.rs
ComputeValueModelboolfalsevm-ranker/params.rs
ContClickDwellTimeWeightf640.0vm-ranker/params.rs
ContDwellTimeWeightf640.004vm-ranker/params.rs
DppEnabledbooltruevm-ranker/params.rs
DppMaxSelectedRanku32150vm-ranker/params.rs
DppThetaf640.65vm-ranker/params.rs
DwellWeightf640.05vm-ranker/params.rs
EnableAuthorDiversitybooltruevm-ranker/params.rs
EnableOonRescoreForInNetworkRepliesRetweetsbooltruevm-ranker/params.rs
EnableQuotedVqvDurationCheckboolfalsevm-ranker/params.rs
FavoriteWeightf640.5vm-ranker/params.rs
FollowAuthorWeightf644.0vm-ranker/params.rs
MinVideoDurationMsi3210_000vm-ranker/params.rs
MultiplierPreOffsetboolfalsevm-ranker/params.rs
MuteAuthorWeightf64-58.8vm-ranker/params.rs
NewUserAgeThresholdSecsu640vm-ranker/params.rs
NewUserOonWeightFactorf640.00001vm-ranker/params.rs
NotDwelledWeightf64-0.02vm-ranker/params.rs
NotInterestedWeightf64-43.2vm-ranker/params.rs
OonWeightFactorf640.75vm-ranker/params.rs
OpenLinkWeightf640.2vm-ranker/params.rs
PhotoExpandWeightf640.05vm-ranker/params.rs
PostUnexploredWeightf640.02vm-ranker/params.rs
ProfileClickWeightf640.0vm-ranker/params.rs
QuoteWeightf645.0vm-ranker/params.rs
QuotedClickWeightf640.05vm-ranker/params.rs
QuotedVqvWeightf640.0vm-ranker/params.rs
ReplyWeightf645.0vm-ranker/params.rs
ReportWeightf64-234.0vm-ranker/params.rs
RetweetWeightf641.0vm-ranker/params.rs
ShareViaCopyLinkWeightf6420.0vm-ranker/params.rs
ShareViaDmWeightf645.0vm-ranker/params.rs
ShareWeightf642.0vm-ranker/params.rs
TopicOonWeightFactorf640.5vm-ranker/params.rs
VideoOpenWeightf640.07vm-ranker/params.rs
VqvWeightf640.0vm-ranker/params.rs
WeightPerturbationSaltString""vm-ranker/params.rs
WeightPerturbationSigmaf640.0vm-ranker/params.rs

Pipeline components

KindChangeFile
Filteraddedgrox/flows/ptos/task_safety_ptos_key_frames_filter.py
Scoreraddedhome-mixer/scorers/vm_ranker_debias_payload.rs
Candidate hydratoraddedvisibility-filtering/hydration/conversation_control_hydrator.rs
Scorermodifiedhome-mixer/scorers/ranking_scorer.rs
Scorermodifiedhome-mixer/scorers/vm_ranker.rs
Scorermodifiedhome-mixer/scorers/vm_ranker_request.rs
Candidate sourcemodifiedhome-mixer/sources/phoenix_moe_source.rs
Candidate sourcemodifiedhome-mixer/sources/phoenix_source.rs
Candidate sourcemodifiedhome-mixer/sources/phoenix_topics_source.rs
Candidate hydratormodifiedvisibility-filtering/hydration/exclusive_content_hydrator.rs
Candidate hydratormodifiedvisibility-filtering/hydration/gizmoduck_hydrator.rs
Candidate hydratormodifiedvisibility-filtering/hydration/safety_label_hydrator.rs
Candidate hydratormodifiedvisibility-filtering/hydration/socialgraph_hydrator.rs
Candidate hydratormodifiedvisibility-filtering/hydration/tes_hydrator.rs
Candidate hydratormodifiedvisibility-filtering/hydration/viewer_hydrator.rs

Changed constants & literal values

NameOldNewFile
GROK_GEMMA_FOLLOWER_SPLIT200_000225_000grox/flows/reply_spam/constants.py
Old lineNew lineFile
vec![(TweetId(1), 10), (TweetId(2), 20), (TweetId(3), 33)]vec![(TweetId(1), 10), (TweetId(2), 20), (TweetId(4), 41)]visibility-filtering/models/mod.rs

Schema fields (3)

Show proto/thrift field changes
ChangeField
addedUnderTheHoodReportInfo.note
addedUserContext.is_nsfw_mode
addedUserContext.is_nsfw_user

Modules touched

ModuleFiles addedModifiedRemovedLines +Lines −
visibility-filtering/2490+2,818−2,922
vm-ranker/470+1,193−92
grox/380+462−26
home-mixer/180+174−46
phoenix/060+170−15
thunder/020+102−24
under-the-hood/020+74−7

Files (92)

Show file list
PathLinesNote
Mgrox/config/config.py+4/−0
Mgrox/core/data_loaders/media_loader.py+39/−0
Mgrox/core/data_loaders/media_reference_bundle.py+51/−18
Mgrox/core/lm/post.py+7/−7
Mgrox/flows/ptos/constants.py+4/−0
Mgrox/flows/ptos/generators.py+12/−0
Agrox/flows/ptos/plan_safety_ptos_key_frames.py+52/−0
Mgrox/flows/ptos/task_rate_limit.py+5/−0
Agrox/flows/ptos/task_safety_ptos_key_frames_filter.py+81/−0
Mgrox/flows/reply_spam/constants.py+1/−1
Agrox/libs/video_tools/key_frames.py+206/−0
Mhome-mixer/params/param.rs+16/−4
Mhome-mixer/scorers/mod.rs+1/−0
Mhome-mixer/scorers/ranking_scorer.rs+23/−9
Mhome-mixer/scorers/vm_ranker.rs+15/−31
Ahome-mixer/scorers/vm_ranker_debias_payload.rs+52/−0
Mhome-mixer/scorers/vm_ranker_request.rs+64/−2
Mhome-mixer/sources/phoenix_moe_source.rs+1/−0
Mhome-mixer/sources/phoenix_source.rs+1/−0
Mhome-mixer/sources/phoenix_topics_source.rs+1/−0
Mphoenix/crates/common/xai-recsys/Cargo.toml+1/−0
Mphoenix/crates/common/xai-recsys/src/util.rs+164/−7
Mphoenix/crates/serving/xai-recsys-proto/proto/recsys.proto+2/−0
Mphoenix/crates/serving/xai-recsys-proto/src/lib.rs+1/−0
Mphoenix/python/common/xai-proto/proto/recsys.proto+2/−0
Mphoenix/xrex/train/trainer_recsys.py+0/−8
Mthunder/args.rs+3/−0
Mthunder/kafka_utils.rs+99/−24
Munder-the-hood/strato/columns/underTheHoodReport.User.strato+71/−7
Munder-the-hood/strato/graphql/under_the_hood.thrift+3/−0
Mvisibility-filtering/clients/gizmoduck_client.rs+2/−21
Mvisibility-filtering/clients/socialgraph_client.rs+130/−67
Mvisibility-filtering/clock_cache.rs+43/−77
Mvisibility-filtering/config.rs+23/−17
Mvisibility-filtering/dark_traffic_setup.rs+34/−50
Mvisibility-filtering/filter.rs+52/−61
Mvisibility-filtering/filter_tweets.rs+4/−9
Mvisibility-filtering/get_safety_labels.rs+4/−45
Mvisibility-filtering/hydration/batch.rs+0/−19
Avisibility-filtering/hydration/conversation_control_hydrator.rs+310/−0
Mvisibility-filtering/hydration/exclusive_content_hydrator.rs+30/−32
Mvisibility-filtering/hydration/fallback_cache.rs+2/−1
Mvisibility-filtering/hydration/gizmoduck_hydrator.rs+6/−40
Mvisibility-filtering/hydration/metrics.rs+20/−51
Mvisibility-filtering/hydration/mod.rs+360/−77
Mvisibility-filtering/hydration/safety_label_hydrator.rs+2/−2
Mvisibility-filtering/hydration/socialgraph_hydrator.rs+18/−16
Mvisibility-filtering/hydration/tes_composite.rs+14/−45
Mvisibility-filtering/hydration/tes_hydrator.rs+19/−333
Mvisibility-filtering/hydration/viewer_hydrator.rs+132/−139
Mvisibility-filtering/lib.rs+10/−1
Mvisibility-filtering/main.rs+5/−0
Mvisibility-filtering/models/author.rs+5/−28
Avisibility-filtering/models/conversation_control.rs+8/−0
Mvisibility-filtering/models/mod.rs+30/−223
Mvisibility-filtering/models/relationship.rs+1/−1
Mvisibility-filtering/models/tweet.rs+134/−8
Mvisibility-filtering/models/verdict.rs+0/−7
Mvisibility-filtering/models/viewer.rs+45/−16
Mvisibility-filtering/params.rs+15/−13
Mvisibility-filtering/reference_compare.rs+171/−119
Mvisibility-filtering/rules/context.rs+61/−249
Mvisibility-filtering/rules/fixtures.rs+47/−7
Mvisibility-filtering/rules/golden_corpus.rs+255/−42
Mvisibility-filtering/rules/metrics.rs+5/−47
Mvisibility-filtering/rules/mod.rs+2/−2
Mvisibility-filtering/rules/registry.rs+108/−115
Mvisibility-filtering/rules/rule_spec.rs+318/−54
Mvisibility-filtering/rules/tweet_rules.rs+232/−333
Mvisibility-filtering/safety_label_source/cached_value.rs+9/−38
Mvisibility-filtering/safety_label_source/expiring_cache.rs+1/−17
Mvisibility-filtering/safety_label_source/lookup.rs+3/−89
Mvisibility-filtering/safety_label_source/manhattan.rs+3/−38
Mvisibility-filtering/safety_label_source/proto.rs+0/−75
Mvisibility-filtering/safety_label_source/source.rs+28/−99
Mvisibility-filtering/safety_label_source/twemcache.rs+25/−42
Mvisibility-filtering/safety_label_source/types.rs+1/−1
Mvisibility-filtering/safety_label_source/warmer.rs+5/−38
Mvisibility-filtering/server.rs+70/−19
Mvisibility-filtering/server_deps.rs+12/−54
Mvisibility-filtering/treatment.rs+4/−45
Mvm-ranker/args.rs+21/−0
Avm-ranker/config_sync.rs+235/−0
Mvm-ranker/lib.rs+3/−0
Mvm-ranker/main.rs+49/−2
Mvm-ranker/metrics.rs+86/−36
Avm-ranker/params.rs+211/−0
Mvm-ranker/ranker_service.rs+25/−14
Avm-ranker/ranking_config.rs+89/−0
Mvm-ranker/scoring/dpp_model.rs+46/−20
Mvm-ranker/scoring/mod.rs+237/−20
Avm-ranker/scoring/value_model.rs+191/−0