Skip to content

Drop quotes, retweets, and replies whose ancillary VF verdict is Interstitial - #30

Closed
Pitchfork-and-Torch wants to merge 19 commits into
mainfrom
cursor/ancillary-interstitial-drop-6e24
Closed

Pitchfork-and-Torch wants to merge 19 commits into
mainfrom
cursor/ancillary-interstitial-drop-6e24

Conversation

@Pitchfork-and-Torch

Copy link
Copy Markdown
Owner

Bug

xai-org#134 leftover. Quote / RT / ancestor Action::Interstitial does not set drop_ancillary_posts. Verified on xai-org/main (902a06f).

should_drop_reason only matched Action::Drop. Home NSFW / gore / card / nsfw-author rules emit Interstitial. Recs has Drop twins, but RT sources are fetched at TimelineHome, and a dual-role id is overwritten by the Home Interstitial. AncillaryVFFilter reads the flag. The wrapper visibility_reason is the primary Allow. Mixer serializes only that. This repo does not draw an interstitial.

This is not xai-org#115 (Following quotes at Home vs Recs). Not xai-org#119 (RT primary looked up by wrapper id). Not xai-org#121 (VF Err / missing key). xai-org#121 leftover text called this Interstitial≠Drop path out. xai-org#134 left it as keep-and-warn. Keep-and-warn is only real on the primary card.

Five-line proof

  • Entry: VFCandidateHydrator::should_drop_reason (quote / RT / ancestor lookups in should_drop_ancillary)
  • Sink: AncillaryVFFilter (drop_ancillary_posts); candidates_to_scored_posts writes only primary visibility_reason
  • Break: Action::Interstitial on a child did not set the flag; wrapper stayed Allow
  • Viewer effect: a followee RT (or quote/reply) of NSFW / gore serves as a normal For You / Following card with the media embed and no warn
  • Twin: Recs Drop twins already drop the same labels when the child is fetched at TimelineHomeRecommendations. Primary Interstitial still keep-and-warn via VFFilter / visibility_reason

Change

Treat Action::Interstitial like Action::Drop for ancillary children only. Primary Interstitial is unchanged.

Tests

  • Quote / RT / ancestor Interstitial → drop_ancillary_posts
  • Tombstoned ancestor Interstitial still skipped
  • Ancillary Allow keeps; ancillary Drop still drops
  • Primary Interstitial with no child does not set the flag

Standalone decision-table harness (same match arms): 9/9 passed.

cargo test cannot run. Public dump has no Home Mixer manifest.

Fork PR: none

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
Home NSFW rules emit Interstitial (keep-and-warn). should_drop_reason only
matched Action::Drop, so a quote/RT/ancestor Interstitial left
drop_ancillary_posts unset. The wrapper stays Allow and visibility_reason
never carries the child warn, so NSFW/gore embeds as a normal card.

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