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.

· aaa167b · 79 files, +8,816/−0

First public commit: Thunder, Phoenix and the Rust home-mixer

candidate hydratorscandidate sourcesfiltersscorersselectorsside effects

The first commit in the repository's history: 79 files across candidate-pipeline/, home-mixer/, phoenix/ and thunder/.

  • home-mixer/ is the service that assembles the For You feed. It ships with 12 filters (e.g. age_filter, author_socialgraph_filter, muted_keyword_filter, previously_seen_posts_filter, vf_filter), two candidate sources (thunder_source for in-network posts, phoenix_source for out-of-network retrieval) and four scorers: phoenix_scorer, weighted_scorer, author_diversity_scorer and oon_scorer.
  • thunder/ holds recent posts from followed accounts in memory; phoenix/ contains the retrieval/ranking model code.
  • candidate-pipeline/ is the generic source → hydrate → filter → score → select framework the feed is built on.

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

Automatic analysis

Config parameters (param! defaults)

None.

Pipeline components

KindChangeFile
Candidate hydratoraddedcandidate-pipeline/query_hydrator.rs
Candidate hydratoraddedhome-mixer/candidate_hydrators/core_data_candidate_hydrator.rs
Candidate hydratoraddedhome-mixer/candidate_hydrators/gizmoduck_hydrator.rs
Candidate hydratoraddedhome-mixer/candidate_hydrators/in_network_candidate_hydrator.rs
Candidate hydratoraddedhome-mixer/candidate_hydrators/subscription_hydrator.rs
Candidate hydratoraddedhome-mixer/candidate_hydrators/vf_candidate_hydrator.rs
Candidate hydratoraddedhome-mixer/candidate_hydrators/video_duration_candidate_hydrator.rs
Filteraddedhome-mixer/filters/age_filter.rs
Filteraddedhome-mixer/filters/author_socialgraph_filter.rs
Filteraddedhome-mixer/filters/core_data_hydration_filter.rs
Filteraddedhome-mixer/filters/dedup_conversation_filter.rs
Filteraddedhome-mixer/filters/drop_duplicates_filter.rs
Filteraddedhome-mixer/filters/ineligible_subscription_filter.rs
Filteraddedhome-mixer/filters/muted_keyword_filter.rs
Filteraddedhome-mixer/filters/previously_seen_posts_filter.rs
Filteraddedhome-mixer/filters/previously_served_posts_filter.rs
Filteraddedhome-mixer/filters/retweet_deduplication_filter.rs
Filteraddedhome-mixer/filters/self_tweet_filter.rs
Filteraddedhome-mixer/filters/vf_filter.rs
Candidate hydratoraddedhome-mixer/query_hydrators/user_action_seq_query_hydrator.rs
Candidate hydratoraddedhome-mixer/query_hydrators/user_features_query_hydrator.rs
Scoreraddedhome-mixer/scorers/author_diversity_scorer.rs
Scoreraddedhome-mixer/scorers/oon_scorer.rs
Scoreraddedhome-mixer/scorers/phoenix_scorer.rs
Scoreraddedhome-mixer/scorers/weighted_scorer.rs
Selectoraddedhome-mixer/selectors/top_k_score_selector.rs
Side effectaddedhome-mixer/side_effects/cache_request_info_side_effect.rs
Candidate sourceaddedhome-mixer/sources/phoenix_source.rs
Candidate sourceaddedhome-mixer/sources/thunder_source.rs

Modules touched

ModuleFiles addedModifiedRemovedLines +Lines −
phoenix/1100+3,593−0
home-mixer/4400+2,316−0
thunder/1100+1,808−0
candidate-pipeline/900+571−0
(repo root)/400+528−0

Files (79)

Show file list
PathLinesNote
A.gitignore+1/−0
ACODE_OF_CONDUCT.md+1/−0
ALICENSE+201/−0
AREADME.md+325/−0
Acandidate-pipeline/candidate_pipeline.rs+329/−0
Acandidate-pipeline/filter.rs+32/−0
Acandidate-pipeline/hydrator.rs+39/−0
Acandidate-pipeline/lib.rs+9/−0
Acandidate-pipeline/query_hydrator.rs+27/−0
Acandidate-pipeline/scorer.rs+39/−0
Acandidate-pipeline/selector.rs+45/−0
Acandidate-pipeline/side_effect.rs+29/−0
Acandidate-pipeline/source.rs+22/−0
Ahome-mixer/candidate_hydrators/core_data_candidate_hydrator.rs+58/−0
Ahome-mixer/candidate_hydrators/gizmoduck_hydrator.rs+81/−0
Ahome-mixer/candidate_hydrators/in_network_candidate_hydrator.rs+44/−0
Ahome-mixer/candidate_hydrators/mod.rs+6/−0
Ahome-mixer/candidate_hydrators/subscription_hydrator.rs+50/−0
Ahome-mixer/candidate_hydrators/vf_candidate_hydrator.rs+101/−0
Ahome-mixer/candidate_hydrators/video_duration_candidate_hydrator.rs+62/−0
Ahome-mixer/candidate_pipeline/candidate.rs+70/−0
Ahome-mixer/candidate_pipeline/candidate_features.rs+78/−0
Ahome-mixer/candidate_pipeline/mod.rs+5/−0
Ahome-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs+255/−0
Ahome-mixer/candidate_pipeline/query.rs+69/−0
Ahome-mixer/candidate_pipeline/query_features.rs+11/−0
Ahome-mixer/filters/age_filter.rs+38/−0
Ahome-mixer/filters/author_socialgraph_filter.rs+42/−0
Ahome-mixer/filters/core_data_hydration_filter.rs+20/−0
Ahome-mixer/filters/dedup_conversation_filter.rs+51/−0
Ahome-mixer/filters/drop_duplicates_filter.rs+30/−0
Ahome-mixer/filters/ineligible_subscription_filter.rs+34/−0
Ahome-mixer/filters/mod.rs+13/−0
Ahome-mixer/filters/muted_keyword_filter.rs+59/−0
Ahome-mixer/filters/previously_seen_posts_filter.rs+36/−0
Ahome-mixer/filters/previously_served_posts_filter.rs+28/−0
Ahome-mixer/filters/retweet_deduplication_filter.rs+42/−0
Ahome-mixer/filters/self_tweet_filter.rs+23/−0
Ahome-mixer/filters/vf_filter.rs+33/−0
Ahome-mixer/lib.rs+14/−0
Ahome-mixer/main.rs+78/−0
Ahome-mixer/query_hydrators/mod.rs+2/−0
Ahome-mixer/query_hydrators/user_action_seq_query_hydrator.rs+188/−0
Ahome-mixer/query_hydrators/user_features_query_hydrator.rs+41/−0
Ahome-mixer/scorers/author_diversity_scorer.rs+73/−0
Ahome-mixer/scorers/mod.rs+4/−0
Ahome-mixer/scorers/oon_scorer.rs+38/−0
Ahome-mixer/scorers/phoenix_scorer.rs+176/−0
Ahome-mixer/scorers/weighted_scorer.rs+92/−0
Ahome-mixer/selectors/mod.rs+3/−0
Ahome-mixer/selectors/top_k_score_selector.rs+15/−0
Ahome-mixer/server.rs+83/−0
Ahome-mixer/side_effects/cache_request_info_side_effect.rs+42/−0
Ahome-mixer/side_effects/mod.rs+1/−0
Ahome-mixer/sources/mod.rs+2/−0
Ahome-mixer/sources/phoenix_source.rs+51/−0
Ahome-mixer/sources/thunder_source.rs+74/−0
Aphoenix/README.md+206/−0
Aphoenix/grok.py+586/−0
Aphoenix/pyproject.toml+38/−0
Aphoenix/recsys_model.py+474/−0
Aphoenix/recsys_retrieval_model.py+372/−0
Aphoenix/run_ranker.py+121/−0
Aphoenix/run_retrieval.py+149/−0
Aphoenix/runners.py+729/−0
Aphoenix/test_recsys_model.py+187/−0
Aphoenix/test_recsys_retrieval_model.py+359/−0
Aphoenix/uv.lock+372/−0
Athunder/deserializer.rs+26/−0
Athunder/kafka/mod.rs+3/−0
Athunder/kafka/tweet_events_listener.rs+390/−0
Athunder/kafka/tweet_events_listener_v2.rs+249/−0
Athunder/kafka/utils.rs+48/−0
Athunder/kafka_utils.rs+115/−0
Athunder/lib.rs+11/−0
Athunder/main.rs+100/−0
Athunder/posts/mod.rs+1/−0
Athunder/posts/post_store.rs+526/−0
Athunder/thunder_service.rs+339/−0