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.

· 77d431a · 69 files, +3,306/−1,489

Cold-start boost for small accounts retuned and Thompson sampling enabled

feature flagslistsparams

This sync changes the defaults of the author cold-start mechanism (home-mixer/scorers/author_cold_start.rs). Per request, it picks one eligible fresh post from a smaller account and raises its score to whatever score sits at a fixed rank, which is index 15 given ColdStartSlotMin = 15 and ColdStartSlotMax = 16.

  • ColdStartFollowerCap 1000 → 50000: authors with up to 50k followers are now eligible.
  • ColdStartImpressionThreshold 1000 → 200: the post must have fewer than 200 Home impressions.
  • ColdStartMaxPostAgeSecs 172800 → 7200: the post must be under 2 hours old (was 48h).
  • LowImpressionsMaxPositionRatio 0.85 → 0.97: candidates from deeper in the ranked list can qualify.
  • EnableColdStartThompsonSampling now on by default. Instead of taking the highest-scored eligible post, the scorer samples a Beta(0.75 + likes, 49.25 + impressions − likes) reward per post, keeps the top ColdStartTsTopK (2), and boosts the higher-scored of those.
  • PhoenixColdStartMaxResults 0 → 200: the Phoenix cold-start retrieval path is switched on.
  • The Brazil election list goes from 2,786 to 2,795 accounts.

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

Automatic analysis

Config parameters (param! defaults)

ParameterFeature-switch keyOldNew
ColdStartFollowerCap
home-mixer/params/param.rs
rust_home_mixer_cold_start_follower_cap100050000
ColdStartImpressionThreshold
home-mixer/params/param.rs
rust_home_mixer_cold_start_impression_threshold1000200
ColdStartMaxPostAgeSecs
home-mixer/params/param.rs
rust_home_mixer_cold_start_max_post_age_secs1728007200
EnableColdStartThompsonSampling
home-mixer/params/param.rs
rust_home_mixer_enable_cold_start_thompson_samplingfalsetrue
LowImpressionsMaxPositionRatio
home-mixer/params/param.rs
rust_home_mixer_low_impressions_max_boost_position_ratio0.850.97
PhoenixColdStartMaxResults
home-mixer/params/param.rs
rust_home_mixer_phoenix_cold_start_max_results0200

Pipeline components

KindChangeFile
Candidate hydratormodifiedhome-mixer/candidate_hydrators/tweet_type_metrics_hydrator.rs
Filtermodifiedhome-mixer/filters/brazil_2026_election_filter.rs
Side effectmodifiedhome-mixer/side_effects/response_diversity_stats_side_effect.rs

Modules touched

ModuleFiles addedModifiedRemovedLines +Lines −
visibility-filtering/1180+2,293−961
phoenix/1211+581−248
visibility-filtering-client/040+212−139
grox/050+104−63
home-mixer/051+28−75
abuse-ledger-service/1110+88−3

Files (69)

Show file list
PathLinesNote
Aabuse-ledger-service/NOTICE+33/−0
Mabuse-ledger-service/src/api.rs+2/−0comments only
Mabuse-ledger-service/src/boot.rs+2/−0comments only
Mabuse-ledger-service/src/codes.rs+2/−0comments only
Mabuse-ledger-service/src/config.rs+2/−0comments only
Mabuse-ledger-service/src/lib.rs+2/−0comments only
Mabuse-ledger-service/src/main.rs+2/−0comments only
Mabuse-ledger-service/src/metrics.rs+2/−0comments only
Mabuse-ledger-service/src/pg.rs+10/−3
Mabuse-ledger-service/src/repo.rs+2/−0comments only
Mabuse-ledger-service/src/sql.rs+2/−0comments only
Mabuse-ledger-service/src/tls.rs+27/−0comments only
Mgrox/flows/ptos/mode.py+4/−0
Mgrox/flows/ptos/state.py+0/−1
Mgrox/flows/ptos/task_safety_ptos_adult_content_cross_validation.py+31/−27
Mgrox/flows/ptos/task_safety_ptos_policy.py+52/−30
Mgrox/flows/ptos/task_safety_ptos_safemodel_sex_nudity.py+17/−5
Mhome-mixer/candidate_hydrators/tweet_type_metrics_hydrator.rs+1/−2
Mhome-mixer/filters/brazil_2026_election_filter.rs+19/−1
Mhome-mixer/params/param.rs+7/−7
Mhome-mixer/side_effects/response_diversity_stats_side_effect.rs+1/−1
Dhome-mixer/util/composition.rs+0/−63
Mhome-mixer/util/mod.rs+0/−1
Mphoenix/crates/serving/xai-recsys-proto/proto/recsys.proto+2/−0
Mphoenix/python/common/xai-proto/proto/recsys.proto+2/−0
Mphoenix/python/training/xai-checkpointing/xai_checkpointing/load.py+65/−90
Mphoenix/xrex/configs/data_feeds.py+17/−0
Mphoenix/xrex/configs/xrecsys.py+3/−0
Mphoenix/xrex/configs/xrecsys_two_tower.py+101/−0
Mphoenix/xrex/cutedsl/ranker_attention_fa4.py+17/−0
Mphoenix/xrex/cutedsl/ranker_fa4/utils.py+46/−0
Mphoenix/xrex/data/grpc_recsys.py+4/−2
Mphoenix/xrex/data/parquet_recsys.py+10/−3
Aphoenix/xrex/data/recsys/ads_head_masking.py+87/−0
Mphoenix/xrex/data/recsys/constants.py+51/−8
Mphoenix/xrex/data/recsys/feature_config.py+1/−1
Mphoenix/xrex/data/recsys/recsys_batch.py+78/−22
Mphoenix/xrex/data/rust_parquet_recsys.py+1/−0
Mphoenix/xrex/data/streaming/kafkaloader.py+1/−0
Dphoenix/xrex/models/ads_head_masking.py+0/−67
Mphoenix/xrex/models/loss_recsys.py+10/−10
Mphoenix/xrex/models/recsys_attention.py+12/−7
Mphoenix/xrex/models/recsys_model.py+69/−37
Mphoenix/xrex/settings.py+1/−0
Mphoenix/xrex/train/trainer.py+1/−1
Mphoenix/xrex/train/trainer_recsys.py+2/−0
Mvisibility-filtering-client/evaluated.rs+145/−65
Mvisibility-filtering-client/graphql_results.rs+3/−0
Mvisibility-filtering-client/links.rs+3/−0
Mvisibility-filtering-client/vf_client.rs+61/−74
Mvisibility-filtering/evaluate_tweets.rs+36/−33
Mvisibility-filtering/filter.rs+136/−69
Mvisibility-filtering/hydration/batch.rs+9/−34
Mvisibility-filtering/hydration/decode/tweet.rs+19/−0
Mvisibility-filtering/hydration/execute.rs+322/−207
Avisibility-filtering/hydration/fetcher.rs+113/−0
Mvisibility-filtering/hydration/metrics.rs+37/−11
Mvisibility-filtering/hydration/mod.rs+59/−9
Mvisibility-filtering/hydration/plan.rs+138/−46
Mvisibility-filtering/hydration/sources.rs+167/−90
Mvisibility-filtering/hydration/store.rs+494/−210
Mvisibility-filtering/hydration/tweet_source.rs+39/−52
Mvisibility-filtering/models/mod.rs+1/−73
Mvisibility-filtering/reference/tweetypie.rs+9/−7
Mvisibility-filtering/retweet.rs+562/−110
Mvisibility-filtering/rules/metrics.rs+20/−2
Mvisibility-filtering/rules/mod.rs+1/−1
Mvisibility-filtering/server.rs+12/−7
Mvisibility-filtering/treatment.rs+119/−0