Repository navigation
spec: drift from a 360-call strict sweep and a HAR capture - #123
Merged
Merged
Conversation
Plain strings where X keeps adding values (conversationSection: RelatedTweet, BirdwatchPivot.iconType: BirdwatchLink); new fields Tweet.voiceInfo, CashtagAttachment.size_variant, ArticleResult.summary_text, ModuleHeader.socialContext (contextType TextOnly); ArticleResult.content_state typed from a plain-text article; timeline optional on user timeline results (UserUnavailable), MediaResult.media_key and GrokImageAnnotation. upsampled_prompt optional. Verified: 804 stored responses (3,909 distinct tweets from the sweep) at match rate exactly 1.0; strict live test 123/124 at 1.0, the other call a 503 from X that replays fine. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
draft.js blocks with inlineStyleRanges (Bold / Italic), entityRanges and data.urls / data.mentions; entityMap entries of type MEDIA, TWEMOJI and TWEET. 805 stored responses still at match rate exactly 1.0. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
GrokEntityRef.type += TimelineRichTextMention (id, screen_name);
TweetLegacy.place typed from 27 geo-tagged posts (GeoJSON bounding box) plus
the coordinates / geo points; NoteTweetResultData.entity_set / text optional
(a note tweet result can be just {id}). 1,160 stored responses at match rate
exactly 1.0.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
A broad strict sweep on the sandbox account (360 calls: 12 search queries × Top / Latest / Media × 2 pages, 20 accounts × UserTweets / TweetsAndReplies / Media / Highlights × 2 pages, 72 tweet details, home, explore tabs, lists, communities, notifications, bookmarks, Community Notes; paced by X's
x-rate-limit-*headers) plus the 33 response bodies of a browser HAR capture surfaced the following. Every stored response, 804 now (3,909 distinct tweets from the sweep alone, 1,171 from the HAR), deserializes at match rate 1.0 with these changes.Values X keeps extending → plain strings (known values in comments)
ConversationDetails.conversationSection:RelatedTweetjoinedHighQuality.BirdwatchPivot.iconType:BirdwatchLinkjoinedBirdwatchV1Icon/BirdwatchCameraVideo/BirdwatchPhoto(added only yesterday).New fields
Tweet.voiceInfo(always{}so far, TweetDetail).CashtagAttachment.size_variant(integer).ArticleResult.summary_text, andArticleResult.content_stateis typed (ArticleContentState, draft.js): blocks withinlineStyleRanges(style: Bold / Italic),entityRanges,data.urls/data.mentions, andentityMapentries of typeMEDIA(entityKey, mediaItems, caption),TWEMOJI(url) andTWEET(tweetId), from 5 articles in the sweep and the cache. That leavesTweetLegacy.placeandTweetInterstitialRevealTextas the only untyped sites.ModuleHeader.socialContext(TimelineGeneralContextwith the newcontextType: TextOnly, "Sourced from across X" on TweetDetail modules).Optional now
UserTweetsResultV1.timeline/UserHighlightsTweetsResult.timeline: the result is a bareUserUnavailablefor unavailable accounts (@Support).MediaResult.media_key:media_results.resultis{}on some media.GrokImageAnnotation.upsampled_prompt: some annotations carry onlyprompt.Second sweep (355 more calls: other languages, cards and accounts, 4,309 distinct tweets)
GrokEntityRef.typegainsTimelineRichTextMention(withid,screen_name): a Grok-translated Community Note mentioning a user.TweetLegacy.placeis typed at last (27 geo-tagged posts recorded:TweetLegacyPlacewith a GeoJSONbounding_box), and the siblingcoordinates/geopoints are added.TweetInterstitialRevealTextis now the only untyped site.NoteTweetResultData.entity_set/.textoptional: a note tweet result can be just{id}.Verification
errorsbeside complete data are logged as warnings).🤖 Generated with Claude Code