Postglow

X'in açık sıralama kodundan 45 bilgi

Her bilgi, xai-org/x-algorithm'in tek bir commit'indeki kaynak koddan ya da varsayılandan alıntıdır ve geldiği dosyaya bağlanır. Bu, o kodla ilgili bir kanıttır; X'in canlıda ne çalıştırdığıyla ilgili değil.

25 Eylül 2026 tarihinde bf7db1b commit'ine karşı kontrol edildi. Daha yeni upstream commit'leri (henüz incelenmedi)

Tüm bilgileri JSON olarak indirBilgiler kayıt defterindeki özgün İngilizce hâlleriyle alıntılanır.

x.home_mixer · 9

In checked-in source, the compile-time value is 50: TopKScoreSelector keeps at most this many scored candidates per feed request.

kod gerçeği · derleme zamanı sabiti

Nasıl okunmalı

A per-request selection boundary, not a global rank, a reserved slot, a cutoff a post must beat, or a reach promise. Checked source; live deployment unknown.

home-mixer/params/config.rs · TOP_K_CANDIDATES_TO_SELECT @ bf7db1b
In checked-in source, the compile-time constant RESULT_SIZE is 35. It is the Phoenix scored-posts pipeline's result_size (phoenix_candidate_pipeline.rs:1016), and the ads blenders (multi_risk, partition_organic, time_gap, safe_gap) cut the blended post-and-ad list to it, so there the 35 includes ads.

kod gerçeği · derleme zamanı sabiti

Nasıl okunmalı

A per-request list-length bound, not a count of feed slots a creator can get, a rank threshold or a reach quota; which blender is active is unknown. Checked source; live deployment unknown.

home-mixer/params/config.rs · RESULT_SIZE @ bf7db1b
In checked-in source, the For You pipeline's result_size() cap per response is 47 items: RESULT_SIZE 35 + FEED_MODULE_SLOTS 4 + MAX_JETFUEL_FRAMES_PER_RESPONSE 8, so non-post module and frame slots count toward it.

kod gerçeği · derleme zamanı sabiti

Nasıl okunmalı

A cap on items in one pipeline response, not an observed feed length, a per-session post count, or slots a creator's posts compete for; it says nothing about rank. Checked source; live deployment unknown.

home-mixer/params/config.rs · FOR_YOU_MAX_RESULT_SIZE @ bf7db1b
In checked-in source, MAX_POST_AGE is 48 * 60 * 60 = 172800 seconds (48 hours); the Phoenix candidate pipeline's AgeFilter uses it as the maximum post-candidate age, measured from the tweet ID timestamp.

kod gerçeği · derleme zamanı sabiti

Nasıl okunmalı

A code-level candidate age cutoff in one home-mixer pipeline; not a post lifespan, a decay curve, a cutoff for other surfaces, or creator timing advice. Checked source; live deployment unknown.

home-mixer/params/config.rs · MAX_POST_AGE @ bf7db1b
At this tree VMRanker::enable (vm_ranker.rs:80-82) returns the EnableRanking feature switch (rust_home_mixer_enable_ranking, checked-in default true, home-mixer/params/param.rs line 257), its only reader here. At a389166f6cf5da70a286b568c87695d4dcdce3a1 VMRanker read EnableVMRanker (default true) and EnableRanking gated ranking_scorer.rs; EnableVMRanker is absent here.

kod gerçeği · özellik anahtarı varsayılanı

Nasıl okunmalı

Shows only which checked-in switch gates VMRanker and its default; upstream's sync-date mirroring supports the default, not live assignment, overrides or experiments, and does not show live VMRanker or DPP use. Checked source; live deployment unknown.

home-mixer/scorers/vm_ranker.rs · VMRanker::enable @ bf7db1b
x.home_mixer.served_durationÇeşitlilik kontrolü kullanır
The checked-in feature-switch default for the per-viewer served-history exclusion window is 10 minutes (rust_home_mixer_exclude_served_tweet_ids_duration_minutes).

kod gerçeği · özellik anahtarı varsayılanı

Nasıl okunmalı

A viewer-side feed de-duplication window: posts already served to that viewer inside it, capped by ExcludeServedTweetIdsNumber, leave that viewer's candidates. Not a posting cooldown, a penalty, or a promised return afterwards. Checked source; live deployment unknown.

home-mixer/params/param.rs · ExcludeServedTweetIdsDuration @ bf7db1b
The checked-in feature-switch default for ExcludeServedTweetIdsNumber, the cap on how many recently served post IDs from a viewer's own served history are excluded from that viewer's candidates, is 100.

kod gerçeği · özellik anahtarı varsayılanı

Nasıl okunmalı

A configurable default, not evidence of live history depth, of how many posts X excludes for any viewer, or of when a post can reappear in a feed. Checked source; live deployment unknown.

home-mixer/params/param.rs · ExcludeServedTweetIdsNumber @ bf7db1b
In checked-in source the compile-time constant FOLLOWING_MAX_RESULT_SIZE is 110 (100 at a389166f6cf5da70a286b568c87695d4dcdce3a1), so FOLLOWING_POST_FETCH_SIZE is 101 (110 minus FOLLOWING_ADS_TOP_K 9) and FOLLOWING_PIPELINE_RESULT_SIZE is 112; the separate RANKED_FOLLOWING_MAX_RESULT_SIZE stays 38.

kod gerçeği · derleme zamanı sabiti

Nasıl okunmalı

A size limit on the items one Following-tab response is built from, ads and modules included; not a follower reach figure, a reserved slot, or evidence of whether or where any post appears. Checked source; live deployment unknown.

home-mixer/params/config.rs · FOLLOWING_MAX_RESULT_SIZE @ bf7db1b
In checked-in source, home-mixer's weights_for hard-codes enable_author_diversity false, author_diversity_decay 1.0, author_diversity_floor 1.0 and oon_rescore_in_network_replies_retweets false (lines 40-43), and its weighted_score calls only fuse_heads (line 83), never post_fusion_multipliers, so the local score applies no repeated-author decay or out-of-network factor.

kod gerçeği · derleme zamanı sabiti

Nasıl okunmalı

Those multipliers exist only on the vm-ranker path, as switchable defaults. PhoenixScoresRankingScorer uses the local score. VMRanker keeps it, cold-start adjustments applied, when its RPC fails or omits a candidate (vm_ranker.rs 108-135), and vm-ranker at its checked-in startup defaults (config sync and DPP off) returns it unchanged (scoring/mod.rs 95-103). Which score serves live is unresolved; not evidence that repeated posting goes unpenalized. Checked source; live deployment unknown.

home-mixer/scorers/value_model.rs · weights_for @ bf7db1b

x.vm_ranker · 3

x.vm_ranker.dpp_enabledÇeşitlilik kontrolü kullanır
In checked-in source, the vm-ranker binary's --dpp-enabled startup flag defaults to false; without it no DPP (diversity reranking) context is built, and the per-request DppEnabled switch cannot create one.

kod gerçeği · başlatma bayrağı varsayılanı

Nasıl okunmalı

Whether X starts this service with DPP on or off is unresolved: upstream's note that checked-in defaults mirror production covers feature-switch params, not launch flags. Postglow says neither that X diversifies feeds nor that it does not. Checked source; live deployment unknown.

vm-ranker/args.rs · dpp_enabled @ bf7db1b
vm-ranker's checked-in feature-switch defaults are EnableAuthorDiversity true, AuthorDiversityDecay 0.5 and AuthorDiversityFloor 0.25; within one request the code's formula (1-floor)*decay^k+floor gives an author's 1st to 4th highest-scored candidates multipliers 1.0, 0.625, 0.4375 and 0.34375. Params resolve only when startup flag config_sync_enabled (default false) is on.

kod gerçeği · özellik anahtarı varsayılanı

Nasıl okunmalı

On the vm-ranker path, lower-scored posts by the same author in one viewer's pool get smaller multipliers, ordered by score, not posting time: no frequency rule, cooldown or quota. Without config the value model falls back with no multipliers, and home-mixer's local path hard-codes it off. Checked source; live deployment unknown.

vm-ranker/params.rs · EnableAuthorDiversity @ bf7db1b
vm-ranker's checked-in feature-switch defaults are OonWeightFactor 0.75, TopicOonWeightFactor 0.5 (topic requests) and EnableOonRescoreForInNetworkRepliesRetweets true; oon_applies (xai-value-model/scoring.rs line 166) marks candidates out-of-network for the viewer and, while that switch is on, in-network replies and reposts, leaving unknown status unmarked. Params need config_sync_enabled.

kod gerçeği · özellik anahtarı varsayılanı

Nasıl okunmalı

A relative multiplier on one viewer's score for one candidate; out-of-network means that viewer does not follow the author. Not a fixed share of reach lost to non-followers, not a set rank drop, and no reason to avoid replies or reposts. Checked source; live deployment unknown.

vm-ranker/params.rs · OonWeightFactor @ bf7db1b

x.cache · 3

In this checked-in code, a viewer's cached feed candidate list counts as usable (has_cached_posts) only if it holds at least 500 cached post candidates (const MIN_CACHED_POSTS_THRESHOLD = 500).

kod gerçeği · derleme zamanı sabiti

Nasıl okunmalı

About the recommender's per-viewer cache, not a creator's post count, a reach or eligibility threshold, or anything a creator can act on; the path also sits behind the EnableCachedPosts feature switch (checked-in default true). Checked source; live deployment unknown.

home-mixer/query_hydrators/cached_posts_query_hydrator.rs · MIN_CACHED_POSTS_THRESHOLD @ bf7db1b
In checked-in code, the cached-posts query hydrator stops waiting for its Redis GET after 300 ms (a compile-time constant); the hydrator runs only when the EnableCachedPosts param is on, whose checked-in default is true.

kod gerçeği · derleme zamanı sabiti

Nasıl okunmalı

Internal plumbing with no creator action; not a production latency claim and nothing about ranking, reach or visibility. Checked source; live deployment unknown.

home-mixer/query_hydrators/cached_posts_query_hydrator.rs · REDIS_GET_TIMEOUT @ bf7db1b
In checked-in source, the side effect that caches a viewer's already-scored feed candidates in Redis sets a 180-second expiry (const REDIS_TTL_SECONDS passed to set_ex); it runs only when is_prod() is true and the query had no cached posts.

kod gerçeği · derleme zamanı sabiti

Nasıl okunmalı

Nothing for creators: a viewer-side cache of ranked candidates keyed by viewer, topics, in-network-only and exclude-videos; not a posting cooldown, freshness window or cadence rule, and no production cache topology claim. Checked source; live deployment unknown.

home-mixer/side_effects/redis_post_candidate_cache_side_effect.rs · REDIS_TTL_SECONDS @ bf7db1b

x.viewer_metadata · 1

x.uth · 5

Checked-in feature-switch fallback defaults: under_the_hood_report_takedowns_enabled false (line 22), under_the_hood_report_max_month_bucket 0 (line 19), and the report's master switch under_the_hood_report_enabled false. Legal-withholding and copyright/DMCA takedown rows are added only when the takedowns switch is on (underTheHoodReport.User.strato:446); a bucket of 0 or less sets no month cap.

kod gerçeği · özellik anahtarı varsayılanı

Nasıl okunmalı

Takedown rows depend on a switch resolved per recipient at runtime. The master switch also defaults to false although the README announces live reports, so these defaults do not show rows hidden live. A report without takedown rows is no evidence either way, and Postglow never tells a creator they have none. Checked source; live deployment unknown.

under-the-hood/strato/lib/params.strato · under_the_hood_report_takedowns_enabled @ bf7db1b
Checked-in report JSON needs a non-suspended account strictly older than 365 days with at least 10 eligible posts (lines 18-19) in one prior UTC month: last month once 10 days pass from 00:00 UTC on its last day (line 20), else the month before. max_month_bucket (default 0, no cap) can move it earlier; incomplete data falls back one month, and still-incomplete data returns nothing.

kod gerçeği · derleme zamanı sabiti

Nasıl okunmalı

The report covers a completed earlier month, never this week or month. Failing the age or post check gives the checklist, not a report; that shows only whether a report was built, not a penalty or its absence. The report sits behind default-off switches, so live availability and month are unresolved. Checked source; live deployment unknown.

under-the-hood/strato/columns/underTheHoodReport.User.strato · minimumAccountAge @ bf7db1b
The checked-in daily post takedown labels job keeps a post's takedown observations (PCTD and DMCA audit deltas plus tweet events) only if the post was created within the window before the as-of day and the event precedes the sooner of creation plus the window or day end (lines 208-212). The window is job argument postObservationDays, 7 when not passed (line 244); rows go to the authoring day.

kod gerçeği · başlatma bayrağı varsayılanı

Nasıl okunmalı

With the default 7-day window, withholding applied 7 or more days after publishing falls outside these post labels, so the report may omit it; absence is not proof. It is not a grace period after which posts are safe and says nothing about visibility limits. The production argument is unresolved. Checked source; live deployment unknown.

under-the-hood/scalding/UthDailyPostTakedownLabelsJob.scala · postObservationDays @ bf7db1b
postLabelRow and accountLabelRow emit rows only for allowlisted labels, plus takedown reasons only when the under_the_hood_report_takedowns_enabled feature switch (checked-in default false) is on (lines 242-312), so this tree does not establish that an empty report means a creator's distribution was unaffected.

koddan türetilmiş · özellik anahtarı varsayılanı

Nasıl okunmalı

Postglow presents an empty report as the absence of the report's allowlisted labels in one past month, never as a clean bill of visibility; upstream itself calls the report best-effort. Checked source; live deployment unknown.

under-the-hood/strato/columns/underTheHoodReport.User.strato · postLabelRow @ bf7db1b

x.docs · 1

Upstream's line-1 comment reads 'mirrored from config feature-switch defaults; last sync 2026-09-24T16:24:49Z' (2026-08-12T04:09:22Z at a389166f6cf5da70a286b568c87695d4dcdce3a1). README lines 408-410 say experiments run on a small share of timeline traffic, many values come from a config system, and cron scripts set repo defaults to primary production values.

kod gerçeği · özellik anahtarı varsayılanı

Nasıl okunmalı

Upstream's own statement, unverifiable from the repo: it strengthens checked-in values as primary production defaults at the sync date, never as a viewer's experiment arm, override or later change; README's aim to surface larger experiments is intent only. Checked source; live deployment unknown.

home-mixer/params/param.rs @ bf7db1b

x.value_model · 2

apply(score, weight) returns score.unwrap_or(0.0) * weight (line 57); compute_weighted_score (line 65) sums 25 such terms, each a weight times one Phoenix predicted head in candidate.phoenix_scores, from favorite_score through report_score to post_unexplored_score. No raw engagement-count field is an operand of this fusion step; weight values come from request params.

kod gerçeği · derleme zamanı sabiti

Nasıl okunmalı

Weights scale per-viewer model predictions Postglow cannot observe, so public counts cannot be turned into a creator score or an action-for-action rate. Model inputs lie outside this function, so this does not show engagement is irrelevant; checked-in weights are defaults. Checked source; live deployment unknown.

xai-value-model/scoring.rs · apply @ bf7db1b
At the checked SHA the feature-switch default BidirectionalFollowReplyWeightBoost is 15.0; ValueModelWeights::reply_weight_for (xai-value-model/weights.rs line 78) adds it to ReplyWeight (default 5.0) only for non-reply, non-repost candidates whose author and viewer follow each other, as tagged when EnableBidirectionalFollowHydration is on and posts are not cached. The dwell boost defaults to 0.0.

kod gerçeği · özellik anahtarı varsayılanı

Nasıl okunmalı

It raises the weight on the viewer's predicted probability of replying to mutual-follow original posts, one term in a weighted sum; not a point value per reply received, a reach multiplier, a reserved slot, or a reason to chase follow-backs. Checked source; live deployment unknown.

home-mixer/params/param.rs · BidirectionalFollowReplyWeightBoost @ bf7db1b

x.weights · 3

An upstream comment (param.rs lines 270-276, repeated at xai-value-model/scoring.rs lines 32-38; README lines 39 and 349) says each weight multiplies the predicted probability of an action, or a predicted value such as watch time, not raw engagement counts, and that reading weight ratios as count equivalences is incorrect. The scoring code is consistent with it.

kod gerçeği · canlı durum bilinmiyor

Nasıl okunmalı

Postglow cites this text and never builds report or like conversions or a score. It does not make reports or blocks harmless: predicted negative actions carry negative weight, and upstream describes report/block-derived account labels, a separate system that can limit visibility. Checked source; live deployment unknown.

home-mixer/params/param.rs @ bf7db1b
Checked-in feature-switch defaults (synced 2026-09-24) set ReportWeight -234.0 (line 401) and FavoriteWeight 0.5 (line 295). The report weight is several hundred times larger, but this tree does not establish any exchange rate between report and like counts: both multiply a viewer's predicted probability, and lines 273-280 reject the count reading and cite a far lower report base rate.

koddan türetilmiş · özellik anahtarı varsayılanı

Nasıl okunmalı

A ratio between weights on predicted probabilities, not a per-report penalty or count trade, so Postglow builds no report-versus-like calculator. Reports are not harmless: a higher predicted report probability lowers that viewer's ranking score, and upstream says report/block-derived account labels can separately limit visibility. Checked source; live deployment unknown.

home-mixer/params/param.rs · ReportWeight @ bf7db1b
An upstream comment (param.rs 282-294, repeated at xai-value-model/scoring.rs 44-56) calls it a misunderstanding that coordinated blocking or reporting by bad actors will significantly lower reach: predictions are per viewer, so such reports mainly affect viewers similar to the reporters, and only actions on Home-served posts count. Upstream's reasons; this tree does not enforce the Home rule.

kod gerçeği · canlı durum bilinmiyor

Nasıl okunmalı

Ranking commentary only. Visibility labels are separate: upstream's README says agatha labels accounts from blocks, reports and spam reports relative to favorites and that such labels can limit visibility; its checked-in jobs model report and spam-report rates, and the rule path from those scores to a visibility drop is not established in this tree. Postglow never calls reports or blocks harmless and turns this into no count, score or diagnosis. Checked source; live deployment unknown.

home-mixer/params/param.rs @ bf7db1b

x.cold_start · 4

Checked-in feature-switch defaults are EnableViewerColdStart true (line 491) and EnableColdStartThompsonSampling false (line 497). Then AuthorColdStart picks, per request, the eligible candidate with the highest current score and sets it to max(existing, target), never lower and possibly unchanged (author_cold_start.rs 315-335); switched off, scores return unchanged.

kod gerçeği · özellik anahtarı varsayılanı

Nasıl okunmalı

A default-on lift path that promises no lift, slot, position or frequency to any post and gives no creator lever. Eligibility gates (original post, follower cap, post age, Home impressions, position limit) and the viewer's experiment arm apply, and the enabled path also zeroes some MoE-retrieved candidates by arm. Checked source; live deployment unknown.

home-mixer/params/param.rs · EnableViewerColdStart @ bf7db1b
cold_start_base_eligible (line 171) is a necessary pre-filter for the cold-start lift: it admits only non-reply, non-repost posts whose author follower count is known and at or below ColdStartFollowerCap (feature-switch default 1000, param.rs line 471); it does not exclude quotes. Admitted posts still face the other apply_cold_start gates before at most one per request is lifted.

kod gerçeği · özellik anahtarı varsayılanı

Nasıl okunmalı

In this tree replies and reposts cannot qualify, and a follower count at or under the cap qualifies nothing by itself and reserves no slot. The live cap and switch state are unresolved, and quotes passing this predicate is no reason to prefer quote posts. Checked source; live deployment unknown.

home-mixer/scorers/author_cold_start.rs · cold_start_base_eligible @ bf7db1b
In every viewer arm, apply_cold_start admits a candidate only if post age is at most ColdStartMaxPostAgeSecs (feature-switch default 172800 s; 86400 and treatment-arm only at a389166f6cf5da70a286b568c87695d4dcdce3a1), a known view_count_on_home is below ColdStartImpressionThreshold (default 1000), and its position is below floor(0.85 x non-zero scores); base, corpus and enable gates also apply.

kod gerçeği · özellik anahtarı varsayılanı

Nasıl okunmalı

With checked-in defaults the age limit is 48 hours and keys on the post's own view_count_on_home, separate from MAX_POST_AGE. It decides eligibility only: at most one post per request is lifted toward a sampled rank-15 score, so no slot, lift or countdown. Postglow cannot see Home-only views and shows no eligibility or time left. Checked source; live deployment unknown.

home-mixer/scorers/author_cold_start.rs · apply_cold_start @ bf7db1b
With feature-switch defaults ColdStartSlotMin 15 and ColdStartSlotMax 16 (param.rs 459-468), cold_start_target picks zero-based rank 15, the 16th-highest pre-policy score, with no target under 16 candidates. The lift is max(existing, target), a score floor, not a placement, and the value model repeats it on its own scores, so this tree does not establish a reserved feed slot for small accounts.

koddan türetilmiş · özellik anahtarı varsayılanı

Nasıl okunmalı

Postglow never promises small accounts a feed position, boost or rank. At most one post per request gets a score floor, only if cold start is on and it passes every gate (original post, follower cap, age, low Home impressions, position, arm/corpus); later stages can reorder it. Checked source; live deployment unknown.

home-mixer/scorers/author_cold_start.rs · cold_start_target @ bf7db1b

x.filters · 2

Brazil2026ElectionFilter has no enable override (trait default true) and a compiled-in list of 2786 account ids its header ties to 2026 Brazilian Electoral Court reports. In PhoenixCandidatePipeline (line 381), it removes a candidate when a listed account the viewer does not follow is its author, reposted, quoted or ancestor author; it checks no viewer country and reads no feature switch.

kod gerçeği · derleme zamanı sabiti

Nasıl okunmalı

In the checked-in pipeline a creator's repost, quote or reply involving a listed account can be removed for viewers who do not follow that account: a legally motivated list exclusion, not a quality or reach signal. Deployment scoping outside this file, including geography, is unresolved. Checked source; live deployment unknown.

home-mixer/filters/brazil_2026_election_filter.rs · Brazil2026ElectionFilter::should_remove @ bf7db1b
In checked-in source FavHoldoutFilter (phoenix pipeline) runs only when EnableFavHoldout is on (feature-switch default false, param.rs line 822); it then removes a candidate when a deterministic hash of original post id and viewer id mod 100 is below a like-count percentage: 0 at one like or fewer, 2 at two, stepping to 14 at exactly 3000 and 15 above. It has no follow exemption.

kod gerçeği · özellik anahtarı varsayılanı

Nasıl okunmalı

A default-off holdout keyed to each post-viewer pair; if switched on, at most 15% of pairs would drop the post from this candidate list. Not a reach measure, a likes-to-impressions rate, an account penalty or a creator lever. Checked source; live deployment unknown.

home-mixer/filters/fav_holdout_filter.rs · FavHoldoutFilter::holdout_percent @ bf7db1b

x.brand_safety · 1

For one tweet id with no high- or medium-risk label, compute_verdict returns MediumRisk if it has neither GROK_SFA nor GROK_NSFA_LIMITED (lines 57-61), or its id is at or above PTOS_CUTOFF_TWEET_ID (line 43, about 2026-05-12 19:00 UTC) without PTOS_REVIEWED. After top-K selection the hydrator takes the worst verdict over post, quote and ancestors; ad and response code read it, no scorer.

kod gerçeği · derleme zamanı sabiti

Nasıl okunmalı

A post merely lacking certain Grok or PTOS labels is MediumRisk for ad placement. No ranking score reads it, but ad blending can change which posts sit next to ads and their order within that response. Creators cannot see or change these labels, and this is no reach, visibility or hidden-penalty diagnosis. Checked source; live deployment unknown.

home-mixer/models/brand_safety.rs · compute_verdict @ bf7db1b

x.vf · 6

In the checked-in Rust visibility-filtering service, proto_action maps every verdict to Drop, Interstitial or Allow (tombstone to Drop, engagement-limit-only to Allow), and ActionSpec (rules/rule_spec.rs line 112) has no downrank or score-multiplier variant. This covers only its output: the VF client and legacy reference still carry Downrank and Avoid, which home-mixer's vf_filter.rs (line 24) keeps and no home-mixer scorer reads.

kod gerçeği · derleme zamanı sabiti

Nasıl okunmalı

This one service can hide a post for a given viewer or surface, show it behind an interstitial, or allow it; an engagement limit alone maps to Allow, and it has no percentage downrank of its own. Not evidence X has no reach penalties: ranking orders posts and systems outside this tree may limit distribution, but this tree shows no effect of a Downrank or Avoid action. Checked source; live deployment unknown.

visibility-filtering/treatment.rs · proto_action @ bf7db1b
In checked-in source, TIMELINE_HOME_RECOMMENDATIONS_POLICY is the shared Home rules plus nine recommendation-only groups (registry.rs 140-156), one dropping posts labelled DoNotAmplify, MaliciousUrl or SpamHighRecall for all but the author (tweet_rules.rs 233-252). home-mixer requests it for out-of-network candidates and every candidate's ancestors and quotes; in-network ones get TimelineHome.

kod gerçeği · istek anı koşulu

Nasıl okunmalı

A labelled post can drop from out-of-network Home recommendations yet pass the shared rules in-network, which also drop some labels; a followed account's reply or quote leaves Home when its parent or quoted post drops. The code only drops or allows, with no reach percentage; Postglow cannot see labels and makes no hidden-penalty diagnosis. Checked source; live deployment unknown.

visibility-filtering/rules/registry.rs · TIMELINE_HOME_RECOMMENDATION_ONLY_RULES @ bf7db1b
In checked-in rules, OON_USER_LABEL_DROPS (lines 127-176) sits only in TimelineHomeRecommendations and ImmersiveExpandedRecommendations, not TimelineHome. By author label, not post content, it drops posts of authors labelled SpamHighRecall, Compromised, ReadOnly or ImpersonationHighPrecision for all but the author, and AbusiveHighRecall or DoNotAmplify for non-followers, logged-out included.

kod gerçeği · derleme zamanı sabiti

Nasıl okunmalı

One account-level label can keep an account's posts out of these recommendation surfaces whatever they say. Labels come from separate systems; Postglow cannot see them, so it never diagnoses a label from a reach drop and never tells a creator a given action did or will earn one. Checked source; live deployment unknown.

visibility-filtering/rules/author_rules.rs · OON_USER_LABEL_DROPS @ bf7db1b
In checked-in home-mixer, should_drop_ancillary (lines 140-170) flags a candidate when this viewer's VF result for any non-tombstoned ancestor, its quoted post or reposted source is Drop, Tombstone or NotEvaluated; AncillaryVFFilter then removes it from that viewer's For You and Following results. A failed or missing lookup, or Allow, Interstitial, Avoid or Downrank, sets no flag.

kod gerçeği · derleme zamanı sabiti

Nasıl okunmalı

A reply, quote or repost can leave a viewer's Home timeline because the post it answers, quotes or reposts was dropped for that viewer, not for its own content. Decided per viewer and request: not a global removal, a score, an account penalty or a hidden-penalty signal, and the code gives no drop reason. Checked source; live deployment unknown.

home-mixer/candidate_hydrators/vf_candidate_hydrator.rs · should_drop_ancillary @ bf7db1b
In checked-in code DropStaleTweetsRule drops a non-repost post whose edit-control data lists a later id as the chain's last entry, for Audience::Everyone (author not exempt) with UnspecifiedReason (tweet_rules.rs 554-562; models/tweet.rs 42-52; no edit data means not superseded). It is in TIMELINE_HOME_SHARED_RULES (rules/registry.rs line 132), used by TimelineHome and TimelineHomeRecommendations.

kod gerçeği · derleme zamanı sabiti

Nasıl okunmalı

In the checked-in Home policies, older versions of an edited post drop for every viewer, author included; the latest version escapes this rule but not the others. Housekeeping, not an author penalty, and the code does not show how editing affects ranking, reach or carried-over engagement. Checked source; live deployment unknown.

visibility-filtering/rules/tweet_rules.rs · STALE_TWEET_DROP @ bf7db1b
In checked-in policies with TAKEDOWN_DROPS (Home, Home recommendations, hydration, immersive), a post drops for every non-author viewer when a LegalRequest (not xy) or UnspecifiedReason code equals the request's country_code or is worldwide (xx, xy; DMCA counts as xy), or a BystanderReport code equals that country (models/tweet.rs 62-110). With no request country, only worldwide codes match.

kod gerçeği · istek anı koşulu

Nasıl okunmalı

Applies only to posts already carrying a legal, DMCA or local-law takedown code; not ranking, reach or a hidden penalty. The author is exempt, so self-viewing shows nothing about withholding elsewhere, and matching-country viewers are not exempt as followers. Covers these policies, not every X surface. Checked source; live deployment unknown.

visibility-filtering/rules/tweet_rules.rs · TAKEDOWN_DROPS @ bf7db1b

x.phoenix · 3

For non-evergreen sources, executeOp skips community posts, replies, reposts and VF-dropped or adult posts (lines 446-459) before any 1fav, 32fav or post-creation index event; replies still reach the earlier-built search_unfiltered index. A like on an eligible original calls build1FavIndex (line 463), with no like-count gate (a389166f6cf5da70a286b568c87695d4dcdce3a1 needed one).

kod gerçeği · derleme zamanı sabiti

Nasıl okunmalı

In this processor replies and reposts are not written to the 1fav index this tree routes to the HOME retrieval window (1fav_1day); an eligible original can be written on its first like. Index entry is not distribution or impressions, other retrieval sources lie outside this processor, and VF drop reads a runtime decider. Checked source; live deployment unknown.

phoenix-rankall-strato/columns/phoenix_rank_all/phoenixRankAllCandidateProcessor.strato · executeOp @ bf7db1b
Checked-in _home_direct_packed_base (line 244) sets enable_is_author_followed_by_viewer, enable_is_author_following_viewer and enable_engagement_counts True (290-292; dataclass default False for counts). Feature prep adds each follow flag as a learned embedding and turns like, reply, repost, quote and view counts of history and candidate posts into log2(count + 1) / 32 inputs to a 64-unit MLP.

kod gerçeği · kaynaktaki varsayılan

Nasıl okunmalı

Model inputs only: the /32 is input normalisation, not a weight; the learned effect of counts or follow relationships is unpublished, with no fixed direction or size, and which config serves is unresolved. No count arithmetic, count-chasing or follow-back tactic follows. Checked source; live deployment unknown.

phoenix/xrex/configs/xrecsys.py · _home_direct_packed_base @ bf7db1b
In checked-in code as_tweet_info (line 295) sets content_features on each candidate's Phoenix TweetInfo (line 352) and, for quote candidates, quoted_content_features (line 353): has_video, max_video_duration_ms, has_photo, media_count, weighted_text_len, newline_count and has_url (a URL-count heuristic). Under phoenix/ only the proto mentions them, and the served model is not in this tree.

kod gerçeği · derleme zamanı sabiti

Nasıl okunmalı

Post format travels as Phoenix request data, but whether or how it affects ranking, up or down, is not established here, so Postglow gives no link, media, length or line-break rule. Weights, flags and experiments are unresolved. Checked source; live deployment unknown.

home-mixer/models/candidate.rs · CandidateHelpers::as_tweet_info @ bf7db1b

x.grox · 2

GROK_GEMMA_FOLLOWER_SPLIT is 250_000 (inline 15000 at a389166f6cf5da70a286b568c87695d4dcdce3a1): replies whose parent and root authors both have at most 250,000 followers are eligible for the Gemma spam plan, others for Grok reply ranking. Both plans end in one write task: a first or lowering 0.0 score applies RiskyHighVizReply unless the author is high-page-rank, grey-badge or a test user.

kod gerçeği · derleme zamanı sabiti

Nasıl okunmalı

Which model judges a reply (self-replies excluded) depends on the follower counts of the accounts replied to; either path can write 0.0 and apply the same label, so the threshold (15,000, now 250,000) is no safe zone. The label's visibility effect is not shown in this tree, though a botmaker rule logs it as DownRankGroxFlaggedReply. Checked source; live deployment unknown.

grox/flows/reply_spam/constants.py · GROK_GEMMA_FOLLOWER_SPLIT @ bf7db1b
TaskMultiStepReplySpamFilter only gates eligibility: a reply 2+ levels deep whose parent is by the same replier, under another root author with 1000+ followers (line 26), excluding high-page-rank and grey-badge repliers, goes to an LLM judge (prompt not in the repo). If the newest reply and 2+ of the replier's posts are flagged, they get a 0.0 score and, test users aside, RiskyHighVizReply.

kod gerçeği · derleme zamanı sabiti

Nasıl okunmalı

Self-reply chains under a larger account's post get LLM spam review; eligibility is not a penalty and the judge's criteria are unpublished. Postglow never suggests this pattern as a growth tactic and never says a given thread was or will be flagged. Checked source; live deployment unknown.

grox/flows/reply_spam/task_multi_step_reply_spam.py · TaskMultiStepReplySpamFilter @ bf7db1b