Merge pull request #27 from zheli/fix/lists-api-features

Add required lists GraphQL feature flags
This commit is contained in:
Peter Steinberger
2026-01-11 10:43:56 +00:00
committed by GitHub
3 changed files with 19 additions and 1 deletions
+1
View File
@@ -4,6 +4,7 @@
### Fixed ### Fixed
- macOS cookie extraction now supports Brave keychain storage (#40) — thanks @gakonst. - 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. - Likes pagination now follows cursors and avoids stalling on duplicate pages (#12) — thanks @titouv.
## 0.6.0 — 2026-01-05 ## 0.6.0 — 2026-01-05
+7
View File
@@ -9,6 +9,7 @@ export function buildArticleFeatures(): Record<string, boolean> {
verified_phone_label_enabled: false, verified_phone_label_enabled: false,
creator_subscriptions_tweet_preview_api_enabled: true, creator_subscriptions_tweet_preview_api_enabled: true,
responsive_web_graphql_timeline_navigation_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, responsive_web_graphql_skip_user_profile_image_extensions_enabled: false,
premium_content_api_read_enabled: false, premium_content_api_read_enabled: false,
communities_web_enable_tweet_community_results_fetch: true, communities_web_enable_tweet_community_results_fetch: true,
@@ -187,6 +188,7 @@ export function buildListsFeatures(): Record<string, boolean> {
verified_phone_label_enabled: false, verified_phone_label_enabled: false,
creator_subscriptions_tweet_preview_api_enabled: true, creator_subscriptions_tweet_preview_api_enabled: true,
responsive_web_graphql_timeline_navigation_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, responsive_web_graphql_skip_user_profile_image_extensions_enabled: false,
premium_content_api_read_enabled: false, premium_content_api_read_enabled: false,
communities_web_enable_tweet_community_results_fetch: true, communities_web_enable_tweet_community_results_fetch: true,
@@ -216,6 +218,11 @@ export function buildListsFeatures(): Record<string, boolean> {
responsive_web_grok_imagine_annotation_enabled: true, responsive_web_grok_imagine_annotation_enabled: true,
responsive_web_grok_community_note_auto_translation_is_enabled: false, responsive_web_grok_community_note_auto_translation_is_enabled: false,
responsive_web_enhance_cards_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,
}); });
} }
+11 -1
View File
@@ -4,7 +4,7 @@ import os from 'node:os';
import path from 'node:path'; import path from 'node:path';
import { afterEach, describe, expect, it } from 'vitest'; import { afterEach, describe, expect, it } from 'vitest';
import { clearFeatureOverridesCache, refreshFeatureOverridesCache } from '../src/lib/runtime-features.js'; 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', () => { describe('runtime-features', () => {
afterEach(() => { afterEach(() => {
@@ -110,4 +110,14 @@ describe('runtime-features', () => {
expect(search.file_flag).toBe(true); expect(search.file_flag).toBe(true);
expect(search.file_search).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);
});
}); });