diff --git a/.changeset/famous-tables-mate.md b/.changeset/famous-tables-mate.md new file mode 100644 index 000000000000..da426d1b22c3 --- /dev/null +++ b/.changeset/famous-tables-mate.md @@ -0,0 +1,7 @@ +--- +"@ledgerhq/types-live": minor +"live-mobile": minor +"@ledgerhq/live-common": minor +--- + +Add llm Reborn II feature flag for A/B Test + analytics diff --git a/apps/ledger-live-mobile/src/analytics/segment.ts b/apps/ledger-live-mobile/src/analytics/segment.ts index 26b9b56b7c2a..6cdbd3071900 100644 --- a/apps/ledger-live-mobile/src/analytics/segment.ts +++ b/apps/ledger-live-mobile/src/analytics/segment.ts @@ -107,6 +107,16 @@ const getLedgerSyncAttributes = (state: State) => { }; }; +const getRebornAttributes = () => { + if (!analyticsFeatureFlagMethod) return false; + const reborn = analyticsFeatureFlagMethod("llmRebornLP"); + + return { + llmRebornLP_A: reborn?.params?.variant === "A", + llmRebornLP_B: reborn?.params?.variant === "B", + }; +}; + const getMandatoryProperties = async (store: AppStore) => { const state: State = store.getState(); const { user } = await getOrCreateUser(); @@ -186,6 +196,7 @@ const extraProperties = async (store: AppStore) => { stakingProviders?.enabled && stakingProviders?.params?.listProvider.length; const ledgerSyncAtributes = getLedgerSyncAttributes(state); + const rebornAttributes = getRebornAttributes(); return { ...mandatoryProperties, @@ -222,6 +233,7 @@ const extraProperties = async (store: AppStore) => { nps, stakingProvidersEnabled: stakingProvidersCount || "flag not loaded", ...ledgerSyncAtributes, + ...rebornAttributes, }; }; diff --git a/libs/ledger-live-common/src/featureFlags/defaultFeatures.ts b/libs/ledger-live-common/src/featureFlags/defaultFeatures.ts index 760d63b7b13c..029e2c664990 100644 --- a/libs/ledger-live-common/src/featureFlags/defaultFeatures.ts +++ b/libs/ledger-live-common/src/featureFlags/defaultFeatures.ts @@ -526,6 +526,7 @@ export const DEFAULT_FEATURES: Features = { hourly: 2 * 24 * 60 * 60 * 1000, }, }, + llmRebornLP: { ...DEFAULT_FEATURE, params: { variant: ABTestingVariants.variantA } }, }; // Firebase SDK treat JSON values as strings diff --git a/libs/ledgerjs/packages/types-live/src/feature.ts b/libs/ledgerjs/packages/types-live/src/feature.ts index 1aeafe79608f..54960fc27da4 100644 --- a/libs/ledgerjs/packages/types-live/src/feature.ts +++ b/libs/ledgerjs/packages/types-live/src/feature.ts @@ -202,6 +202,7 @@ export type Features = CurrencyFeatures & { llMevProtection: DefaultFeature; llmNetworkBasedAddAccountFlow: DefaultFeature; llCounterValueGranularitiesRates: Feature_LlCounterValueGranularitiesRates; + llmRebornLP: Feature_LlmRebornLP; }; /** @@ -569,6 +570,9 @@ export type Feature_SpamFilteringTx = DefaultFeature; export type Feature_MemoTag = DefaultFeature; export type Feature_RecoverUpsellRedirection = DefaultFeature; +export type Feature_LlmRebornLP = Feature<{ + variant: ABTestingVariants; +}>; /** * Utils types. */