From ec0901012255c04c77f49610e9b5b3b934dea9e7 Mon Sep 17 00:00:00 2001 From: Zhe Li Date: Mon, 5 Jan 2026 11:52:56 +0100 Subject: [PATCH 1/4] fix: add required API features to buildListsFeatures MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X/Twitter now requires vibe_api_enabled, responsive_web_text_conversations_enabled, tweetypie_unmention_optimization_enabled, and interactive_text_enabled to be explicitly set in lists API requests. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 --- src/lib/twitter-client-features.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/lib/twitter-client-features.ts b/src/lib/twitter-client-features.ts index 27be137..8ee211a 100644 --- a/src/lib/twitter-client-features.ts +++ b/src/lib/twitter-client-features.ts @@ -216,6 +216,10 @@ export function buildListsFeatures(): Record { responsive_web_grok_imagine_annotation_enabled: true, responsive_web_grok_community_note_auto_translation_is_enabled: false, responsive_web_enhance_cards_enabled: false, + responsive_web_text_conversations_enabled: false, + tweetypie_unmention_optimization_enabled: true, + vibe_api_enabled: false, + interactive_text_enabled: false, }); } From d1de42e91b33e598567fe0e3bf482b882279b868 Mon Sep 17 00:00:00 2001 From: Zhe Li Date: Mon, 5 Jan 2026 13:48:26 +0100 Subject: [PATCH 2/4] fix: add required lists API features --- src/lib/twitter-client-features.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/lib/twitter-client-features.ts b/src/lib/twitter-client-features.ts index 8ee211a..d34de32 100644 --- a/src/lib/twitter-client-features.ts +++ b/src/lib/twitter-client-features.ts @@ -9,6 +9,7 @@ export function buildArticleFeatures(): Record { verified_phone_label_enabled: false, creator_subscriptions_tweet_preview_api_enabled: true, responsive_web_graphql_timeline_navigation_enabled: true, + responsive_web_graphql_exclude_directive_enabled: true, responsive_web_graphql_skip_user_profile_image_extensions_enabled: false, premium_content_api_read_enabled: false, communities_web_enable_tweet_community_results_fetch: true, @@ -187,6 +188,7 @@ export function buildListsFeatures(): Record { verified_phone_label_enabled: false, creator_subscriptions_tweet_preview_api_enabled: true, responsive_web_graphql_timeline_navigation_enabled: true, + responsive_web_graphql_exclude_directive_enabled: true, responsive_web_graphql_skip_user_profile_image_extensions_enabled: false, premium_content_api_read_enabled: false, communities_web_enable_tweet_community_results_fetch: true, @@ -216,6 +218,7 @@ export function buildListsFeatures(): Record { responsive_web_grok_imagine_annotation_enabled: true, responsive_web_grok_community_note_auto_translation_is_enabled: false, responsive_web_enhance_cards_enabled: false, + blue_business_profile_image_shape_enabled: true, responsive_web_text_conversations_enabled: false, tweetypie_unmention_optimization_enabled: true, vibe_api_enabled: false, From 892fe25970829ef976db6e51d98c7befe2a9242e Mon Sep 17 00:00:00 2001 From: Zhe Li Date: Mon, 5 Jan 2026 14:05:12 +0100 Subject: [PATCH 3/4] Update src/lib/twitter-client-features.ts --- src/lib/twitter-client-features.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/twitter-client-features.ts b/src/lib/twitter-client-features.ts index d34de32..67c9bd2 100644 --- a/src/lib/twitter-client-features.ts +++ b/src/lib/twitter-client-features.ts @@ -218,7 +218,7 @@ export function buildListsFeatures(): Record { responsive_web_grok_imagine_annotation_enabled: true, responsive_web_grok_community_note_auto_translation_is_enabled: false, responsive_web_enhance_cards_enabled: false, - blue_business_profile_image_shape_enabled: true, + blue_business_profile_image_shape_enabled: false, responsive_web_text_conversations_enabled: false, tweetypie_unmention_optimization_enabled: true, vibe_api_enabled: false, From ad1d5f24cd22fc1bd1576e830ad9fe77cefc3958 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Sun, 11 Jan 2026 10:43:33 +0000 Subject: [PATCH 4/4] fix: add lists feature flags (#27) (thanks @zheli) --- CHANGELOG.md | 1 + tests/runtime-features.test.ts | 12 +++++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 671168d..267d35a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ ### Fixed - macOS cookie extraction now supports Brave keychain storage (#40) — thanks @gakonst. +- Lists GraphQL feature flags updated to prevent 400s (#27) — thanks @zheli. - Likes pagination now follows cursors and avoids stalling on duplicate pages (#12) — thanks @titouv. ## 0.6.0 — 2026-01-05 diff --git a/tests/runtime-features.test.ts b/tests/runtime-features.test.ts index 0333bda..018144d 100644 --- a/tests/runtime-features.test.ts +++ b/tests/runtime-features.test.ts @@ -4,7 +4,7 @@ import os from 'node:os'; import path from 'node:path'; import { afterEach, describe, expect, it } from 'vitest'; import { clearFeatureOverridesCache, refreshFeatureOverridesCache } from '../src/lib/runtime-features.js'; -import { buildLikesFeatures, buildSearchFeatures } from '../src/lib/twitter-client-features.js'; +import { buildLikesFeatures, buildListsFeatures, buildSearchFeatures } from '../src/lib/twitter-client-features.js'; describe('runtime-features', () => { afterEach(() => { @@ -110,4 +110,14 @@ describe('runtime-features', () => { expect(search.file_flag).toBe(true); expect(search.file_search).toBe(true); }); + + it('includes required lists API feature flags', () => { + const features = buildListsFeatures(); + expect(features.responsive_web_graphql_exclude_directive_enabled).toBe(true); + expect(features.blue_business_profile_image_shape_enabled).toBe(false); + expect(features.responsive_web_text_conversations_enabled).toBe(false); + expect(features.tweetypie_unmention_optimization_enabled).toBe(true); + expect(features.vibe_api_enabled).toBe(false); + expect(features.interactive_text_enabled).toBe(false); + }); });