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/src/lib/twitter-client-features.ts b/src/lib/twitter-client-features.ts index 27be137..67c9bd2 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,11 @@ 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: false, + responsive_web_text_conversations_enabled: false, + tweetypie_unmention_optimization_enabled: true, + vibe_api_enabled: false, + interactive_text_enabled: false, }); } 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); + }); });