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.

· e62790c · 103 files, +6,916/−1,393

New zero-weighted heads (video continuation, profile visit time); popular posts precomputed

numeric tweaksparamsschema
  • New ranking weights, all at 0.0 for now: VideoContinuationWeight, UserVideoContinuationWeight and ProfileVisitSecsWeight, defined in vm-ranker/params.rs. The shared xai-value-model crate gets matching heads (its weight list grows from 25 to 28 entries). Home-mixer's own value_model.rs hard-codes the two video-continuation weights to 0.0, so for now these heads don't change scores.
  • New flag PostUnexploredIncludeOutOfNetwork (vm-ranker/params.rs, default off). Without it, the value model's post-unexplored bonus applies only to in-network candidates.
  • PopularPostsSource now reads from a precomputed PopularPostsCache (new util/popular_posts.rs, filled by new popular_posts_job.rs / popular_authors_job.rs) instead of querying Thunder on each request. PopularPostsTopAuthors, PopularPostsMaxPerAuthor and PopularPostsMaxRepliesRepostsPerAuthor leave param.rs.
  • New flags EnableUnderTheHood and EnableHomeExcursionScores (both off).
  • RetrievalCandidatesKafkaMaxCandidates 200 → 100000. VMRankerClusterId "Experiment6" → "Experiment1".

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

Automatic analysis

Config parameters (param! defaults)

ParameterFeature-switch keyOldNew
RetrievalCandidatesKafkaMaxCandidates
home-mixer/params/param.rs
rust_home_mixer_retrieval_candidates_kafka_max_candidates200100000
VMRankerClusterId
home-mixer/params/param.rs
rust_home_mixer_vm_ranker_cluster_id"Experiment6""Experiment1"
Added parameterTypeDefaultFile
EnableHomeExcursionScoresboolfalsehome-mixer/params/param.rs
EnableUnderTheHoodboolfalsehome-mixer/params/param.rs
PostUnexploredIncludeOutOfNetworkboolfalsevm-ranker/params.rs
ProfileVisitSecsWeightf640.0vm-ranker/params.rs
UserVideoContinuationWeightf640.0vm-ranker/params.rs
VideoContinuationWeightf640.0vm-ranker/params.rs
Removed parameterTypeLast defaultNote
PopularPostsMaxPerAuthoru323removed from home-mixer/params/param.rs
PopularPostsMaxRepliesRepostsPerAuthoru320removed from home-mixer/params/param.rs
PopularPostsTopAuthorsu321000removed from home-mixer/params/param.rs

Pipeline components

KindChangeFile
Candidate hydratormodifiedcandidate-pipeline/query_hydrator.rs
Scorermodifiedhome-mixer/scorers/phoenix_scorer.rs
Scorermodifiedhome-mixer/scorers/value_model.rs
Scorermodifiedhome-mixer/scorers/vm_ranker_request.rs
Side effectmodifiedhome-mixer/side_effects/author_served_metrics_side_effect.rs
Side effectmodifiedhome-mixer/side_effects/phoenix_experiments_side_effect.rs
Side effectmodifiedhome-mixer/side_effects/reranking_kafka_side_effect.rs
Candidate sourcemodifiedhome-mixer/sources/popular_posts_source.rs

Changed constants & literal values

Old lineNew lineFile
let rows: [(SafetyLevel, Source, &[&str]); 15] = [let rows: [(SafetyLevel, Source, &[&str]); 19] = [visibility-filtering/hydration/execute.rs
timeline_home: 7 callstimeline_home: 8 callsvisibility-filtering/hydration/plan.rs
timeline_home_recommendations: 7 callstimeline_home_recommendations: 8 callsvisibility-filtering/hydration/plan.rs
timeline_home_hydration: 11 callstimeline_home_hydration: 15 callsvisibility-filtering/hydration/plan.rs
immersive_expanded_recommendations: 7 callsimmersive_expanded_recommendations: 8 callsvisibility-filtering/hydration/plan.rs
fn verdict_cases() -> [(Verdict, Projected); 15] {fn verdict_cases() -> [(Verdict, Projected); 16] {visibility-filtering/treatment.rs
fn head_predictions(s: &PhoenixScores) -> [(&'static str, Option<f64>); 25] {fn head_predictions(s: &PhoenixScores) -> [(&'static str, Option<f64>); 27] {vm-ranker/scoring/value_model.rs
let mut prediction = [0.0; 25];let mut prediction = [0.0; 27];vm-ranker/scoring/value_model.rs
fn weights_mut(&mut self) -> [(&'static str, &mut f64); 25] {fn weights_mut(&mut self) -> [(&'static str, &mut f64); 28] {xai-value-model/weights.rs

Schema fields (2)

Show proto/thrift field changes
ChangeField
addedScoreInfo.predictionHeads
addedScoreInfo.predictionValues

Modules touched

ModuleFiles addedModifiedRemovedLines +Lines −
visibility-filtering/7440+5,096−964
home-mixer/4210+1,413−287
candidate-pipeline/080+223−97
phoenix/080+63−25
xai-value-model/060+61−7
vm-ranker/020+40−4
phoenix-rankall-strato/010+15−5
(repo root)/010+5−2
grox/010+0−2

Files (103)

Show file list
PathLinesNote
MREADME.md+5/−2
Mcandidate-pipeline/candidate_pipeline.rs+18/−9
Mcandidate-pipeline/filter.rs+3/−0
Mcandidate-pipeline/hydrator.rs+3/−0
Mcandidate-pipeline/pipeline_summary.rs+180/−82
Mcandidate-pipeline/query_hydrator.rs+6/−2
Mcandidate-pipeline/scorer.rs+4/−1
Mcandidate-pipeline/selector.rs+4/−0
Mcandidate-pipeline/source.rs+5/−3
Mgrox/config/config.py+0/−2
Mhome-mixer/candidate_pipeline/mod.rs+20/−0
Mhome-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs+21/−14
Mhome-mixer/candidate_pipeline/reverse_chron_posts_pipeline.rs+9/−1
Mhome-mixer/clients/popular_authors_store_client.rs+87/−26
Mhome-mixer/for_you_server.rs+11/−3
Mhome-mixer/lib.rs+2/−0
Mhome-mixer/main.rs+160/−31
Mhome-mixer/models/candidate.rs+2/−0
Mhome-mixer/models/query.rs+2/−0
Mhome-mixer/params/param.rs+15/−21
Ahome-mixer/popular_authors_job.rs+329/−0
Ahome-mixer/popular_posts_job.rs+226/−0
Mhome-mixer/scored_posts_server.rs+18/−4
Mhome-mixer/scorers/phoenix_scorer.rs+26/−4
Mhome-mixer/scorers/value_model.rs+8/−3
Mhome-mixer/scorers/vm_ranker_request.rs+2/−1
Mhome-mixer/server.rs+6/−0
Mhome-mixer/side_effects/author_served_metrics_side_effect.rs+35/−20
Mhome-mixer/side_effects/phoenix_experiments_side_effect.rs+0/−4
Mhome-mixer/side_effects/reranking_kafka_side_effect.rs+0/−10
Mhome-mixer/sources/popular_posts_source.rs+26/−77
Mhome-mixer/util/mod.rs+2/−0
Mhome-mixer/util/popular_authors.rs+37/−68
Ahome-mixer/util/popular_posts.rs+276/−0
Ahome-mixer/util/under_the_hood.rs+93/−0
Mphoenix-rankall-strato/columns/phoenix_rank_all/phoenixRankAllCandidateProcessor.strato+15/−5
Mphoenix/crates/serving/xai-recsys-proto/proto/recsys.proto+5/−3
Mphoenix/crates/serving/xai-recsys-proto/src/purchase_value.rs+1/−1
Mphoenix/python/common/xai-proto/proto/recsys.proto+5/−3
Mphoenix/xrex/data/parquet_recsys.py+2/−2
Mphoenix/xrex/data/recsys/feature_config.py+3/−2
Mphoenix/xrex/data/recsys/recsys_batch.py+32/−10
Mphoenix/xrex/models/remat.py+13/−0
Mphoenix/xrex/train/trainer_recsys.py+2/−4
Avisibility-filtering/clients/article_client.rs+127/−0
Mvisibility-filtering/clients/mod.rs+2/−0
Avisibility-filtering/clients/trusted_friends_client.rs+174/−0
Mvisibility-filtering/config.rs+53/−15
Mvisibility-filtering/evaluate_tweets.rs+153/−25
Mvisibility-filtering/filter.rs+446/−107
Mvisibility-filtering/filter_tweets.rs+19/−13
Avisibility-filtering/hydration/community_source.rs+318/−0
Avisibility-filtering/hydration/decode/article.rs+24/−0
Mvisibility-filtering/hydration/decode/author.rs+146/−42
Mvisibility-filtering/hydration/decode/mod.rs+1/−0
Mvisibility-filtering/hydration/decode/tweet.rs+313/−6
Mvisibility-filtering/hydration/execute.rs+424/−106
Mvisibility-filtering/hydration/fallback_cache.rs+229/−50
Mvisibility-filtering/hydration/fetcher.rs+42/−11
Mvisibility-filtering/hydration/metrics.rs+88/−62
Mvisibility-filtering/hydration/mod.rs+72/−16
Mvisibility-filtering/hydration/plan.rs+110/−14
Mvisibility-filtering/hydration/sources.rs+206/−14
Mvisibility-filtering/hydration/store.rs+311/−57
Mvisibility-filtering/hydration/tweet_source.rs+90/−25
Mvisibility-filtering/models/author.rs+1/−1
Mvisibility-filtering/models/mod.rs+7/−3
Mvisibility-filtering/models/safety_labels.rs+32/−10
Mvisibility-filtering/models/tweet.rs+34/−10
Mvisibility-filtering/models/verdict.rs+63/−3
Mvisibility-filtering/retweet.rs+310/−73
Mvisibility-filtering/rules/author_rules.rs+6/−15
Mvisibility-filtering/rules/context.rs+20/−2
Mvisibility-filtering/rules/fixtures.rs+39/−7
Avisibility-filtering/rules/golden_corpus/article.rs+60/−0
Avisibility-filtering/rules/golden_corpus/community.rs+103/−0
Mvisibility-filtering/rules/golden_corpus/mod.rs+13/−4
Mvisibility-filtering/rules/golden_corpus/oon_tweet_label.rs+66/−3
Mvisibility-filtering/rules/golden_corpus/trusted_friends.rs+52/−20
Mvisibility-filtering/rules/golden_corpus/tweet_state.rs+3/−2
Mvisibility-filtering/rules/metrics.rs+47/−10
Mvisibility-filtering/rules/mod.rs+3/−1
Mvisibility-filtering/rules/registry.rs+140/−68
Mvisibility-filtering/rules/rule_spec.rs+91/−6
Avisibility-filtering/rules/safety_level.rs+157/−0
Mvisibility-filtering/rules/tweet_rules.rs+131/−51
Mvisibility-filtering/safety_label_source/source.rs+50/−18
Mvisibility-filtering/server.rs+22/−7
Mvisibility-filtering/server_deps.rs+62/−46
Mvisibility-filtering/staging/recording.rs+56/−0
Mvisibility-filtering/staging/reference/mod.rs+1/−1
Mvisibility-filtering/staging/reference/tweetypie.rs+71/−24
Mvisibility-filtering/staging/reference_compare.rs+4/−0
Mvisibility-filtering/staging/replay_corpus.rs+1/−1
Mvisibility-filtering/treatment.rs+103/−15
Mvm-ranker/params.rs+24/−0
Mvm-ranker/scoring/value_model.rs+16/−4
Mxai-value-model/inputs.rs+1/−0
Mxai-value-model/lib.rs+1/−0
Mxai-value-model/phoenix_scores.rs+2/−0
Mxai-value-model/proto.rs+5/−1
Mxai-value-model/scoring.rs+44/−5
Mxai-value-model/weights.rs+8/−1