Skip to content

Stop Community Notes from burying organic For You rank - #58

Closed
Pitchfork-and-Torch wants to merge 19 commits into
mainfrom
cursor/community-note-organic-bury-a82f
Closed

Stop Community Notes from burying organic For You rank#58
Pitchfork-and-Torch wants to merge 19 commits into
mainfrom
cursor/community-note-organic-bury-a82f

Conversation

@Pitchfork-and-Torch

Copy link
Copy Markdown
Owner

Bug

Community Notes were ads MediumRisk.

NSFA_COMMUNITY_NOTE sat in MEDIUM_RISK_LABELS and MEDIUM_RISK_LABELS_V2. AdsBrandSafetyVfHydrator writes that verdict onto the shared post. has_avoid treats MediumRisk as ads-avoid. Default For You blenders (partition_organic, time_gap) then pull avoid posts out of Phoenix order and dump them into filler after the ad sandwich.

A reply or quote inherits the worst ancestor/quoted verdict. A note on the parent buried the whole conversation when ads placed.

This is not xai-org#127 (missing verdict / nsfw_author_ads leaking MediumRisk). xai-org#127 keeps real MediumRisk off ad neighbors. A crowd note is not brand-unsafe inventory. VF does not drop NSFA_COMMUNITY_NOTE. Phoenix does not score it. Ads taxonomy was the only rank writer.

Fix

Remove NSFA_COMMUNITY_NOTE from v1 and v2 MediumRisk. A Grok-safe noted post stays Safe. Real NSFW/NSFA and unscored posts stay MediumRisk.

Proof

  • Entry: NSFA_COMMUNITY_NOTE on the tweet, quote, or ancestor
  • Sink: compute_verdict / compute_verdict_v2 -> has_avoid -> partition_organic / time_gap filler
  • Break: a crowd note was classed with GROK_NSFA and MALICIOUS_URL; the blender then reordered organics
  • Viewer effect: noted post (or its reply) drops below a lower-scored Safe post whenever ads run
  • Twin: GROK_SFA-only stays Safe and keeps rank; GROK_SFA+GROK_NSFA stays MediumRisk

Tests

  • community_note_is_not_ads_medium_risk (v1 and v2)
  • community_note_does_not_mask_real_medium_or_unscored
  • community_note_keeps_safe_verdict
  • community_note_on_quoted_or_ancestor_does_not_escalate
  • medium_risk_avoid_buries_higher_scored_organic (sink lock)
  • v2_mirrors_v1_across_tier_matrix includes the note pair
  • unit tests added; cargo test cannot run in the public dump
Open in Web Open in Cursor 

CI agent and others added 19 commits August 14, 2026 20:55
in_network_ids is passed to the VF client without deduplication, while
oon_ids is deduped four lines below. retweeted_tweet_id is pushed for
every candidate that has one, so the same ID repeats once per retweet of
a given post — most often when that post is going viral.

Neither VfClient implementation dedupes its input: StratoVfClient builds
one call per element, and XaiVfClient chunks by XAI_VF_MAX_BATCH_SIZE, so
duplicates consume batch slots and can force an extra round trip.

Not a correctness issue — results collapse into a HashMap keyed by tweet
ID — but redundant work on the For You serving path.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Deduplicate in_network_ids before VF lookup
NSFA_COMMUNITY_NOTE was ads MediumRisk. partition_organic and time_gap
treat MediumRisk as avoid and pull those posts out of Phoenix order.
A crowd note is context, not brand-unsafe inventory. Remove it from
v1 and v2 MediumRisk so a noted post keeps its rank. Real NSFW/NSFA
and unscored posts stay MediumRisk.

Co-authored-by: Jon Bailey <Pitchfork-and-Torch@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants