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.

· 35650fb · 173 files, +15,160/−2,465

Vertical video carousel added to For You (off by default)

candidate hydratorscandidate sourcesconstantsfiltersnumeric tweaksparams
  • New flag EnableVideoCarousel (default off), plus VideoCarouselPosition = 6 and VideoCarouselFatigueMinutes = 60.
  • When enabled on a For You request, the pipeline sets aside up to VIDEO_CAROUSEL_EXTRA_CANDIDATES = 30 extra video candidates (top by predicted video-open). The new VideoCarouselFilter and util/video_carousel.rs then pick 3–5 non-reply videos whose aspect ratio is below 1.0 (the code's is_vertical check), ordered by predicted video-open probability. No carousel is shown if fewer than 3 qualify.
  • New video_aspect_ratio_hydrator supplies the aspect ratio. FEED_MODULE_SLOTS 4 → 5.
  • New ads/drops.rs. Large Phoenix training/model changes in the same sync.

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

Automatic analysis

Config parameters (param! defaults)

Added parameterTypeDefaultFile
EnableVideoCarouselboolfalsehome-mixer/params/param.rs
VideoCarouselFatigueMinutesu3260home-mixer/params/param.rs
VideoCarouselPositionu326home-mixer/params/param.rs

Pipeline components

KindChangeFile
Candidate hydratoraddedhome-mixer/candidate_hydrators/video_aspect_ratio_hydrator.rs
Filteraddedhome-mixer/filters/video_carousel_filter.rs
Candidate sourceaddedvisibility-filtering/hydration/sources/exchange.rs
Filtermodifiedgrox/flows/reply_spam/task_filter.py
Ads blendermodifiedhome-mixer/ads/multi_risk_blender.rs
Filtermodifiedhome-mixer/filters/ad_adjacent_served_filter.rs
Candidate hydratormodifiedhome-mixer/query_hydrators/served_history_query_hydrator.rs
Scorermodifiedhome-mixer/scorers/author_cold_start.rs
Scorermodifiedhome-mixer/scorers/vm_ranker_request.rs
Selectormodifiedhome-mixer/selectors/blender_selector.rs
Selectormodifiedhome-mixer/selectors/following_blender_selector.rs
Selectormodifiedhome-mixer/selectors/top_k_score_selector.rs
Side effectmodifiedhome-mixer/side_effects/ads_injection_logging_side_effect.rs
Side effectmodifiedhome-mixer/side_effects/client_events_kafka_side_effect.rs
Side effectmodifiedhome-mixer/side_effects/served_candidates_kafka_side_effect.rs
Side effectmodifiedhome-mixer/side_effects/update_served_history_side_effect.rs
Candidate sourcemodifiedhome-mixer/sources/scored_posts_source.rs

Changed constants & literal values

NameOldNewFile
RISKY_HIGH_VIZ_REPLY_EXEMPT_MIN_PAGE_RANK_SCORE6266grox/flows/reply_spam/constants.py
FOLLOWER_COUNT_THRESHOLD_FOR_SPAM_DETECTION125_000180_000grox/flows/reply_spam/task_filter.py
FEED_MODULE_SLOTS45home-mixer/params/config.rs
Old lineNew lineFile
let rows: [(SafetyLevel, Source, &[&str]); 19] = [let rows: [(SafetyLevel, Source, &[&str]); 21] = [visibility-filtering/hydration/execute.rs
timeline_home_hydration: 15 callstimeline_home_hydration: 17 callsvisibility-filtering/hydration/plan.rs
const SCALA_FILES: [&str; 5] = [const SCALA_FILES: [&str; 6] = [visibility-filtering/params.rs
pub(crate) const CLIENT_CLASSES: [ClientClass; 7] = {pub(crate) const CLIENT_CLASSES: [ClientClass; 8] = {visibility-filtering/rules/fixtures.rs
fn verdict_cases() -> [(Verdict, Projected); 16] {fn verdict_cases() -> [(Verdict, Projected); 18] {visibility-filtering/treatment.rs

Modules touched

ModuleFiles addedModifiedRemovedLines +Lines −
phoenix/15510+6,671−1,076
visibility-filtering/3520+5,442−1,230
phoenix-rankall/1010+1,403−0
home-mixer/5290+1,172−154
abuse-enforcement-service/050+470−3
grox/020+2−2

Files (173)

Show file list
PathLinesNote
Mabuse-enforcement-service/service-lib/src/ais_client.rs+16/−0
Mabuse-enforcement-service/service-lib/src/gizmoduck.rs+6/−1
Mabuse-enforcement-service/service-lib/src/lib.rs+440/−0
Mabuse-enforcement-service/service-lib/src/overturn_hold.rs+2/−2
Mabuse-enforcement-service/service-lib/src/strato.rs+6/−0
Mgrox/flows/reply_spam/constants.py+1/−1
Mgrox/flows/reply_spam/task_filter.py+1/−1
Ahome-mixer/ads/drops.rs+87/−0
Mhome-mixer/ads/mod.rs+18/−2
Mhome-mixer/ads/multi_risk_blender.rs+75/−45
Mhome-mixer/ads/tests/multi_risk_blender_tests.rs+110/−0
Mhome-mixer/ads/tests/safe_gap_blender_tests.rs+3/−3
Mhome-mixer/ads/util.rs+86/−60
Mhome-mixer/candidate_hydrators/mod.rs+1/−0
Ahome-mixer/candidate_hydrators/video_aspect_ratio_hydrator.rs+102/−0
Mhome-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs+15/−0
Mhome-mixer/filters/ad_adjacent_served_filter.rs+19/−0
Mhome-mixer/filters/mod.rs+1/−0
Ahome-mixer/filters/video_carousel_filter.rs+27/−0
Mhome-mixer/models/candidate.rs+4/−0
Mhome-mixer/models/query.rs+9/−0
Mhome-mixer/params/config.rs+5/−1
Mhome-mixer/params/param.rs+20/−1
Mhome-mixer/query_hydrators/served_history_query_hydrator.rs+10/−1
Mhome-mixer/scored_posts_server.rs+12/−1
Mhome-mixer/scorers/author_cold_start.rs+35/−8
Mhome-mixer/scorers/vm_ranker_request.rs+1/−0
Mhome-mixer/selectors/blender_selector.rs+34/−3
Mhome-mixer/selectors/following_blender_selector.rs+1/−1
Mhome-mixer/selectors/top_k_score_selector.rs+111/−1
Mhome-mixer/server.rs+1/−0
Mhome-mixer/side_effects/ads_injection_logging_side_effect.rs+7/−16
Mhome-mixer/side_effects/client_events_kafka_side_effect.rs+20/−1
Mhome-mixer/side_effects/served_candidates_kafka_side_effect.rs+1/−0
Mhome-mixer/side_effects/update_served_history_side_effect.rs+27/−1
Mhome-mixer/sources/scored_posts_source.rs+9/−9
Mhome-mixer/util/mod.rs+1/−0
Mhome-mixer/util/urt/client_event.rs+25/−0
Mhome-mixer/util/urt/mod.rs+10/−0
Ahome-mixer/util/urt/video_carousel_marshaller.rs+183/−0
Ahome-mixer/util/video_carousel.rs+102/−0
Aphoenix-rankall/src/hydrate/columns.rs+202/−0
Aphoenix-rankall/src/hydrate/fav_counts.rs+85/−0
Aphoenix-rankall/src/hydrate/features.rs+62/−0
Aphoenix-rankall/src/hydrate/fetcher.rs+52/−0
Aphoenix-rankall/src/hydrate/metrics.rs+107/−0
Aphoenix-rankall/src/hydrate/mod.rs+23/−0
Aphoenix-rankall/src/hydrate/post_metadata.rs+93/−0
Aphoenix-rankall/src/hydrate/scheduler.rs+515/−0
Aphoenix-rankall/src/hydrate/strato.rs+144/−0
Aphoenix-rankall/src/hydrate/tweet_fields.rs+119/−0
Mphoenix-rankall/src/lib.rs+1/−0
Mphoenix/NOTICE+186/−0
Mphoenix/THIRD_PARTY_NOTICES.md+12/−0
Mphoenix/crates/common/xai-recsys/src/model_config.rs+2/−0
Mphoenix/crates/common/xai-recsys/src/util.rs+13/−2
Mphoenix/crates/serving/xai-recsys-engine/src/emb_table.rs+82/−1
Mphoenix/crates/serving/xai-recsys-proto/proto/recsys.proto+26/−0
Mphoenix/python/common/xai-proto/proto/recsys.proto+26/−0
Mphoenix/python/training/xai-checkpointing/xai_checkpointing/common.py+30/−0
Mphoenix/python/training/xai-checkpointing/xai_checkpointing/load.py+6/−3
Mphoenix/xrex/configs/xrecsys.py+38/−2
Mphoenix/xrex/configs/xrecsys_two_tower.py+45/−0
Aphoenix/xrex/cuda/mol_epilogue/__init__.py+71/−0
Aphoenix/xrex/cuda/mol_epilogue/src/mol_epilogue_api.cc+40/−0
Aphoenix/xrex/cuda/mol_epilogue/src/mol_epilogue_kernel.cu+217/−0
Aphoenix/xrex/cuda/mol_epilogue/src/mol_epilogue_kernel.hpp+24/−0
Mphoenix/xrex/cuda/top_k_by_key/src/top_k_by_key_ffi.cc+23/−0
Aphoenix/xrex/cutedsl/quack/LICENSE+201/−0
Aphoenix/xrex/cutedsl/quack/__init__.py+21/−0
Aphoenix/xrex/cutedsl/quack/activation.py+633/−0
Aphoenix/xrex/cutedsl/quack/copy_utils.py+1034/−0
Aphoenix/xrex/cutedsl/quack/cute_dsl_elf_fix.py+86/−0
Aphoenix/xrex/cutedsl/quack/cute_dsl_mlir_threading.py+50/−0
Aphoenix/xrex/cutedsl/quack/cute_dsl_utils.py+54/−0
Aphoenix/xrex/cutedsl/quack/layout_utils.py+315/−0
Aphoenix/xrex/cutedsl/quack/rounding.py+222/−0
Aphoenix/xrex/cutedsl/quack/sm90_utils.py+173/−0
Aphoenix/xrex/cutedsl/quack/utils.py+314/−0
Mphoenix/xrex/cutedsl/ranker_fa4/block_sparse_utils.py+2/−1
Mphoenix/xrex/cutedsl/ranker_fa4/block_sparsity.py+1/−654
Mphoenix/xrex/cutedsl/ranker_fa4/cute_dsl_utils.py+0/−119
Mphoenix/xrex/cutedsl/ranker_fa4/flash_bwd.py+2/−2
Mphoenix/xrex/cutedsl/ranker_fa4/flash_bwd_postprocess.py+2/−2
Mphoenix/xrex/cutedsl/ranker_fa4/flash_bwd_preprocess.py+2/−2
Mphoenix/xrex/cutedsl/ranker_fa4/flash_bwd_sm100.py+4/−4
Mphoenix/xrex/cutedsl/ranker_fa4/flash_bwd_sm90.py+3/−3
Mphoenix/xrex/cutedsl/ranker_fa4/flash_fwd.py+1/−1
Mphoenix/xrex/cutedsl/ranker_fa4/flash_fwd_sm100.py+2/−2
Mphoenix/xrex/cutedsl/ranker_fa4/flash_fwd_sm90.py+2/−2
Mphoenix/xrex/cutedsl/ranker_fa4/mask.py+1/−1
Mphoenix/xrex/cutedsl/ranker_fa4/pack_gqa.py+1/−1
Mphoenix/xrex/cutedsl/ranker_fa4/paged_kv.py+1/−1
Mphoenix/xrex/cutedsl/ranker_fa4/seqlen_info.py+2/−1
Mphoenix/xrex/cutedsl/ranker_fa4/softmax.py+2/−2
Mphoenix/xrex/cutedsl/ranker_fa4/tile_scheduler.py+1/−1
Mphoenix/xrex/cutedsl/ranker_fa4/utils.py+4/−3
Mphoenix/xrex/data/parquet_recsys.py+682/−65
Mphoenix/xrex/data/parquet_recsys_metadata.py+179/−3
Mphoenix/xrex/data/recsys/feature_config.py+1/−0
Mphoenix/xrex/data/recsys/recsys_batch.py+3/−1
Mphoenix/xrex/data/rust_parquet_recsys.py+382/−42
Mphoenix/xrex/data/streaming/kafkaloader.py+1/−0
Mphoenix/xrex/eval/recsys_eval.py+2/−0
Mphoenix/xrex/inference/model_runner.py+73/−1
Mphoenix/xrex/models/loss_recsys.py+80/−0
Mphoenix/xrex/models/recsys_feature_prep.py+93/−14
Mphoenix/xrex/models/recsys_model.py+222/−29
Mphoenix/xrex/models/recsys_sid.py+50/−0
Mphoenix/xrex/models/recsys_two_tower_model.py+568/−31
Mphoenix/xrex/optimizers/optim.py+1/−1
Mphoenix/xrex/optimizers/recsys/dense_optim.py+5/−3
Mphoenix/xrex/optimizers/recsys/muon.py+68/−6
Mphoenix/xrex/train/misc.py+1/−0
Mphoenix/xrex/train/recsys_bundle_export.py+24/−0
Mphoenix/xrex/train/trainer.py+72/−17
Mphoenix/xrex/train/trainer_recsys.py+178/−31
Mphoenix/xrex/utils/layer_stack.py+9/−22
Mvisibility-filtering/clients/about_this_account_client.rs+5/−20
Mvisibility-filtering/clients/mod.rs+21/−0
Mvisibility-filtering/clients/socialgraph_client.rs+10/−1
Avisibility-filtering/clients/user_location_client.rs+345/−0
Mvisibility-filtering/evaluate_tweets.rs+9/−10
Mvisibility-filtering/filter.rs+97/−30
Mvisibility-filtering/get_safety_labels.rs+6/−5
Mvisibility-filtering/hydration/batch.rs+9/−8
Mvisibility-filtering/hydration/community_source.rs+66/−10
Mvisibility-filtering/hydration/decode/author.rs+1/−1
Mvisibility-filtering/hydration/decode/tweet.rs+19/−2
Mvisibility-filtering/hydration/execute.rs+88/−6
Mvisibility-filtering/hydration/fallback_cache.rs+22/−39
Mvisibility-filtering/hydration/fetcher.rs+5/−5
Mvisibility-filtering/hydration/metrics.rs+41/−46
Mvisibility-filtering/hydration/mod.rs+7/−4
Mvisibility-filtering/hydration/plan.rs+36/−6
Mvisibility-filtering/hydration/sources.rs+261/−131
Avisibility-filtering/hydration/sources/exchange.rs+528/−0
Mvisibility-filtering/hydration/store.rs+104/−21
Mvisibility-filtering/hydration/tweet_source.rs+279/−29
Mvisibility-filtering/main.rs+1/−1
Mvisibility-filtering/models/mod.rs+3/−2
Mvisibility-filtering/models/tweet.rs+1/−0
Mvisibility-filtering/models/verdict.rs+26/−2
Mvisibility-filtering/models/viewer.rs+2/−0
Mvisibility-filtering/params.rs+7/−1
Mvisibility-filtering/params/client_switches.rs+40/−5
Mvisibility-filtering/params/limited_actions_policy.rs+117/−27
Mvisibility-filtering/retweet.rs+36/−2
Mvisibility-filtering/rules/context.rs+6/−0
Mvisibility-filtering/rules/fixtures.rs+73/−5
Mvisibility-filtering/rules/golden_corpus/age_verification.rs+1/−0
Mvisibility-filtering/rules/golden_corpus/community.rs+115/−2
Avisibility-filtering/rules/golden_corpus/local_tweet.rs+143/−0
Mvisibility-filtering/rules/golden_corpus/mod.rs+2/−0
Mvisibility-filtering/rules/golden_corpus/oon_tweet_label.rs+35/−11
Mvisibility-filtering/rules/golden_corpus/tweet_label.rs+75/−1
Mvisibility-filtering/rules/registry.rs+54/−13
Mvisibility-filtering/rules/rule_spec.rs+52/−5
Mvisibility-filtering/rules/tweet_rules.rs+129/−28
Mvisibility-filtering/safety_label_source/lookup.rs+7/−6
Mvisibility-filtering/safety_label_source/manhattan.rs+5/−4
Mvisibility-filtering/safety_label_source/source.rs+9/−8
Mvisibility-filtering/safety_label_source/twemcache.rs+4/−3
Mvisibility-filtering/server.rs+6/−6
Mvisibility-filtering/server_deps.rs+18/−11
Mvisibility-filtering/staging/capture.rs+73/−16
Mvisibility-filtering/staging/main.rs+10/−2
Mvisibility-filtering/staging/recording.rs+1739/−609
Mvisibility-filtering/staging/reference/mod.rs+21/−5
Mvisibility-filtering/staging/reference/tweetypie.rs+19/−6
Mvisibility-filtering/staging/replay_corpus.rs+359/−44
Mvisibility-filtering/staging/serve.rs+5/−3
Mvisibility-filtering/treatment.rs+290/−28