diff --git a/.cursor/debug.log b/.cursor/debug.log new file mode 100644 index 000000000..348613480 --- /dev/null +++ b/.cursor/debug.log @@ -0,0 +1,203 @@ +{"location":"useProductSync.ts:useEffect","message":"sync effect triggered","data":{"isNewProduct":true,"isVersionChanged":true,"isProductUpdated":true,"productId":"free_plan","productVersion":1,"willUpdate":true},"timestamp":1768767206353,"sessionId":"debug-session","hypothesisId":"H4"} +{"location":"useProductSync.ts:setBaseProduct","message":"updating baseProduct","data":{"frontendProductItemsCount":1,"frontendProductItems":[{"feature_id":"messages","interval":null,"included_usage":10,"reset_usage_when_enabled":true,"entitlement_id":"ent_38IUPp9xbsN9aTLxJWylhmhpSMd"}]},"timestamp":1768767206353,"sessionId":"debug-session","hypothesisId":"H4"} +{"location":"useProductSync.ts:useEffect","message":"sync effect triggered","data":{"isNewProduct":false,"isVersionChanged":false,"isProductUpdated":false,"productId":"free_plan","productVersion":1,"lastProductId":"free_plan","lastProductVersion":1,"willUpdate":false},"timestamp":1768767206354,"sessionId":"debug-session","hypothesisId":"H4"} +{"location":"useProductSync.ts:useEffect","message":"sync effect triggered","data":{"isNewProduct":false,"isVersionChanged":false,"isProductUpdated":false,"productId":"free_plan","productVersion":1,"lastProductId":"free_plan","lastProductVersion":1,"willUpdate":false},"timestamp":1768767206365,"sessionId":"debug-session","hypothesisId":"H4"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":false,"itemsSame":true,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":1,"baseProductItemsCount":1,"productItems":[{"feature_id":"messages","interval":null,"included_usage":10,"reset_usage_when_enabled":true,"entitlement_id":"ent_38IUPp9xbsN9aTLxJWylhmhpSMd"}],"baseProductItems":[{"feature_id":"messages","interval":null,"included_usage":10,"reset_usage_when_enabled":true,"entitlement_id":"ent_38IUPp9xbsN9aTLxJWylhmhpSMd"}]},"timestamp":1768767206361,"sessionId":"debug-session","hypothesisId":"H1-H3"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":false,"itemsSame":true,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":1,"baseProductItemsCount":1,"productItems":[{"feature_id":"messages","interval":null,"included_usage":10,"reset_usage_when_enabled":true,"entitlement_id":"ent_38IUPp9xbsN9aTLxJWylhmhpSMd"}],"baseProductItems":[{"feature_id":"messages","interval":null,"included_usage":10,"reset_usage_when_enabled":true,"entitlement_id":"ent_38IUPp9xbsN9aTLxJWylhmhpSMd"}]},"timestamp":1768767206361,"sessionId":"debug-session","hypothesisId":"H1-H3"} +{"location":"useProductSync.ts:useEffect","message":"sync effect triggered","data":{"isNewProduct":false,"isVersionChanged":false,"isProductUpdated":true,"productId":"free_plan","productVersion":1,"lastProductId":"free_plan","lastProductVersion":1,"willUpdate":true},"timestamp":1768767207732,"sessionId":"debug-session","hypothesisId":"H4"} +{"location":"useProductSync.ts:setBaseProduct","message":"updating baseProduct","data":{"frontendProductItemsCount":1,"frontendProductItems":[{"feature_id":"messages","interval":null,"included_usage":10,"reset_usage_when_enabled":true,"entitlement_id":"ent_38IUPp9xbsN9aTLxJWylhmhpSMd"}]},"timestamp":1768767207732,"sessionId":"debug-session","hypothesisId":"H4"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":false,"itemsSame":true,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":1,"baseProductItemsCount":1,"productItems":[{"feature_id":"messages","interval":null,"included_usage":10,"reset_usage_when_enabled":true,"entitlement_id":"ent_38IUPp9xbsN9aTLxJWylhmhpSMd"}],"baseProductItems":[{"feature_id":"messages","interval":null,"included_usage":10,"reset_usage_when_enabled":true,"entitlement_id":"ent_38IUPp9xbsN9aTLxJWylhmhpSMd"}]},"timestamp":1768767207732,"sessionId":"debug-session","hypothesisId":"H1-H3"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":false,"itemsSame":true,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":1,"baseProductItemsCount":1,"productItems":[{"feature_id":"messages","interval":null,"included_usage":10,"reset_usage_when_enabled":true,"entitlement_id":"ent_38IUPp9xbsN9aTLxJWylhmhpSMd"}],"baseProductItems":[{"feature_id":"messages","interval":null,"included_usage":10,"reset_usage_when_enabled":true,"entitlement_id":"ent_38IUPp9xbsN9aTLxJWylhmhpSMd"}]},"timestamp":1768767207733,"sessionId":"debug-session","hypothesisId":"H1-H3"} +{"location":"compareProductUtils.ts:productsAreSame:noSimilarItem","message":"no similar item found for item1","data":{"item1FeatureId":"analytics","item1Interval":null,"item1IncludedUsage":null,"items2Count":1,"items2FeatureIds":["messages"]},"timestamp":1768767208701,"sessionId":"debug-session","hypothesisId":"H2-H3"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":true,"itemsSame":false,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":2,"baseProductItemsCount":1,"productItems":[{"feature_id":"messages","interval":null,"included_usage":10,"reset_usage_when_enabled":true,"entitlement_id":"ent_38IUPp9xbsN9aTLxJWylhmhpSMd"},{"feature_id":"analytics","interval":null,"included_usage":null,"reset_usage_when_enabled":true}],"baseProductItems":[{"feature_id":"messages","interval":null,"included_usage":10,"reset_usage_when_enabled":true,"entitlement_id":"ent_38IUPp9xbsN9aTLxJWylhmhpSMd"}]},"timestamp":1768767208701,"sessionId":"debug-session","hypothesisId":"H1-H3"} +{"location":"compareProductUtils.ts:productsAreSame:noSimilarItem","message":"no similar item found for item1","data":{"item1FeatureId":"analytics","item1Interval":null,"item1IncludedUsage":null,"items2Count":1,"items2FeatureIds":["messages"]},"timestamp":1768767208701,"sessionId":"debug-session","hypothesisId":"H2-H3"} +{"location":"compareProductUtils.ts:productsAreSame:noSimilarItem","message":"no similar item found for item1","data":{"item1FeatureId":"analytics","item1Interval":null,"item1IncludedUsage":null,"items2Count":1,"items2FeatureIds":["messages"]},"timestamp":1768767208701,"sessionId":"debug-session","hypothesisId":"H2-H3"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":true,"itemsSame":false,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":2,"baseProductItemsCount":1,"productItems":[{"feature_id":"messages","interval":null,"included_usage":10,"reset_usage_when_enabled":true,"entitlement_id":"ent_38IUPp9xbsN9aTLxJWylhmhpSMd"},{"feature_id":"analytics","interval":null,"included_usage":null,"reset_usage_when_enabled":true}],"baseProductItems":[{"feature_id":"messages","interval":null,"included_usage":10,"reset_usage_when_enabled":true,"entitlement_id":"ent_38IUPp9xbsN9aTLxJWylhmhpSMd"}]},"timestamp":1768767208701,"sessionId":"debug-session","hypothesisId":"H1-H3"} +{"location":"compareProductUtils.ts:productsAreSame:noSimilarItem","message":"no similar item found for item1","data":{"item1FeatureId":"analytics","item1Interval":null,"item1IncludedUsage":null,"items2Count":1,"items2FeatureIds":["messages"]},"timestamp":1768767208702,"sessionId":"debug-session","hypothesisId":"H2-H3"} +{"location":"useProductSync.ts:useEffect","message":"sync effect triggered","data":{"isNewProduct":false,"isVersionChanged":false,"isProductUpdated":false,"productId":"free_plan","productVersion":1,"lastProductId":"free_plan","lastProductVersion":1,"willUpdate":false},"timestamp":1768767208711,"sessionId":"debug-session","hypothesisId":"H4"} +{"location":"SaveChangesBar.tsx:handleSaveClicked:start","message":"save clicked - before save","data":{"productId":"free_plan","itemsCount":2,"items":[{"feature_id":"messages","interval":null,"included_usage":10},{"feature_id":"analytics","interval":null,"included_usage":null}]},"timestamp":1768767210156,"sessionId":"debug-session","hypothesisId":"H2"} +{"location":"compareProductUtils.ts:productsAreSame:noSimilarItem","message":"no similar item found for item1","data":{"item1FeatureId":"analytics","item1Interval":null,"item1IncludedUsage":null,"items2Count":1,"items2FeatureIds":["messages"]},"timestamp":1768767217153,"sessionId":"debug-session","hypothesisId":"H2-H3"} +{"location":"useProductSync.ts:useEffect","message":"sync effect triggered","data":{"isNewProduct":false,"isVersionChanged":true,"isProductUpdated":true,"productId":"free_plan","productVersion":2,"lastProductId":"free_plan","lastProductVersion":1,"willUpdate":true},"timestamp":1768767220542,"sessionId":"debug-session","hypothesisId":"H4"} +{"location":"useProductSync.ts:setBaseProduct","message":"updating baseProduct","data":{"frontendProductItemsCount":2,"frontendProductItems":[{"feature_id":"messages","interval":null,"included_usage":10,"reset_usage_when_enabled":true,"entitlement_id":"ent_38RfHdX9I9BqCWnytV2ylYvGgnu"},{"feature_id":"analytics","entitlement_id":"ent_38RfHfo63jeH40j8nB7K1BAHLeT"}]},"timestamp":1768767220542,"sessionId":"debug-session","hypothesisId":"H4"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":false,"itemsSame":true,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":2,"baseProductItemsCount":2,"productItems":[{"feature_id":"messages","interval":null,"included_usage":10,"reset_usage_when_enabled":true,"entitlement_id":"ent_38RfHdX9I9BqCWnytV2ylYvGgnu"},{"feature_id":"analytics","entitlement_id":"ent_38RfHfo63jeH40j8nB7K1BAHLeT"}],"baseProductItems":[{"feature_id":"messages","interval":null,"included_usage":10,"reset_usage_when_enabled":true,"entitlement_id":"ent_38RfHdX9I9BqCWnytV2ylYvGgnu"},{"feature_id":"analytics","entitlement_id":"ent_38RfHfo63jeH40j8nB7K1BAHLeT"}]},"timestamp":1768767220548,"sessionId":"debug-session","hypothesisId":"H1-H3"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":false,"itemsSame":true,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":2,"baseProductItemsCount":2,"productItems":[{"feature_id":"messages","interval":null,"included_usage":10,"reset_usage_when_enabled":true,"entitlement_id":"ent_38RfHdX9I9BqCWnytV2ylYvGgnu"},{"feature_id":"analytics","entitlement_id":"ent_38RfHfo63jeH40j8nB7K1BAHLeT"}],"baseProductItems":[{"feature_id":"messages","interval":null,"included_usage":10,"reset_usage_when_enabled":true,"entitlement_id":"ent_38RfHdX9I9BqCWnytV2ylYvGgnu"},{"feature_id":"analytics","entitlement_id":"ent_38RfHfo63jeH40j8nB7K1BAHLeT"}]},"timestamp":1768767220548,"sessionId":"debug-session","hypothesisId":"H1-H3"} +{"location":"useProductSync.ts:useEffect","message":"sync effect triggered","data":{"isNewProduct":false,"isVersionChanged":false,"isProductUpdated":false,"productId":"free_plan","productVersion":2,"lastProductId":"free_plan","lastProductVersion":2,"willUpdate":false},"timestamp":1768767220550,"sessionId":"debug-session","hypothesisId":"H4"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":true,"itemsSame":false,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":1,"baseProductItemsCount":2,"productItems":[{"feature_id":"messages","interval":null,"included_usage":10,"reset_usage_when_enabled":true,"entitlement_id":"ent_38RfHdX9I9BqCWnytV2ylYvGgnu"}],"baseProductItems":[{"feature_id":"messages","interval":null,"included_usage":10,"reset_usage_when_enabled":true,"entitlement_id":"ent_38RfHdX9I9BqCWnytV2ylYvGgnu"},{"feature_id":"analytics","entitlement_id":"ent_38RfHfo63jeH40j8nB7K1BAHLeT"}]},"timestamp":1768767226001,"sessionId":"debug-session","hypothesisId":"H1-H3"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":true,"itemsSame":false,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":1,"baseProductItemsCount":2,"productItems":[{"feature_id":"messages","interval":null,"included_usage":10,"reset_usage_when_enabled":true,"entitlement_id":"ent_38RfHdX9I9BqCWnytV2ylYvGgnu"}],"baseProductItems":[{"feature_id":"messages","interval":null,"included_usage":10,"reset_usage_when_enabled":true,"entitlement_id":"ent_38RfHdX9I9BqCWnytV2ylYvGgnu"},{"feature_id":"analytics","entitlement_id":"ent_38RfHfo63jeH40j8nB7K1BAHLeT"}]},"timestamp":1768767226002,"sessionId":"debug-session","hypothesisId":"H1-H3"} +{"location":"useProductSync.ts:useEffect","message":"sync effect triggered","data":{"isNewProduct":false,"isVersionChanged":false,"isProductUpdated":false,"productId":"free_plan","productVersion":2,"lastProductId":"free_plan","lastProductVersion":2,"willUpdate":false},"timestamp":1768767226003,"sessionId":"debug-session","hypothesisId":"H4"} +{"location":"SaveChangesBar.tsx:handleSaveClicked:start","message":"save clicked - before save","data":{"productId":"free_plan","itemsCount":1,"items":[{"feature_id":"messages","interval":null,"included_usage":10}]},"timestamp":1768767226796,"sessionId":"debug-session","hypothesisId":"H2"} +{"location":"SaveChangesBar.tsx:onSuccess","message":"save onSuccess - about to refetch","data":{},"timestamp":1768767232230,"sessionId":"debug-session","hypothesisId":"H4"} +{"location":"useProductSync.ts:useEffect","message":"sync effect triggered","data":{"isNewProduct":false,"isVersionChanged":false,"isProductUpdated":true,"productId":"free_plan","productVersion":2,"lastProductId":"free_plan","lastProductVersion":2,"willUpdate":true},"timestamp":1768767233610,"sessionId":"debug-session","hypothesisId":"H4"} +{"location":"useProductSync.ts:setBaseProduct","message":"updating baseProduct","data":{"frontendProductItemsCount":1,"frontendProductItems":[{"feature_id":"messages","interval":null,"included_usage":10,"reset_usage_when_enabled":true,"entitlement_id":"ent_38RfHdX9I9BqCWnytV2ylYvGgnu"}]},"timestamp":1768767233610,"sessionId":"debug-session","hypothesisId":"H4"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":false,"itemsSame":true,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":1,"baseProductItemsCount":1,"productItems":[{"feature_id":"messages","interval":null,"included_usage":10,"reset_usage_when_enabled":true,"entitlement_id":"ent_38RfHdX9I9BqCWnytV2ylYvGgnu"}],"baseProductItems":[{"feature_id":"messages","interval":null,"included_usage":10,"reset_usage_when_enabled":true,"entitlement_id":"ent_38RfHdX9I9BqCWnytV2ylYvGgnu"}]},"timestamp":1768767233611,"sessionId":"debug-session","hypothesisId":"H1-H3"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":false,"itemsSame":true,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":1,"baseProductItemsCount":1,"productItems":[{"feature_id":"messages","interval":null,"included_usage":10,"reset_usage_when_enabled":true,"entitlement_id":"ent_38RfHdX9I9BqCWnytV2ylYvGgnu"}],"baseProductItems":[{"feature_id":"messages","interval":null,"included_usage":10,"reset_usage_when_enabled":true,"entitlement_id":"ent_38RfHdX9I9BqCWnytV2ylYvGgnu"}]},"timestamp":1768767233611,"sessionId":"debug-session","hypothesisId":"H1-H3"} +{"location":"SaveChangesBar.tsx:onSuccess:afterRefetch","message":"refetch completed","data":{},"timestamp":1768767235270,"sessionId":"debug-session","hypothesisId":"H4"} +{"location":"SaveChangesBar.tsx:handleSaveClicked:end","message":"save completed","data":{"result":true},"timestamp":1768767235270,"sessionId":"debug-session","hypothesisId":"H2"} +{"location":"compareProductUtils.ts:productsAreSame:noSimilarItem","message":"no similar item found for item1","data":{"item1FeatureId":"analytics","item1Interval":null,"item1IncludedUsage":null,"items2Count":1,"items2FeatureIds":["messages"]},"timestamp":1768767236608,"sessionId":"debug-session","hypothesisId":"H2-H3"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":true,"itemsSame":false,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":2,"baseProductItemsCount":1,"productItems":[{"feature_id":"messages","interval":null,"included_usage":10,"reset_usage_when_enabled":true,"entitlement_id":"ent_38RfHdX9I9BqCWnytV2ylYvGgnu"},{"feature_id":"analytics","interval":null,"included_usage":null,"reset_usage_when_enabled":true}],"baseProductItems":[{"feature_id":"messages","interval":null,"included_usage":10,"reset_usage_when_enabled":true,"entitlement_id":"ent_38RfHdX9I9BqCWnytV2ylYvGgnu"}]},"timestamp":1768767236608,"sessionId":"debug-session","hypothesisId":"H1-H3"} +{"location":"compareProductUtils.ts:productsAreSame:noSimilarItem","message":"no similar item found for item1","data":{"item1FeatureId":"analytics","item1Interval":null,"item1IncludedUsage":null,"items2Count":1,"items2FeatureIds":["messages"]},"timestamp":1768767236608,"sessionId":"debug-session","hypothesisId":"H2-H3"} +{"location":"compareProductUtils.ts:productsAreSame:noSimilarItem","message":"no similar item found for item1","data":{"item1FeatureId":"analytics","item1Interval":null,"item1IncludedUsage":null,"items2Count":1,"items2FeatureIds":["messages"]},"timestamp":1768767236608,"sessionId":"debug-session","hypothesisId":"H2-H3"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":true,"itemsSame":false,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":2,"baseProductItemsCount":1,"productItems":[{"feature_id":"messages","interval":null,"included_usage":10,"reset_usage_when_enabled":true,"entitlement_id":"ent_38RfHdX9I9BqCWnytV2ylYvGgnu"},{"feature_id":"analytics","interval":null,"included_usage":null,"reset_usage_when_enabled":true}],"baseProductItems":[{"feature_id":"messages","interval":null,"included_usage":10,"reset_usage_when_enabled":true,"entitlement_id":"ent_38RfHdX9I9BqCWnytV2ylYvGgnu"}]},"timestamp":1768767236608,"sessionId":"debug-session","hypothesisId":"H1-H3"} +{"location":"compareProductUtils.ts:productsAreSame:noSimilarItem","message":"no similar item found for item1","data":{"item1FeatureId":"analytics","item1Interval":null,"item1IncludedUsage":null,"items2Count":1,"items2FeatureIds":["messages"]},"timestamp":1768767236609,"sessionId":"debug-session","hypothesisId":"H2-H3"} +{"location":"useProductSync.ts:useEffect","message":"sync effect triggered","data":{"isNewProduct":false,"isVersionChanged":false,"isProductUpdated":false,"productId":"free_plan","productVersion":2,"lastProductId":"free_plan","lastProductVersion":2,"willUpdate":false},"timestamp":1768767236614,"sessionId":"debug-session","hypothesisId":"H4"} +{"location":"SaveChangesBar.tsx:handleSaveClicked:start","message":"save clicked - before save","data":{"productId":"free_plan","itemsCount":2,"items":[{"feature_id":"messages","interval":null,"included_usage":10},{"feature_id":"analytics","interval":null,"included_usage":null}]},"timestamp":1768767237868,"sessionId":"debug-session","hypothesisId":"H2"} +{"location":"SaveChangesBar.tsx:onSuccess","message":"save onSuccess - about to refetch","data":{},"timestamp":1768767242801,"sessionId":"debug-session","hypothesisId":"H4"} +{"location":"useProductSync.ts:useEffect","message":"sync effect triggered","data":{"isNewProduct":false,"isVersionChanged":false,"isProductUpdated":true,"productId":"free_plan","productVersion":2,"lastProductId":"free_plan","lastProductVersion":2,"willUpdate":true},"timestamp":1768767244180,"sessionId":"debug-session","hypothesisId":"H4"} +{"location":"useProductSync.ts:setBaseProduct","message":"updating baseProduct","data":{"frontendProductItemsCount":2,"frontendProductItems":[{"feature_id":"analytics","entitlement_id":"ent_38RfKZrFZYfWslXTJOSbeoBjzkV"},{"feature_id":"messages","interval":null,"included_usage":10,"reset_usage_when_enabled":true,"entitlement_id":"ent_38RfHdX9I9BqCWnytV2ylYvGgnu"}]},"timestamp":1768767244181,"sessionId":"debug-session","hypothesisId":"H4"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":true,"itemsSame":false,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":2,"baseProductItemsCount":2,"productItems":[{"feature_id":"messages","interval":null,"included_usage":10,"reset_usage_when_enabled":true,"entitlement_id":"ent_38RfHdX9I9BqCWnytV2ylYvGgnu"},{"feature_id":"analytics","interval":null,"included_usage":null,"reset_usage_when_enabled":true}],"baseProductItems":[{"feature_id":"analytics","entitlement_id":"ent_38RfKZrFZYfWslXTJOSbeoBjzkV"},{"feature_id":"messages","interval":null,"included_usage":10,"reset_usage_when_enabled":true,"entitlement_id":"ent_38RfHdX9I9BqCWnytV2ylYvGgnu"}]},"timestamp":1768767244181,"sessionId":"debug-session","hypothesisId":"H1-H3"} +{"location":"compareItemUtils.ts:featureItemsAreSame","message":"feature items comparison failed","data":{"featureId":"analytics","failedChecks":[{"check":"reset_usage_when_enabled","message":"Reset usage when enabled different: true !== false"}],"item1ResetUsage":true,"item2ResetUsage":false,"item1Interval":null,"item1IncludedUsage":null},"timestamp":1768767244181,"sessionId":"debug-session","hypothesisId":"H3"} +{"location":"compareItemUtils.ts:featureItemsAreSame","message":"feature items comparison failed","data":{"featureId":"analytics","failedChecks":[{"check":"reset_usage_when_enabled","message":"Reset usage when enabled different: true !== false"}],"item1ResetUsage":true,"item2ResetUsage":false,"item1Interval":null,"item1IncludedUsage":null},"timestamp":1768767244181,"sessionId":"debug-session","hypothesisId":"H3"} +{"location":"compareProductUtils.ts:productsAreSame:itemsDifferent","message":"items not same after comparison","data":{"item1":"{\"feature_id\":\"analytics\",\"feature_type\":\"static\",\"included_usage\":null,\"interval\":null,\"price\":null,\"tiers\":null,\"billing_units\":1,\"entity_feature_id\":null,\"reset_usage_when_enabled\":true,\"config\":{\"on_increase\":\"prorate_immediately\",\"on_decrease\":\"prorate_immediately\"}}","item2":"{\"feature_id\":\"analytics\",\"entity_feature_id\":null,\"entitlement_id\":\"ent_38RfKZrFZYfWslXTJOSbeoBjzkV\",\"feature_type\":\"static\",\"reset_usage_when_enabled\":false,\"config\":{\"on_increase\":\"prorate_immediately\",\"on_decrease\":\"prorate_immediately\"}}","featureId":"analytics"},"timestamp":1768767244181,"sessionId":"debug-session","hypothesisId":"H2-H3"} +{"location":"compareProductUtils.ts:productsAreSame:itemsDifferent","message":"items not same after comparison","data":{"item1":"{\"feature_id\":\"analytics\",\"feature_type\":\"static\",\"included_usage\":null,\"interval\":null,\"price\":null,\"tiers\":null,\"billing_units\":1,\"entity_feature_id\":null,\"reset_usage_when_enabled\":true,\"config\":{\"on_increase\":\"prorate_immediately\",\"on_decrease\":\"prorate_immediately\"}}","item2":"{\"feature_id\":\"analytics\",\"entity_feature_id\":null,\"entitlement_id\":\"ent_38RfKZrFZYfWslXTJOSbeoBjzkV\",\"feature_type\":\"static\",\"reset_usage_when_enabled\":false,\"config\":{\"on_increase\":\"prorate_immediately\",\"on_decrease\":\"prorate_immediately\"}}","featureId":"analytics"},"timestamp":1768767244182,"sessionId":"debug-session","hypothesisId":"H2-H3"} +{"location":"compareItemUtils.ts:featureItemsAreSame","message":"feature items comparison failed","data":{"featureId":"analytics","failedChecks":[{"check":"reset_usage_when_enabled","message":"Reset usage when enabled different: true !== false"}],"item1ResetUsage":true,"item2ResetUsage":false,"item1Interval":null,"item1IncludedUsage":null},"timestamp":1768767244182,"sessionId":"debug-session","hypothesisId":"H3"} +{"location":"compareProductUtils.ts:productsAreSame:itemsDifferent","message":"items not same after comparison","data":{"item1":"{\"feature_id\":\"analytics\",\"feature_type\":\"static\",\"included_usage\":null,\"interval\":null,\"price\":null,\"tiers\":null,\"billing_units\":1,\"entity_feature_id\":null,\"reset_usage_when_enabled\":true,\"config\":{\"on_increase\":\"prorate_immediately\",\"on_decrease\":\"prorate_immediately\"}}","item2":"{\"feature_id\":\"analytics\",\"entity_feature_id\":null,\"entitlement_id\":\"ent_38RfKZrFZYfWslXTJOSbeoBjzkV\",\"feature_type\":\"static\",\"reset_usage_when_enabled\":false,\"config\":{\"on_increase\":\"prorate_immediately\",\"on_decrease\":\"prorate_immediately\"}}","featureId":"analytics"},"timestamp":1768767244182,"sessionId":"debug-session","hypothesisId":"H2-H3"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":true,"itemsSame":false,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":2,"baseProductItemsCount":2,"productItems":[{"feature_id":"messages","interval":null,"included_usage":10,"reset_usage_when_enabled":true,"entitlement_id":"ent_38RfHdX9I9BqCWnytV2ylYvGgnu"},{"feature_id":"analytics","interval":null,"included_usage":null,"reset_usage_when_enabled":true}],"baseProductItems":[{"feature_id":"analytics","entitlement_id":"ent_38RfKZrFZYfWslXTJOSbeoBjzkV"},{"feature_id":"messages","interval":null,"included_usage":10,"reset_usage_when_enabled":true,"entitlement_id":"ent_38RfHdX9I9BqCWnytV2ylYvGgnu"}]},"timestamp":1768767244182,"sessionId":"debug-session","hypothesisId":"H1-H3"} +{"location":"compareItemUtils.ts:featureItemsAreSame","message":"feature items comparison failed","data":{"featureId":"analytics","failedChecks":[{"check":"reset_usage_when_enabled","message":"Reset usage when enabled different: true !== false"}],"item1ResetUsage":true,"item2ResetUsage":false,"item1Interval":null,"item1IncludedUsage":null},"timestamp":1768767244182,"sessionId":"debug-session","hypothesisId":"H3"} +{"location":"compareProductUtils.ts:productsAreSame:itemsDifferent","message":"items not same after comparison","data":{"item1":"{\"feature_id\":\"analytics\",\"feature_type\":\"static\",\"included_usage\":null,\"interval\":null,\"price\":null,\"tiers\":null,\"billing_units\":1,\"entity_feature_id\":null,\"reset_usage_when_enabled\":true,\"config\":{\"on_increase\":\"prorate_immediately\",\"on_decrease\":\"prorate_immediately\"}}","item2":"{\"feature_id\":\"analytics\",\"entity_feature_id\":null,\"entitlement_id\":\"ent_38RfKZrFZYfWslXTJOSbeoBjzkV\",\"feature_type\":\"static\",\"reset_usage_when_enabled\":false,\"config\":{\"on_increase\":\"prorate_immediately\",\"on_decrease\":\"prorate_immediately\"}}","featureId":"analytics"},"timestamp":1768767244182,"sessionId":"debug-session","hypothesisId":"H2-H3"} +{"location":"SaveChangesBar.tsx:onSuccess:afterRefetch","message":"refetch completed","data":{},"timestamp":1768767245839,"sessionId":"debug-session","hypothesisId":"H4"} +{"location":"SaveChangesBar.tsx:handleSaveClicked:end","message":"save completed","data":{"result":true},"timestamp":1768767245839,"sessionId":"debug-session","hypothesisId":"H2"} +{"location":"compareItemUtils.ts:featureItemsAreSame","message":"feature items comparison failed","data":{"featureId":"analytics","failedChecks":[{"check":"reset_usage_when_enabled","message":"Reset usage when enabled different: true !== false"}],"item1ResetUsage":true,"item2ResetUsage":false,"item1Interval":null,"item1IncludedUsage":null},"timestamp":1768767394297,"sessionId":"debug-session","hypothesisId":"H3"} +{"location":"compareItemUtils.ts:featureItemsAreSame","message":"feature items comparison failed","data":{"featureId":"analytics","failedChecks":[{"check":"reset_usage_when_enabled","message":"Reset usage when enabled different: true !== false"}],"item1ResetUsage":true,"item2ResetUsage":false,"item1Interval":null,"item1IncludedUsage":null},"timestamp":1768767394298,"sessionId":"debug-session","hypothesisId":"H3"} +{"location":"compareProductUtils.ts:productsAreSame:itemsDifferent","message":"items not same after comparison","data":{"item1":"{\"feature_id\":\"analytics\",\"feature_type\":\"static\",\"included_usage\":null,\"interval\":null,\"price\":null,\"tiers\":null,\"billing_units\":1,\"entity_feature_id\":null,\"reset_usage_when_enabled\":true,\"config\":{\"on_increase\":\"prorate_immediately\",\"on_decrease\":\"prorate_immediately\"}}","item2":"{\"feature_id\":\"analytics\",\"entity_feature_id\":null,\"entitlement_id\":\"ent_38RfKZrFZYfWslXTJOSbeoBjzkV\",\"feature_type\":\"static\",\"reset_usage_when_enabled\":false,\"config\":{\"on_increase\":\"prorate_immediately\",\"on_decrease\":\"prorate_immediately\"}}","featureId":"analytics"},"timestamp":1768767394297,"sessionId":"debug-session","hypothesisId":"H2-H3"} +{"location":"compareProductUtils.ts:productsAreSame:itemsDifferent","message":"items not same after comparison","data":{"item1":"{\"feature_id\":\"analytics\",\"feature_type\":\"static\",\"included_usage\":null,\"interval\":null,\"price\":null,\"tiers\":null,\"billing_units\":1,\"entity_feature_id\":null,\"reset_usage_when_enabled\":true,\"config\":{\"on_increase\":\"prorate_immediately\",\"on_decrease\":\"prorate_immediately\"}}","item2":"{\"feature_id\":\"analytics\",\"entity_feature_id\":null,\"entitlement_id\":\"ent_38RfKZrFZYfWslXTJOSbeoBjzkV\",\"feature_type\":\"static\",\"reset_usage_when_enabled\":false,\"config\":{\"on_increase\":\"prorate_immediately\",\"on_decrease\":\"prorate_immediately\"}}","featureId":"analytics"},"timestamp":1768767394298,"sessionId":"debug-session","hypothesisId":"H2-H3"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":true,"itemsSame":false,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":2,"baseProductItemsCount":2,"productItems":[{"feature_id":"messages","interval":null,"included_usage":10,"reset_usage_when_enabled":true,"entitlement_id":"ent_38RfHdX9I9BqCWnytV2ylYvGgnu"},{"feature_id":"analytics","interval":null,"included_usage":null,"reset_usage_when_enabled":true}],"baseProductItems":[{"feature_id":"analytics","entitlement_id":"ent_38RfKZrFZYfWslXTJOSbeoBjzkV"},{"feature_id":"messages","interval":null,"included_usage":10,"reset_usage_when_enabled":true,"entitlement_id":"ent_38RfHdX9I9BqCWnytV2ylYvGgnu"}]},"timestamp":1768767394297,"sessionId":"debug-session","hypothesisId":"H1-H3"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":true,"itemsSame":false,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":2,"baseProductItemsCount":2,"productItems":[{"feature_id":"messages","interval":null,"included_usage":10,"reset_usage_when_enabled":true,"entitlement_id":"ent_38RfHdX9I9BqCWnytV2ylYvGgnu"},{"feature_id":"analytics","interval":null,"included_usage":null,"reset_usage_when_enabled":true}],"baseProductItems":[{"feature_id":"analytics","entitlement_id":"ent_38RfKZrFZYfWslXTJOSbeoBjzkV"},{"feature_id":"messages","interval":null,"included_usage":10,"reset_usage_when_enabled":true,"entitlement_id":"ent_38RfHdX9I9BqCWnytV2ylYvGgnu"}]},"timestamp":1768767394298,"sessionId":"debug-session","hypothesisId":"H1-H3"} +{"location":"compareItemUtils.ts:featureItemsAreSame","message":"feature items comparison failed","data":{"featureId":"analytics","failedChecks":[{"check":"reset_usage_when_enabled","message":"Reset usage when enabled different: true !== false"}],"item1ResetUsage":true,"item2ResetUsage":false,"item1Interval":null,"item1IncludedUsage":null},"timestamp":1768767394298,"sessionId":"debug-session","hypothesisId":"H3"} +{"location":"compareProductUtils.ts:productsAreSame:itemsDifferent","message":"items not same after comparison","data":{"item1":"{\"feature_id\":\"analytics\",\"feature_type\":\"static\",\"included_usage\":null,\"interval\":null,\"price\":null,\"tiers\":null,\"billing_units\":1,\"entity_feature_id\":null,\"reset_usage_when_enabled\":true,\"config\":{\"on_increase\":\"prorate_immediately\",\"on_decrease\":\"prorate_immediately\"}}","item2":"{\"feature_id\":\"analytics\",\"entity_feature_id\":null,\"entitlement_id\":\"ent_38RfKZrFZYfWslXTJOSbeoBjzkV\",\"feature_type\":\"static\",\"reset_usage_when_enabled\":false,\"config\":{\"on_increase\":\"prorate_immediately\",\"on_decrease\":\"prorate_immediately\"}}","featureId":"analytics"},"timestamp":1768767394298,"sessionId":"debug-session","hypothesisId":"H2-H3"} +{"location":"compareItemUtils.ts:featureItemsAreSame","message":"feature items comparison failed","data":{"featureId":"analytics","failedChecks":[{"check":"reset_usage_when_enabled","message":"Reset usage when enabled different: true !== false"}],"item1ResetUsage":true,"item2ResetUsage":false,"item1Interval":null,"item1IncludedUsage":null},"timestamp":1768767394297,"sessionId":"debug-session","hypothesisId":"H3"} +{"location":"compareProductUtils.ts:productsAreSame:itemsDifferent","message":"items not same after comparison","data":{"item1":"{\"feature_id\":\"analytics\",\"feature_type\":\"static\",\"included_usage\":null,\"interval\":null,\"price\":null,\"tiers\":null,\"billing_units\":1,\"entity_feature_id\":null,\"reset_usage_when_enabled\":true,\"config\":{\"on_increase\":\"prorate_immediately\",\"on_decrease\":\"prorate_immediately\"}}","item2":"{\"feature_id\":\"analytics\",\"entity_feature_id\":null,\"entitlement_id\":\"ent_38RfKZrFZYfWslXTJOSbeoBjzkV\",\"feature_type\":\"static\",\"reset_usage_when_enabled\":false,\"config\":{\"on_increase\":\"prorate_immediately\",\"on_decrease\":\"prorate_immediately\"}}","featureId":"analytics"},"timestamp":1768767394297,"sessionId":"debug-session","hypothesisId":"H2-H3"} +{"location":"useProductSync.ts:useEffect","message":"sync effect triggered","data":{"isNewProduct":true,"isVersionChanged":true,"isProductUpdated":true,"productId":"free_plan","productVersion":2,"willUpdate":true},"timestamp":1768767394313,"sessionId":"debug-session","hypothesisId":"H4"} +{"location":"useProductSync.ts:setBaseProduct","message":"updating baseProduct","data":{"frontendProductItemsCount":2,"frontendProductItems":[{"feature_id":"analytics","entitlement_id":"ent_38RfKZrFZYfWslXTJOSbeoBjzkV"},{"feature_id":"messages","interval":null,"included_usage":10,"reset_usage_when_enabled":true,"entitlement_id":"ent_38RfHdX9I9BqCWnytV2ylYvGgnu"}]},"timestamp":1768767394314,"sessionId":"debug-session","hypothesisId":"H4"} +{"location":"useProductSync.ts:useEffect","message":"sync effect triggered","data":{"isNewProduct":false,"isVersionChanged":false,"isProductUpdated":false,"productId":"free_plan","productVersion":2,"lastProductId":"free_plan","lastProductVersion":2,"willUpdate":false},"timestamp":1768767394318,"sessionId":"debug-session","hypothesisId":"H4"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":false,"itemsSame":true,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":2,"baseProductItemsCount":2,"productItems":[{"feature_id":"analytics","entitlement_id":"ent_38RfKZrFZYfWslXTJOSbeoBjzkV"},{"feature_id":"messages","interval":null,"included_usage":10,"reset_usage_when_enabled":true,"entitlement_id":"ent_38RfHdX9I9BqCWnytV2ylYvGgnu"}],"baseProductItems":[{"feature_id":"analytics","entitlement_id":"ent_38RfKZrFZYfWslXTJOSbeoBjzkV"},{"feature_id":"messages","interval":null,"included_usage":10,"reset_usage_when_enabled":true,"entitlement_id":"ent_38RfHdX9I9BqCWnytV2ylYvGgnu"}]},"timestamp":1768767394332,"sessionId":"debug-session","hypothesisId":"H1-H3"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":false,"itemsSame":true,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":2,"baseProductItemsCount":2,"productItems":[{"feature_id":"analytics","entitlement_id":"ent_38RfKZrFZYfWslXTJOSbeoBjzkV"},{"feature_id":"messages","interval":null,"included_usage":10,"reset_usage_when_enabled":true,"entitlement_id":"ent_38RfHdX9I9BqCWnytV2ylYvGgnu"}],"baseProductItems":[{"feature_id":"analytics","entitlement_id":"ent_38RfKZrFZYfWslXTJOSbeoBjzkV"},{"feature_id":"messages","interval":null,"included_usage":10,"reset_usage_when_enabled":true,"entitlement_id":"ent_38RfHdX9I9BqCWnytV2ylYvGgnu"}]},"timestamp":1768767394332,"sessionId":"debug-session","hypothesisId":"H1-H3"} +{"location":"useProductSync.ts:useEffect","message":"sync effect triggered","data":{"isNewProduct":false,"isVersionChanged":false,"isProductUpdated":false,"productId":"free_plan","productVersion":2,"lastProductId":"free_plan","lastProductVersion":2,"willUpdate":false},"timestamp":1768767394337,"sessionId":"debug-session","hypothesisId":"H4"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":true,"itemsSame":false,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":1,"baseProductItemsCount":2,"productItems":[{"feature_id":"messages","interval":null,"included_usage":10,"reset_usage_when_enabled":true,"entitlement_id":"ent_38RfHdX9I9BqCWnytV2ylYvGgnu"}],"baseProductItems":[{"feature_id":"analytics","entitlement_id":"ent_38RfKZrFZYfWslXTJOSbeoBjzkV"},{"feature_id":"messages","interval":null,"included_usage":10,"reset_usage_when_enabled":true,"entitlement_id":"ent_38RfHdX9I9BqCWnytV2ylYvGgnu"}]},"timestamp":1768767501092,"sessionId":"debug-session","hypothesisId":"H1-H3"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":true,"itemsSame":false,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":1,"baseProductItemsCount":2,"productItems":[{"feature_id":"messages","interval":null,"included_usage":10,"reset_usage_when_enabled":true,"entitlement_id":"ent_38RfHdX9I9BqCWnytV2ylYvGgnu"}],"baseProductItems":[{"feature_id":"analytics","entitlement_id":"ent_38RfKZrFZYfWslXTJOSbeoBjzkV"},{"feature_id":"messages","interval":null,"included_usage":10,"reset_usage_when_enabled":true,"entitlement_id":"ent_38RfHdX9I9BqCWnytV2ylYvGgnu"}]},"timestamp":1768767501092,"sessionId":"debug-session","hypothesisId":"H1-H3"} +{"location":"useProductSync.ts:useEffect","message":"sync effect triggered","data":{"isNewProduct":false,"isVersionChanged":false,"isProductUpdated":false,"productId":"free_plan","productVersion":2,"lastProductId":"free_plan","lastProductVersion":2,"willUpdate":false},"timestamp":1768767501096,"sessionId":"debug-session","hypothesisId":"H4"} +{"location":"SaveChangesBar.tsx:handleSaveClicked:start","message":"save clicked - before save","data":{"productId":"free_plan","itemsCount":1,"items":[{"feature_id":"messages","interval":null,"included_usage":10}]},"timestamp":1768767501888,"sessionId":"debug-session","hypothesisId":"H2"} +{"location":"SaveChangesBar.tsx:onSuccess","message":"save onSuccess - about to refetch","data":{},"timestamp":1768767508153,"sessionId":"debug-session","hypothesisId":"H4"} +{"location":"useProductSync.ts:useEffect","message":"sync effect triggered","data":{"isNewProduct":false,"isVersionChanged":false,"isProductUpdated":true,"productId":"free_plan","productVersion":2,"lastProductId":"free_plan","lastProductVersion":2,"willUpdate":true},"timestamp":1768767509550,"sessionId":"debug-session","hypothesisId":"H4"} +{"location":"useProductSync.ts:setBaseProduct","message":"updating baseProduct","data":{"frontendProductItemsCount":1,"frontendProductItems":[{"feature_id":"messages","interval":null,"included_usage":10,"reset_usage_when_enabled":true,"entitlement_id":"ent_38RfHdX9I9BqCWnytV2ylYvGgnu"}]},"timestamp":1768767509550,"sessionId":"debug-session","hypothesisId":"H4"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":false,"itemsSame":true,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":1,"baseProductItemsCount":1,"productItems":[{"feature_id":"messages","interval":null,"included_usage":10,"reset_usage_when_enabled":true,"entitlement_id":"ent_38RfHdX9I9BqCWnytV2ylYvGgnu"}],"baseProductItems":[{"feature_id":"messages","interval":null,"included_usage":10,"reset_usage_when_enabled":true,"entitlement_id":"ent_38RfHdX9I9BqCWnytV2ylYvGgnu"}]},"timestamp":1768767509550,"sessionId":"debug-session","hypothesisId":"H1-H3"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":false,"itemsSame":true,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":1,"baseProductItemsCount":1,"productItems":[{"feature_id":"messages","interval":null,"included_usage":10,"reset_usage_when_enabled":true,"entitlement_id":"ent_38RfHdX9I9BqCWnytV2ylYvGgnu"}],"baseProductItems":[{"feature_id":"messages","interval":null,"included_usage":10,"reset_usage_when_enabled":true,"entitlement_id":"ent_38RfHdX9I9BqCWnytV2ylYvGgnu"}]},"timestamp":1768767509551,"sessionId":"debug-session","hypothesisId":"H1-H3"} +{"location":"SaveChangesBar.tsx:onSuccess:afterRefetch","message":"refetch completed","data":{},"timestamp":1768767511210,"sessionId":"debug-session","hypothesisId":"H4"} +{"location":"SaveChangesBar.tsx:handleSaveClicked:end","message":"save completed","data":{"result":true},"timestamp":1768767511210,"sessionId":"debug-session","hypothesisId":"H2"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":true,"itemsSame":false,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":2,"baseProductItemsCount":1,"productItems":[{"feature_id":"messages","interval":null,"included_usage":10,"reset_usage_when_enabled":true,"entitlement_id":"ent_38RfHdX9I9BqCWnytV2ylYvGgnu"},{"feature_id":"analytics","interval":null,"included_usage":null}],"baseProductItems":[{"feature_id":"messages","interval":null,"included_usage":10,"reset_usage_when_enabled":true,"entitlement_id":"ent_38RfHdX9I9BqCWnytV2ylYvGgnu"}]},"timestamp":1768767525751,"sessionId":"debug-session","hypothesisId":"H1-H3"} +{"location":"compareProductUtils.ts:productsAreSame:noSimilarItem","message":"no similar item found for item1","data":{"item1FeatureId":"analytics","item1Interval":null,"item1IncludedUsage":null,"items2Count":1,"items2FeatureIds":["messages"]},"timestamp":1768767525751,"sessionId":"debug-session","hypothesisId":"H2-H3"} +{"location":"compareProductUtils.ts:productsAreSame:noSimilarItem","message":"no similar item found for item1","data":{"item1FeatureId":"analytics","item1Interval":null,"item1IncludedUsage":null,"items2Count":1,"items2FeatureIds":["messages"]},"timestamp":1768767525751,"sessionId":"debug-session","hypothesisId":"H2-H3"} +{"location":"compareProductUtils.ts:productsAreSame:noSimilarItem","message":"no similar item found for item1","data":{"item1FeatureId":"analytics","item1Interval":null,"item1IncludedUsage":null,"items2Count":1,"items2FeatureIds":["messages"]},"timestamp":1768767525751,"sessionId":"debug-session","hypothesisId":"H2-H3"} +{"location":"compareProductUtils.ts:productsAreSame:noSimilarItem","message":"no similar item found for item1","data":{"item1FeatureId":"analytics","item1Interval":null,"item1IncludedUsage":null,"items2Count":1,"items2FeatureIds":["messages"]},"timestamp":1768767525751,"sessionId":"debug-session","hypothesisId":"H2-H3"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":true,"itemsSame":false,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":2,"baseProductItemsCount":1,"productItems":[{"feature_id":"messages","interval":null,"included_usage":10,"reset_usage_when_enabled":true,"entitlement_id":"ent_38RfHdX9I9BqCWnytV2ylYvGgnu"},{"feature_id":"analytics","interval":null,"included_usage":null}],"baseProductItems":[{"feature_id":"messages","interval":null,"included_usage":10,"reset_usage_when_enabled":true,"entitlement_id":"ent_38RfHdX9I9BqCWnytV2ylYvGgnu"}]},"timestamp":1768767525751,"sessionId":"debug-session","hypothesisId":"H1-H3"} +{"location":"useProductSync.ts:useEffect","message":"sync effect triggered","data":{"isNewProduct":false,"isVersionChanged":false,"isProductUpdated":false,"productId":"free_plan","productVersion":2,"lastProductId":"free_plan","lastProductVersion":2,"willUpdate":false},"timestamp":1768767525757,"sessionId":"debug-session","hypothesisId":"H4"} +{"location":"SaveChangesBar.tsx:handleSaveClicked:start","message":"save clicked - before save","data":{"productId":"free_plan","itemsCount":2,"items":[{"feature_id":"messages","interval":null,"included_usage":10},{"feature_id":"analytics","interval":null,"included_usage":null}]},"timestamp":1768767526804,"sessionId":"debug-session","hypothesisId":"H2"} +{"location":"SaveChangesBar.tsx:onSuccess","message":"save onSuccess - about to refetch","data":{},"timestamp":1768767531740,"sessionId":"debug-session","hypothesisId":"H4"} +{"location":"useProductSync.ts:useEffect","message":"sync effect triggered","data":{"isNewProduct":false,"isVersionChanged":false,"isProductUpdated":true,"productId":"free_plan","productVersion":2,"lastProductId":"free_plan","lastProductVersion":2,"willUpdate":true},"timestamp":1768767533130,"sessionId":"debug-session","hypothesisId":"H4"} +{"location":"useProductSync.ts:setBaseProduct","message":"updating baseProduct","data":{"frontendProductItemsCount":2,"frontendProductItems":[{"feature_id":"analytics","entitlement_id":"ent_38RfuuS2oOJiQBLwQrlKxo8TOM4"},{"feature_id":"messages","interval":null,"included_usage":10,"reset_usage_when_enabled":true,"entitlement_id":"ent_38RfHdX9I9BqCWnytV2ylYvGgnu"}]},"timestamp":1768767533131,"sessionId":"debug-session","hypothesisId":"H4"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":false,"itemsSame":true,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":2,"baseProductItemsCount":2,"productItems":[{"feature_id":"messages","interval":null,"included_usage":10,"reset_usage_when_enabled":true,"entitlement_id":"ent_38RfHdX9I9BqCWnytV2ylYvGgnu"},{"feature_id":"analytics","interval":null,"included_usage":null}],"baseProductItems":[{"feature_id":"analytics","entitlement_id":"ent_38RfuuS2oOJiQBLwQrlKxo8TOM4"},{"feature_id":"messages","interval":null,"included_usage":10,"reset_usage_when_enabled":true,"entitlement_id":"ent_38RfHdX9I9BqCWnytV2ylYvGgnu"}]},"timestamp":1768767533131,"sessionId":"debug-session","hypothesisId":"H1-H3"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":false,"itemsSame":true,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":2,"baseProductItemsCount":2,"productItems":[{"feature_id":"messages","interval":null,"included_usage":10,"reset_usage_when_enabled":true,"entitlement_id":"ent_38RfHdX9I9BqCWnytV2ylYvGgnu"},{"feature_id":"analytics","interval":null,"included_usage":null}],"baseProductItems":[{"feature_id":"analytics","entitlement_id":"ent_38RfuuS2oOJiQBLwQrlKxo8TOM4"},{"feature_id":"messages","interval":null,"included_usage":10,"reset_usage_when_enabled":true,"entitlement_id":"ent_38RfHdX9I9BqCWnytV2ylYvGgnu"}]},"timestamp":1768767533131,"sessionId":"debug-session","hypothesisId":"H1-H3"} +{"location":"SaveChangesBar.tsx:onSuccess:afterRefetch","message":"refetch completed","data":{},"timestamp":1768767534789,"sessionId":"debug-session","hypothesisId":"H4"} +{"location":"SaveChangesBar.tsx:handleSaveClicked:end","message":"save completed","data":{"result":true},"timestamp":1768767534789,"sessionId":"debug-session","hypothesisId":"H2"} +{"location":"useProductSync.ts:useEffect","message":"sync effect triggered","data":{"isNewProduct":false,"isVersionChanged":false,"isProductUpdated":false,"productId":"free_plan","productVersion":2,"lastProductId":"free_plan","lastProductVersion":2,"willUpdate":false},"timestamp":1768767554592,"sessionId":"debug-session","hypothesisId":"H4"} +{"location":"useProductSync.ts:useEffect","message":"sync effect triggered","data":{"isNewProduct":true,"isVersionChanged":true,"isProductUpdated":true,"productId":"free_plan","productVersion":2,"willUpdate":true},"timestamp":1768767559098,"sessionId":"debug-session","hypothesisId":"H4"} +{"location":"useProductSync.ts:setBaseProduct","message":"updating baseProduct","data":{"frontendProductItemsCount":2,"frontendProductItems":[{"feature_id":"analytics","entitlement_id":"ent_38RfuuS2oOJiQBLwQrlKxo8TOM4"},{"feature_id":"messages","interval":null,"included_usage":10,"reset_usage_when_enabled":true,"entitlement_id":"ent_38RfHdX9I9BqCWnytV2ylYvGgnu"}]},"timestamp":1768767559098,"sessionId":"debug-session","hypothesisId":"H4"} +{"location":"useProductSync.ts:useEffect","message":"sync effect triggered","data":{"isNewProduct":false,"isVersionChanged":false,"isProductUpdated":false,"productId":"free_plan","productVersion":2,"lastProductId":"free_plan","lastProductVersion":2,"willUpdate":false},"timestamp":1768767559099,"sessionId":"debug-session","hypothesisId":"H4"} +{"location":"useProductSync.ts:useEffect","message":"sync effect triggered","data":{"isNewProduct":false,"isVersionChanged":false,"isProductUpdated":false,"productId":"free_plan","productVersion":2,"lastProductId":"free_plan","lastProductVersion":2,"willUpdate":false},"timestamp":1768767559112,"sessionId":"debug-session","hypothesisId":"H4"} +{"location":"compareProductUtils.ts:productsAreSame:noSimilarItem","message":"no similar item found for item1","data":{"item1FeatureId":"seats","item1Interval":null,"item1IncludedUsage":null,"items2Count":2,"items2FeatureIds":["analytics","messages"]},"timestamp":1768767564109,"sessionId":"debug-session","hypothesisId":"H2-H3"} +{"location":"compareProductUtils.ts:productsAreSame:noSimilarItem","message":"no similar item found for item1","data":{"item1FeatureId":"seats","item1Interval":null,"item1IncludedUsage":null,"items2Count":2,"items2FeatureIds":["analytics","messages"]},"timestamp":1768767564109,"sessionId":"debug-session","hypothesisId":"H2-H3"} +{"location":"compareProductUtils.ts:productsAreSame:noSimilarItem","message":"no similar item found for item1","data":{"item1FeatureId":"seats","item1Interval":null,"item1IncludedUsage":null,"items2Count":2,"items2FeatureIds":["analytics","messages"]},"timestamp":1768767564109,"sessionId":"debug-session","hypothesisId":"H2-H3"} +{"location":"compareProductUtils.ts:productsAreSame:noSimilarItem","message":"no similar item found for item1","data":{"item1FeatureId":"seats","item1Interval":null,"item1IncludedUsage":null,"items2Count":2,"items2FeatureIds":["analytics","messages"]},"timestamp":1768767564109,"sessionId":"debug-session","hypothesisId":"H2-H3"} +{"location":"compareProductUtils.ts:productsAreSame:noSimilarItem","message":"no similar item found for item1","data":{"item1FeatureId":"seats","item1Interval":"month","item1IncludedUsage":null,"items2Count":2,"items2FeatureIds":["analytics","messages"]},"timestamp":1768767568548,"sessionId":"debug-session","hypothesisId":"H2-H3"} +{"location":"compareProductUtils.ts:productsAreSame:noSimilarItem","message":"no similar item found for item1","data":{"item1FeatureId":"seats","item1Interval":"month","item1IncludedUsage":null,"items2Count":2,"items2FeatureIds":["analytics","messages"]},"timestamp":1768767568548,"sessionId":"debug-session","hypothesisId":"H2-H3"} +{"location":"compareProductUtils.ts:productsAreSame:noSimilarItem","message":"no similar item found for item1","data":{"item1FeatureId":"seats","item1Interval":"month","item1IncludedUsage":null,"items2Count":2,"items2FeatureIds":["analytics","messages"]},"timestamp":1768767568548,"sessionId":"debug-session","hypothesisId":"H2-H3"} +{"location":"compareProductUtils.ts:productsAreSame:noSimilarItem","message":"no similar item found for item1","data":{"item1FeatureId":"seats","item1Interval":"month","item1IncludedUsage":null,"items2Count":2,"items2FeatureIds":["analytics","messages"]},"timestamp":1768767568548,"sessionId":"debug-session","hypothesisId":"H2-H3"} +{"location":"compareProductUtils.ts:productsAreSame:noSimilarItem","message":"no similar item found for item1","data":{"item1FeatureId":"seats","item1Interval":"month","item1IncludedUsage":2,"items2Count":2,"items2FeatureIds":["analytics","messages"]},"timestamp":1768767569476,"sessionId":"debug-session","hypothesisId":"H2-H3"} +{"location":"compareProductUtils.ts:productsAreSame:noSimilarItem","message":"no similar item found for item1","data":{"item1FeatureId":"seats","item1Interval":"month","item1IncludedUsage":2,"items2Count":2,"items2FeatureIds":["analytics","messages"]},"timestamp":1768767569476,"sessionId":"debug-session","hypothesisId":"H2-H3"} +{"location":"compareProductUtils.ts:productsAreSame:noSimilarItem","message":"no similar item found for item1","data":{"item1FeatureId":"seats","item1Interval":"month","item1IncludedUsage":2,"items2Count":2,"items2FeatureIds":["analytics","messages"]},"timestamp":1768767569476,"sessionId":"debug-session","hypothesisId":"H2-H3"} +{"location":"compareProductUtils.ts:productsAreSame:noSimilarItem","message":"no similar item found for item1","data":{"item1FeatureId":"seats","item1Interval":"month","item1IncludedUsage":2,"items2Count":2,"items2FeatureIds":["analytics","messages"]},"timestamp":1768767569476,"sessionId":"debug-session","hypothesisId":"H2-H3"} +{"location":"compareProductUtils.ts:productsAreSame:noSimilarItem","message":"no similar item found for item1","data":{"item1FeatureId":"seats","item1Interval":"month","item1IncludedUsage":25,"items2Count":2,"items2FeatureIds":["analytics","messages"]},"timestamp":1768767569717,"sessionId":"debug-session","hypothesisId":"H2-H3"} +{"location":"compareProductUtils.ts:productsAreSame:noSimilarItem","message":"no similar item found for item1","data":{"item1FeatureId":"seats","item1Interval":"month","item1IncludedUsage":25,"items2Count":2,"items2FeatureIds":["analytics","messages"]},"timestamp":1768767569717,"sessionId":"debug-session","hypothesisId":"H2-H3"} +{"location":"compareProductUtils.ts:productsAreSame:noSimilarItem","message":"no similar item found for item1","data":{"item1FeatureId":"seats","item1Interval":"month","item1IncludedUsage":25,"items2Count":2,"items2FeatureIds":["analytics","messages"]},"timestamp":1768767569717,"sessionId":"debug-session","hypothesisId":"H2-H3"} +{"location":"compareProductUtils.ts:productsAreSame:noSimilarItem","message":"no similar item found for item1","data":{"item1FeatureId":"seats","item1Interval":"month","item1IncludedUsage":25,"items2Count":2,"items2FeatureIds":["analytics","messages"]},"timestamp":1768767569717,"sessionId":"debug-session","hypothesisId":"H2-H3"} +{"location":"SaveChangesBar.tsx:handleSaveClicked:start","message":"save clicked - before save","data":{"productId":"free_plan","itemsCount":3,"items":[{"feature_id":"analytics"},{"feature_id":"messages","interval":null,"included_usage":10},{"feature_id":"seats","interval":"month","included_usage":25}]},"timestamp":1768767573201,"sessionId":"debug-session","hypothesisId":"H2"} +{"location":"compareProductUtils.ts:productsAreSame:noSimilarItem","message":"no similar item found for item1","data":{"item1FeatureId":"seats","item1Interval":"month","item1IncludedUsage":25,"items2Count":2,"items2FeatureIds":["analytics","messages"]},"timestamp":1768767573208,"sessionId":"debug-session","hypothesisId":"H2-H3"} +{"location":"compareProductUtils.ts:productsAreSame:noSimilarItem","message":"no similar item found for item1","data":{"item1FeatureId":"seats","item1Interval":"month","item1IncludedUsage":25,"items2Count":2,"items2FeatureIds":["analytics","messages"]},"timestamp":1768767573209,"sessionId":"debug-session","hypothesisId":"H2-H3"} +{"location":"compareProductUtils.ts:productsAreSame:noSimilarItem","message":"no similar item found for item1","data":{"item1FeatureId":"seats","item1Interval":"month","item1IncludedUsage":25,"items2Count":2,"items2FeatureIds":["analytics","messages"]},"timestamp":1768767573209,"sessionId":"debug-session","hypothesisId":"H2-H3"} +{"location":"compareProductUtils.ts:productsAreSame:noSimilarItem","message":"no similar item found for item1","data":{"item1FeatureId":"seats","item1Interval":"month","item1IncludedUsage":25,"items2Count":2,"items2FeatureIds":["analytics","messages"]},"timestamp":1768767573209,"sessionId":"debug-session","hypothesisId":"H2-H3"} +{"location":"SaveChangesBar.tsx:handleSaveClicked:end","message":"save completed","data":{"result":false},"timestamp":1768767574954,"sessionId":"debug-session","hypothesisId":"H2"} +{"location":"compareProductUtils.ts:productsAreSame:noSimilarItem","message":"no similar item found for item1","data":{"item1FeatureId":"seats","item1Interval":"month","item1IncludedUsage":25,"items2Count":2,"items2FeatureIds":["analytics","messages"]},"timestamp":1768767575485,"sessionId":"debug-session","hypothesisId":"H2-H3"} +{"location":"compareProductUtils.ts:productsAreSame:noSimilarItem","message":"no similar item found for item1","data":{"item1FeatureId":"seats","item1Interval":"month","item1IncludedUsage":25,"items2Count":2,"items2FeatureIds":["analytics","messages"]},"timestamp":1768767575485,"sessionId":"debug-session","hypothesisId":"H2-H3"} +{"location":"compareProductUtils.ts:productsAreSame:noSimilarItem","message":"no similar item found for item1","data":{"item1FeatureId":"seats","item1Interval":"month","item1IncludedUsage":25,"items2Count":2,"items2FeatureIds":["analytics","messages"]},"timestamp":1768767575485,"sessionId":"debug-session","hypothesisId":"H2-H3"} +{"location":"compareProductUtils.ts:productsAreSame:noSimilarItem","message":"no similar item found for item1","data":{"item1FeatureId":"seats","item1Interval":"month","item1IncludedUsage":25,"items2Count":2,"items2FeatureIds":["analytics","messages"]},"timestamp":1768767575485,"sessionId":"debug-session","hypothesisId":"H2-H3"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":false,"itemsSame":true,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":2,"baseProductItemsCount":2,"productItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"seats","feature_type":"continuous_use","interval":"month","included_usage":0,"reset_usage_when_enabled":false,"price":null,"tiers":[{"amount":4,"to":"inf"}],"usage_model":"pay_per_use"}],"baseProductItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"seats","feature_type":"continuous_use","interval":"month","included_usage":0,"reset_usage_when_enabled":false,"price":null,"tiers":[{"amount":4,"to":"inf"}],"usage_model":"pay_per_use"}]},"timestamp":1768767861061,"sessionId":"debug-session","hypothesisId":"H1"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":false,"itemsSame":true,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":2,"baseProductItemsCount":2,"productItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"seats","feature_type":"continuous_use","interval":"month","included_usage":0,"reset_usage_when_enabled":false,"price":null,"tiers":[{"amount":4,"to":"inf"}],"usage_model":"pay_per_use"}],"baseProductItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"seats","feature_type":"continuous_use","interval":"month","included_usage":0,"reset_usage_when_enabled":false,"price":null,"tiers":[{"amount":4,"to":"inf"}],"usage_model":"pay_per_use"}]},"timestamp":1768767861062,"sessionId":"debug-session","hypothesisId":"H1"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":false,"itemsSame":true,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":2,"baseProductItemsCount":2,"productItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"seats","feature_type":"continuous_use","interval":"month","included_usage":0,"reset_usage_when_enabled":false,"price":null,"tiers":[{"amount":4,"to":"inf"}],"usage_model":"pay_per_use"}],"baseProductItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"seats","feature_type":"continuous_use","interval":"month","included_usage":0,"reset_usage_when_enabled":false,"price":null,"tiers":[{"amount":4,"to":"inf"}],"usage_model":"pay_per_use"}]},"timestamp":1768768492990,"sessionId":"debug-session","hypothesisId":"H1"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":false,"itemsSame":true,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":2,"baseProductItemsCount":2,"productItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"seats","feature_type":"continuous_use","interval":"month","included_usage":0,"reset_usage_when_enabled":false,"price":null,"tiers":[{"amount":4,"to":"inf"}],"usage_model":"pay_per_use"}],"baseProductItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"seats","feature_type":"continuous_use","interval":"month","included_usage":0,"reset_usage_when_enabled":false,"price":null,"tiers":[{"amount":4,"to":"inf"}],"usage_model":"pay_per_use"}]},"timestamp":1768768492990,"sessionId":"debug-session","hypothesisId":"H1"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":false,"itemsSame":true,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":2,"baseProductItemsCount":2,"productItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"seats","feature_type":"continuous_use","interval":"month","included_usage":0,"reset_usage_when_enabled":false,"price":null,"tiers":[{"amount":4,"to":"inf"}],"usage_model":"pay_per_use"}],"baseProductItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"seats","feature_type":"continuous_use","interval":"month","included_usage":0,"reset_usage_when_enabled":false,"price":null,"tiers":[{"amount":4,"to":"inf"}],"usage_model":"pay_per_use"}]},"timestamp":1768768494722,"sessionId":"debug-session","hypothesisId":"H1"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":false,"itemsSame":true,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":2,"baseProductItemsCount":2,"productItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"seats","feature_type":"continuous_use","interval":"month","included_usage":0,"reset_usage_when_enabled":false,"price":null,"tiers":[{"amount":4,"to":"inf"}],"usage_model":"pay_per_use"}],"baseProductItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"seats","feature_type":"continuous_use","interval":"month","included_usage":0,"reset_usage_when_enabled":false,"price":null,"tiers":[{"amount":4,"to":"inf"}],"usage_model":"pay_per_use"}]},"timestamp":1768768494722,"sessionId":"debug-session","hypothesisId":"H1"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":true,"itemsSame":false,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":1,"baseProductItemsCount":2,"productItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true}],"baseProductItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"seats","feature_type":"continuous_use","interval":"month","included_usage":0,"reset_usage_when_enabled":false,"price":null,"tiers":[{"amount":4,"to":"inf"}],"usage_model":"pay_per_use"}]},"timestamp":1768768494856,"sessionId":"debug-session","hypothesisId":"H1"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":true,"itemsSame":false,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":1,"baseProductItemsCount":2,"productItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true}],"baseProductItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"seats","feature_type":"continuous_use","interval":"month","included_usage":0,"reset_usage_when_enabled":false,"price":null,"tiers":[{"amount":4,"to":"inf"}],"usage_model":"pay_per_use"}]},"timestamp":1768768494857,"sessionId":"debug-session","hypothesisId":"H1"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":false,"itemsSame":true,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":1,"baseProductItemsCount":1,"productItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true}],"baseProductItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true}]},"timestamp":1768768503769,"sessionId":"debug-session","hypothesisId":"H1"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":false,"itemsSame":true,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":1,"baseProductItemsCount":1,"productItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true}],"baseProductItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true}]},"timestamp":1768768503770,"sessionId":"debug-session","hypothesisId":"H1"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":true,"itemsSame":false,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":2,"baseProductItemsCount":1,"productItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"seats","feature_type":"continuous_use","interval":null,"included_usage":null,"reset_usage_when_enabled":false,"price":null,"tiers":null}],"baseProductItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true}]},"timestamp":1768768509714,"sessionId":"debug-session","hypothesisId":"H1"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":true,"itemsSame":false,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":2,"baseProductItemsCount":1,"productItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"seats","feature_type":"continuous_use","interval":null,"included_usage":null,"reset_usage_when_enabled":false,"price":null,"tiers":null}],"baseProductItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true}]},"timestamp":1768768509714,"sessionId":"debug-session","hypothesisId":"H1"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":true,"itemsSame":false,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":2,"baseProductItemsCount":1,"productItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"seats","feature_type":"continuous_use","interval":"month","included_usage":null,"reset_usage_when_enabled":false,"price":null,"tiers":[{"to":"inf","amount":0}],"usage_model":"pay_per_use"}],"baseProductItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true}]},"timestamp":1768768510972,"sessionId":"debug-session","hypothesisId":"H1"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":true,"itemsSame":false,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":2,"baseProductItemsCount":1,"productItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"seats","feature_type":"continuous_use","interval":"month","included_usage":null,"reset_usage_when_enabled":false,"price":null,"tiers":[{"to":"inf","amount":0}],"usage_model":"pay_per_use"}],"baseProductItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true}]},"timestamp":1768768510973,"sessionId":"debug-session","hypothesisId":"H1"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":true,"itemsSame":false,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":2,"baseProductItemsCount":1,"productItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"seats","feature_type":"continuous_use","interval":"month","included_usage":null,"reset_usage_when_enabled":false,"price":null,"tiers":[{"to":"inf","amount":0}],"usage_model":"pay_per_use"}],"baseProductItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true}]},"timestamp":1768768512258,"sessionId":"debug-session","hypothesisId":"H1"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":true,"itemsSame":false,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":2,"baseProductItemsCount":1,"productItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"seats","feature_type":"continuous_use","interval":"month","included_usage":null,"reset_usage_when_enabled":false,"price":null,"tiers":[{"to":"inf","amount":0}],"usage_model":"pay_per_use"}],"baseProductItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true}]},"timestamp":1768768512259,"sessionId":"debug-session","hypothesisId":"H1"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":true,"itemsSame":false,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":2,"baseProductItemsCount":1,"productItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"seats","feature_type":"continuous_use","interval":"month","included_usage":null,"reset_usage_when_enabled":false,"price":null,"tiers":[{"to":"inf","amount":4}],"usage_model":"pay_per_use"}],"baseProductItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true}]},"timestamp":1768768513093,"sessionId":"debug-session","hypothesisId":"H1"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":true,"itemsSame":false,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":2,"baseProductItemsCount":1,"productItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"seats","feature_type":"continuous_use","interval":"month","included_usage":null,"reset_usage_when_enabled":false,"price":null,"tiers":[{"to":"inf","amount":4}],"usage_model":"pay_per_use"}],"baseProductItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true}]},"timestamp":1768768513093,"sessionId":"debug-session","hypothesisId":"H1"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":true,"itemsSame":false,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":2,"baseProductItemsCount":1,"productItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"seats","feature_type":"continuous_use","interval":"month","included_usage":null,"reset_usage_when_enabled":false,"price":null,"tiers":[{"to":"inf","amount":4}],"usage_model":"pay_per_use"}],"baseProductItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true}]},"timestamp":1768768513323,"sessionId":"debug-session","hypothesisId":"H1"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":true,"itemsSame":false,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":2,"baseProductItemsCount":1,"productItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"seats","feature_type":"continuous_use","interval":"month","included_usage":null,"reset_usage_when_enabled":false,"price":null,"tiers":[{"to":"inf","amount":4}],"usage_model":"pay_per_use"}],"baseProductItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true}]},"timestamp":1768768513323,"sessionId":"debug-session","hypothesisId":"H1"} +{"location":"compareItemUtils.ts:featurePriceItemsAreSame","message":"feature price items comparison failed","data":{"featureId":"seats","failedEntChecks":[{"check":"included_usage","message":"Included usage different: null != 0"}],"failedPriceChecks":[],"item1":"{\"feature_id\":\"seats\",\"feature_type\":\"continuous_use\",\"included_usage\":null,\"interval\":\"month\",\"price\":4,\"billing_units\":1,\"entity_feature_id\":null,\"reset_usage_when_enabled\":false,\"usage_model\":\"pay_per_use\",\"config\":{\"on_increase\":\"prorate_immediately\",\"on_decrease\":\"prorate_immediately\"}}","item2":"{\"feature_id\":\"seats\",\"feature_type\":\"continuous_use\",\"included_usage\":0,\"interval\":\"month\",\"interval_count\":1,\"price\":4,\"billing_units\":1,\"entity_feature_id\":null,\"reset_usage_when_enabled\":false,\"usage_model\":\"pay_per_use\",\"created_at\":1768768517976,\"entitlement_id\":\"ent_38Rhv08gZdC1AOrMvs20Gt4exbK\",\"price_id\":\"pr_38RhuzPJAjXGGc5JaF7JBQnKclZ\",\"price_config\":{\"type\":\"usage\",\"interval\":\"month\",\"bill_when\":\"end_of_period\",\"feature_id\":\"seats\",\"usage_tiers\":[{\"to\":\"inf\",\"amount\":4}],\"billing_units\":1,\"interval_count\":1,\"should_prorate\":true,\"stripe_price_id\":\"price_1Sr2gtG2wlWesuVT9hSb0qPO\",\"stripe_product_id\":\"prod_Tog21hujMdhsAJ\",\"internal_feature_id\":\"fe_38IUUvu4BoVK96JwbDZfJHwcRyD\",\"stripe_placeholder_price_id\":\"price_1Sr2guG2wlWesuVTfbCs2bkT\"},\"config\":{\"on_decrease\":\"prorate_immediately\",\"on_increase\":\"prorate_immediately\"},\"usage_limit\":null}"},"timestamp":1768768522738,"sessionId":"debug-session","hypothesisId":"H3"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":true,"itemsSame":false,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":2,"baseProductItemsCount":2,"productItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"seats","feature_type":"continuous_use","interval":"month","included_usage":null,"reset_usage_when_enabled":false,"price":null,"tiers":[{"to":"inf","amount":4}],"usage_model":"pay_per_use"}],"baseProductItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"seats","feature_type":"continuous_use","interval":"month","included_usage":0,"reset_usage_when_enabled":false,"price":null,"tiers":[{"amount":4,"to":"inf"}],"usage_model":"pay_per_use"}]},"timestamp":1768768522738,"sessionId":"debug-session","hypothesisId":"H1"} +{"location":"compareItemUtils.ts:featurePriceItemsAreSame","message":"feature price items comparison failed","data":{"featureId":"seats","failedEntChecks":[{"check":"included_usage","message":"Included usage different: null != 0"}],"failedPriceChecks":[],"item1":"{\"feature_id\":\"seats\",\"feature_type\":\"continuous_use\",\"included_usage\":null,\"interval\":\"month\",\"price\":4,\"billing_units\":1,\"entity_feature_id\":null,\"reset_usage_when_enabled\":false,\"usage_model\":\"pay_per_use\",\"config\":{\"on_increase\":\"prorate_immediately\",\"on_decrease\":\"prorate_immediately\"}}","item2":"{\"feature_id\":\"seats\",\"feature_type\":\"continuous_use\",\"included_usage\":0,\"interval\":\"month\",\"interval_count\":1,\"price\":4,\"billing_units\":1,\"entity_feature_id\":null,\"reset_usage_when_enabled\":false,\"usage_model\":\"pay_per_use\",\"created_at\":1768768517976,\"entitlement_id\":\"ent_38Rhv08gZdC1AOrMvs20Gt4exbK\",\"price_id\":\"pr_38RhuzPJAjXGGc5JaF7JBQnKclZ\",\"price_config\":{\"type\":\"usage\",\"interval\":\"month\",\"bill_when\":\"end_of_period\",\"feature_id\":\"seats\",\"usage_tiers\":[{\"to\":\"inf\",\"amount\":4}],\"billing_units\":1,\"interval_count\":1,\"should_prorate\":true,\"stripe_price_id\":\"price_1Sr2gtG2wlWesuVT9hSb0qPO\",\"stripe_product_id\":\"prod_Tog21hujMdhsAJ\",\"internal_feature_id\":\"fe_38IUUvu4BoVK96JwbDZfJHwcRyD\",\"stripe_placeholder_price_id\":\"price_1Sr2guG2wlWesuVTfbCs2bkT\"},\"config\":{\"on_decrease\":\"prorate_immediately\",\"on_increase\":\"prorate_immediately\"},\"usage_limit\":null}"},"timestamp":1768768522739,"sessionId":"debug-session","hypothesisId":"H3"} +{"location":"compareItemUtils.ts:featurePriceItemsAreSame","message":"feature price items comparison failed","data":{"featureId":"seats","failedEntChecks":[{"check":"included_usage","message":"Included usage different: null != 0"}],"failedPriceChecks":[],"item1":"{\"feature_id\":\"seats\",\"feature_type\":\"continuous_use\",\"included_usage\":null,\"interval\":\"month\",\"price\":4,\"billing_units\":1,\"entity_feature_id\":null,\"reset_usage_when_enabled\":false,\"usage_model\":\"pay_per_use\",\"config\":{\"on_increase\":\"prorate_immediately\",\"on_decrease\":\"prorate_immediately\"}}","item2":"{\"feature_id\":\"seats\",\"feature_type\":\"continuous_use\",\"included_usage\":0,\"interval\":\"month\",\"interval_count\":1,\"price\":4,\"billing_units\":1,\"entity_feature_id\":null,\"reset_usage_when_enabled\":false,\"usage_model\":\"pay_per_use\",\"created_at\":1768768517976,\"entitlement_id\":\"ent_38Rhv08gZdC1AOrMvs20Gt4exbK\",\"price_id\":\"pr_38RhuzPJAjXGGc5JaF7JBQnKclZ\",\"price_config\":{\"type\":\"usage\",\"interval\":\"month\",\"bill_when\":\"end_of_period\",\"feature_id\":\"seats\",\"usage_tiers\":[{\"to\":\"inf\",\"amount\":4}],\"billing_units\":1,\"interval_count\":1,\"should_prorate\":true,\"stripe_price_id\":\"price_1Sr2gtG2wlWesuVT9hSb0qPO\",\"stripe_product_id\":\"prod_Tog21hujMdhsAJ\",\"internal_feature_id\":\"fe_38IUUvu4BoVK96JwbDZfJHwcRyD\",\"stripe_placeholder_price_id\":\"price_1Sr2guG2wlWesuVTfbCs2bkT\"},\"config\":{\"on_decrease\":\"prorate_immediately\",\"on_increase\":\"prorate_immediately\"},\"usage_limit\":null}"},"timestamp":1768768522738,"sessionId":"debug-session","hypothesisId":"H3"} +{"location":"compareItemUtils.ts:featurePriceItemsAreSame","message":"feature price items comparison failed","data":{"featureId":"seats","failedEntChecks":[{"check":"included_usage","message":"Included usage different: null != 0"}],"failedPriceChecks":[],"item1":"{\"feature_id\":\"seats\",\"feature_type\":\"continuous_use\",\"included_usage\":null,\"interval\":\"month\",\"price\":4,\"billing_units\":1,\"entity_feature_id\":null,\"reset_usage_when_enabled\":false,\"usage_model\":\"pay_per_use\",\"config\":{\"on_increase\":\"prorate_immediately\",\"on_decrease\":\"prorate_immediately\"}}","item2":"{\"feature_id\":\"seats\",\"feature_type\":\"continuous_use\",\"included_usage\":0,\"interval\":\"month\",\"interval_count\":1,\"price\":4,\"billing_units\":1,\"entity_feature_id\":null,\"reset_usage_when_enabled\":false,\"usage_model\":\"pay_per_use\",\"created_at\":1768768517976,\"entitlement_id\":\"ent_38Rhv08gZdC1AOrMvs20Gt4exbK\",\"price_id\":\"pr_38RhuzPJAjXGGc5JaF7JBQnKclZ\",\"price_config\":{\"type\":\"usage\",\"interval\":\"month\",\"bill_when\":\"end_of_period\",\"feature_id\":\"seats\",\"usage_tiers\":[{\"to\":\"inf\",\"amount\":4}],\"billing_units\":1,\"interval_count\":1,\"should_prorate\":true,\"stripe_price_id\":\"price_1Sr2gtG2wlWesuVT9hSb0qPO\",\"stripe_product_id\":\"prod_Tog21hujMdhsAJ\",\"internal_feature_id\":\"fe_38IUUvu4BoVK96JwbDZfJHwcRyD\",\"stripe_placeholder_price_id\":\"price_1Sr2guG2wlWesuVTfbCs2bkT\"},\"config\":{\"on_decrease\":\"prorate_immediately\",\"on_increase\":\"prorate_immediately\"},\"usage_limit\":null}"},"timestamp":1768768522739,"sessionId":"debug-session","hypothesisId":"H3"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":true,"itemsSame":false,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":2,"baseProductItemsCount":2,"productItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"seats","feature_type":"continuous_use","interval":"month","included_usage":null,"reset_usage_when_enabled":false,"price":null,"tiers":[{"to":"inf","amount":4}],"usage_model":"pay_per_use"}],"baseProductItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"seats","feature_type":"continuous_use","interval":"month","included_usage":0,"reset_usage_when_enabled":false,"price":null,"tiers":[{"amount":4,"to":"inf"}],"usage_model":"pay_per_use"}]},"timestamp":1768768522739,"sessionId":"debug-session","hypothesisId":"H1"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":false,"itemsSame":true,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":2,"baseProductItemsCount":2,"productItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"seats","feature_type":"continuous_use","interval":"month","included_usage":0,"reset_usage_when_enabled":false,"price":null,"tiers":[{"amount":4,"to":"inf"}],"usage_model":"pay_per_use"}],"baseProductItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"seats","feature_type":"continuous_use","interval":"month","included_usage":0,"reset_usage_when_enabled":false,"price":null,"tiers":[{"amount":4,"to":"inf"}],"usage_model":"pay_per_use"}]},"timestamp":1768768616773,"sessionId":"debug-session","hypothesisId":"H1"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":false,"itemsSame":true,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":2,"baseProductItemsCount":2,"productItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"seats","feature_type":"continuous_use","interval":"month","included_usage":0,"reset_usage_when_enabled":false,"price":null,"tiers":[{"amount":4,"to":"inf"}],"usage_model":"pay_per_use"}],"baseProductItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"seats","feature_type":"continuous_use","interval":"month","included_usage":0,"reset_usage_when_enabled":false,"price":null,"tiers":[{"amount":4,"to":"inf"}],"usage_model":"pay_per_use"}]},"timestamp":1768768616773,"sessionId":"debug-session","hypothesisId":"H1"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":true,"itemsSame":false,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":1,"baseProductItemsCount":2,"productItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true}],"baseProductItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"seats","feature_type":"continuous_use","interval":"month","included_usage":0,"reset_usage_when_enabled":false,"price":null,"tiers":[{"amount":4,"to":"inf"}],"usage_model":"pay_per_use"}]},"timestamp":1768768617686,"sessionId":"debug-session","hypothesisId":"H1"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":true,"itemsSame":false,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":1,"baseProductItemsCount":2,"productItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true}],"baseProductItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"seats","feature_type":"continuous_use","interval":"month","included_usage":0,"reset_usage_when_enabled":false,"price":null,"tiers":[{"amount":4,"to":"inf"}],"usage_model":"pay_per_use"}]},"timestamp":1768768617687,"sessionId":"debug-session","hypothesisId":"H1"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":true,"itemsSame":false,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":1,"baseProductItemsCount":2,"productItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true}],"baseProductItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"seats","feature_type":"continuous_use","interval":"month","included_usage":0,"reset_usage_when_enabled":false,"price":null,"tiers":[{"amount":4,"to":"inf"}],"usage_model":"pay_per_use"}]},"timestamp":1768768619603,"sessionId":"debug-session","hypothesisId":"H1"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":true,"itemsSame":false,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":1,"baseProductItemsCount":2,"productItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true}],"baseProductItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"seats","feature_type":"continuous_use","interval":"month","included_usage":0,"reset_usage_when_enabled":false,"price":null,"tiers":[{"amount":4,"to":"inf"}],"usage_model":"pay_per_use"}]},"timestamp":1768768619604,"sessionId":"debug-session","hypothesisId":"H1"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":false,"itemsSame":true,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":1,"baseProductItemsCount":1,"productItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true}],"baseProductItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true}]},"timestamp":1768768627805,"sessionId":"debug-session","hypothesisId":"H1"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":false,"itemsSame":true,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":1,"baseProductItemsCount":1,"productItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true}],"baseProductItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true}]},"timestamp":1768768627805,"sessionId":"debug-session","hypothesisId":"H1"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":true,"itemsSame":false,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":2,"baseProductItemsCount":1,"productItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"seats","feature_type":"continuous_use","interval":null,"included_usage":null,"reset_usage_when_enabled":false,"price":null,"tiers":null}],"baseProductItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true}]},"timestamp":1768768634551,"sessionId":"debug-session","hypothesisId":"H1"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":true,"itemsSame":false,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":2,"baseProductItemsCount":1,"productItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"seats","feature_type":"continuous_use","interval":null,"included_usage":null,"reset_usage_when_enabled":false,"price":null,"tiers":null}],"baseProductItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true}]},"timestamp":1768768634551,"sessionId":"debug-session","hypothesisId":"H1"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":true,"itemsSame":false,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":2,"baseProductItemsCount":1,"productItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"seats","feature_type":"continuous_use","interval":"month","included_usage":null,"reset_usage_when_enabled":false,"price":null,"tiers":[{"to":"inf","amount":0}],"usage_model":"pay_per_use"}],"baseProductItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true}]},"timestamp":1768768635559,"sessionId":"debug-session","hypothesisId":"H1"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":true,"itemsSame":false,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":2,"baseProductItemsCount":1,"productItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"seats","feature_type":"continuous_use","interval":"month","included_usage":null,"reset_usage_when_enabled":false,"price":null,"tiers":[{"to":"inf","amount":0}],"usage_model":"pay_per_use"}],"baseProductItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true}]},"timestamp":1768768635559,"sessionId":"debug-session","hypothesisId":"H1"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":true,"itemsSame":false,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":2,"baseProductItemsCount":1,"productItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"seats","feature_type":"continuous_use","interval":"month","included_usage":null,"reset_usage_when_enabled":false,"price":null,"tiers":[{"to":"inf","amount":4}],"usage_model":"pay_per_use"}],"baseProductItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true}]},"timestamp":1768768636851,"sessionId":"debug-session","hypothesisId":"H1"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":true,"itemsSame":false,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":2,"baseProductItemsCount":1,"productItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"seats","feature_type":"continuous_use","interval":"month","included_usage":null,"reset_usage_when_enabled":false,"price":null,"tiers":[{"to":"inf","amount":4}],"usage_model":"pay_per_use"}],"baseProductItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true}]},"timestamp":1768768636851,"sessionId":"debug-session","hypothesisId":"H1"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":true,"itemsSame":false,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":2,"baseProductItemsCount":1,"productItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"seats","feature_type":"continuous_use","interval":"month","included_usage":null,"reset_usage_when_enabled":false,"price":null,"tiers":[{"to":"inf","amount":4}],"usage_model":"pay_per_use"}],"baseProductItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true}]},"timestamp":1768768637168,"sessionId":"debug-session","hypothesisId":"H1"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":true,"itemsSame":false,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":2,"baseProductItemsCount":1,"productItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"seats","feature_type":"continuous_use","interval":"month","included_usage":null,"reset_usage_when_enabled":false,"price":null,"tiers":[{"to":"inf","amount":4}],"usage_model":"pay_per_use"}],"baseProductItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true}]},"timestamp":1768768637169,"sessionId":"debug-session","hypothesisId":"H1"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":false,"itemsSame":true,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":2,"baseProductItemsCount":2,"productItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"seats","feature_type":"continuous_use","interval":"month","included_usage":null,"reset_usage_when_enabled":false,"price":null,"tiers":[{"to":"inf","amount":4}],"usage_model":"pay_per_use"}],"baseProductItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"seats","feature_type":"continuous_use","interval":"month","included_usage":0,"reset_usage_when_enabled":false,"price":null,"tiers":[{"amount":4,"to":"inf"}],"usage_model":"pay_per_use"}]},"timestamp":1768768647252,"sessionId":"debug-session","hypothesisId":"H1"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":false,"itemsSame":true,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":2,"baseProductItemsCount":2,"productItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"seats","feature_type":"continuous_use","interval":"month","included_usage":null,"reset_usage_when_enabled":false,"price":null,"tiers":[{"to":"inf","amount":4}],"usage_model":"pay_per_use"}],"baseProductItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"seats","feature_type":"continuous_use","interval":"month","included_usage":0,"reset_usage_when_enabled":false,"price":null,"tiers":[{"amount":4,"to":"inf"}],"usage_model":"pay_per_use"}]},"timestamp":1768768647253,"sessionId":"debug-session","hypothesisId":"H1"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":true,"itemsSame":false,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":1,"baseProductItemsCount":2,"productItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true}],"baseProductItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"seats","feature_type":"continuous_use","interval":"month","included_usage":0,"reset_usage_when_enabled":false,"price":null,"tiers":[{"amount":4,"to":"inf"}],"usage_model":"pay_per_use"}]},"timestamp":1768768650150,"sessionId":"debug-session","hypothesisId":"H1"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":true,"itemsSame":false,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":1,"baseProductItemsCount":2,"productItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true}],"baseProductItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"seats","feature_type":"continuous_use","interval":"month","included_usage":0,"reset_usage_when_enabled":false,"price":null,"tiers":[{"amount":4,"to":"inf"}],"usage_model":"pay_per_use"}]},"timestamp":1768768650151,"sessionId":"debug-session","hypothesisId":"H1"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":true,"itemsSame":false,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":2,"baseProductItemsCount":2,"productItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"runs","feature_type":"single_use","interval":"month","included_usage":null,"reset_usage_when_enabled":true,"price":null,"tiers":null}],"baseProductItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"seats","feature_type":"continuous_use","interval":"month","included_usage":0,"reset_usage_when_enabled":false,"price":null,"tiers":[{"amount":4,"to":"inf"}],"usage_model":"pay_per_use"}]},"timestamp":1768768653414,"sessionId":"debug-session","hypothesisId":"H1"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":true,"itemsSame":false,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":2,"baseProductItemsCount":2,"productItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"runs","feature_type":"single_use","interval":"month","included_usage":null,"reset_usage_when_enabled":true,"price":null,"tiers":null}],"baseProductItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"seats","feature_type":"continuous_use","interval":"month","included_usage":0,"reset_usage_when_enabled":false,"price":null,"tiers":[{"amount":4,"to":"inf"}],"usage_model":"pay_per_use"}]},"timestamp":1768768653414,"sessionId":"debug-session","hypothesisId":"H1"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":true,"itemsSame":false,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":2,"baseProductItemsCount":2,"productItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"runs","feature_type":"single_use","interval":"month","included_usage":null,"reset_usage_when_enabled":true,"price":null,"tiers":[{"to":"inf","amount":0}],"usage_model":"pay_per_use"}],"baseProductItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"seats","feature_type":"continuous_use","interval":"month","included_usage":0,"reset_usage_when_enabled":false,"price":null,"tiers":[{"amount":4,"to":"inf"}],"usage_model":"pay_per_use"}]},"timestamp":1768768654738,"sessionId":"debug-session","hypothesisId":"H1"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":true,"itemsSame":false,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":2,"baseProductItemsCount":2,"productItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"runs","feature_type":"single_use","interval":"month","included_usage":null,"reset_usage_when_enabled":true,"price":null,"tiers":[{"to":"inf","amount":0}],"usage_model":"pay_per_use"}],"baseProductItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"seats","feature_type":"continuous_use","interval":"month","included_usage":0,"reset_usage_when_enabled":false,"price":null,"tiers":[{"amount":4,"to":"inf"}],"usage_model":"pay_per_use"}]},"timestamp":1768768654738,"sessionId":"debug-session","hypothesisId":"H1"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":true,"itemsSame":false,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":2,"baseProductItemsCount":2,"productItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"runs","feature_type":"single_use","interval":"month","included_usage":null,"reset_usage_when_enabled":true,"price":null,"tiers":[{"to":"inf","amount":5}],"usage_model":"pay_per_use"}],"baseProductItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"seats","feature_type":"continuous_use","interval":"month","included_usage":0,"reset_usage_when_enabled":false,"price":null,"tiers":[{"amount":4,"to":"inf"}],"usage_model":"pay_per_use"}]},"timestamp":1768768656050,"sessionId":"debug-session","hypothesisId":"H1"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":true,"itemsSame":false,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":2,"baseProductItemsCount":2,"productItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"runs","feature_type":"single_use","interval":"month","included_usage":null,"reset_usage_when_enabled":true,"price":null,"tiers":[{"to":"inf","amount":5}],"usage_model":"pay_per_use"}],"baseProductItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"seats","feature_type":"continuous_use","interval":"month","included_usage":0,"reset_usage_when_enabled":false,"price":null,"tiers":[{"amount":4,"to":"inf"}],"usage_model":"pay_per_use"}]},"timestamp":1768768656050,"sessionId":"debug-session","hypothesisId":"H1"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":true,"itemsSame":false,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":2,"baseProductItemsCount":2,"productItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"runs","feature_type":"single_use","interval":"month","included_usage":null,"reset_usage_when_enabled":true,"price":null,"tiers":[{"to":"inf","amount":5}],"usage_model":"pay_per_use"}],"baseProductItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"seats","feature_type":"continuous_use","interval":"month","included_usage":0,"reset_usage_when_enabled":false,"price":null,"tiers":[{"amount":4,"to":"inf"}],"usage_model":"pay_per_use"}]},"timestamp":1768768656372,"sessionId":"debug-session","hypothesisId":"H1"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":true,"itemsSame":false,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":2,"baseProductItemsCount":2,"productItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"runs","feature_type":"single_use","interval":"month","included_usage":null,"reset_usage_when_enabled":true,"price":null,"tiers":[{"to":"inf","amount":5}],"usage_model":"pay_per_use"}],"baseProductItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"seats","feature_type":"continuous_use","interval":"month","included_usage":0,"reset_usage_when_enabled":false,"price":null,"tiers":[{"amount":4,"to":"inf"}],"usage_model":"pay_per_use"}]},"timestamp":1768768656373,"sessionId":"debug-session","hypothesisId":"H1"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":true,"itemsSame":false,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":2,"baseProductItemsCount":1,"productItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"runs","feature_type":"single_use","interval":"month","included_usage":null,"reset_usage_when_enabled":true,"price":null,"tiers":[{"to":"inf","amount":5}],"usage_model":"pay_per_use"}],"baseProductItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true}]},"timestamp":1768768657946,"sessionId":"debug-session","hypothesisId":"H1"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":true,"itemsSame":false,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":2,"baseProductItemsCount":1,"productItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"runs","feature_type":"single_use","interval":"month","included_usage":null,"reset_usage_when_enabled":true,"price":null,"tiers":[{"to":"inf","amount":5}],"usage_model":"pay_per_use"}],"baseProductItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true}]},"timestamp":1768768657947,"sessionId":"debug-session","hypothesisId":"H1"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":false,"itemsSame":true,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":2,"baseProductItemsCount":2,"productItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"runs","feature_type":"single_use","interval":"month","included_usage":null,"reset_usage_when_enabled":true,"price":null,"tiers":[{"to":"inf","amount":5}],"usage_model":"pay_per_use"}],"baseProductItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"runs","feature_type":"single_use","interval":"month","included_usage":0,"reset_usage_when_enabled":true,"price":null,"tiers":[{"amount":5,"to":"inf"}],"usage_model":"pay_per_use"}]},"timestamp":1768768668632,"sessionId":"debug-session","hypothesisId":"H1"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":false,"itemsSame":true,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":2,"baseProductItemsCount":2,"productItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"runs","feature_type":"single_use","interval":"month","included_usage":null,"reset_usage_when_enabled":true,"price":null,"tiers":[{"to":"inf","amount":5}],"usage_model":"pay_per_use"}],"baseProductItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"runs","feature_type":"single_use","interval":"month","included_usage":0,"reset_usage_when_enabled":true,"price":null,"tiers":[{"amount":5,"to":"inf"}],"usage_model":"pay_per_use"}]},"timestamp":1768768668633,"sessionId":"debug-session","hypothesisId":"H1"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":true,"itemsSame":false,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":1,"baseProductItemsCount":2,"productItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true}],"baseProductItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"runs","feature_type":"single_use","interval":"month","included_usage":0,"reset_usage_when_enabled":true,"price":null,"tiers":[{"amount":5,"to":"inf"}],"usage_model":"pay_per_use"}]},"timestamp":1768768670093,"sessionId":"debug-session","hypothesisId":"H1"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":true,"itemsSame":false,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":1,"baseProductItemsCount":2,"productItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true}],"baseProductItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"runs","feature_type":"single_use","interval":"month","included_usage":0,"reset_usage_when_enabled":true,"price":null,"tiers":[{"amount":5,"to":"inf"}],"usage_model":"pay_per_use"}]},"timestamp":1768768670094,"sessionId":"debug-session","hypothesisId":"H1"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":true,"itemsSame":false,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":2,"baseProductItemsCount":2,"productItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"seats","feature_type":"continuous_use","interval":null,"included_usage":null,"reset_usage_when_enabled":false,"price":null,"tiers":null}],"baseProductItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"runs","feature_type":"single_use","interval":"month","included_usage":0,"reset_usage_when_enabled":true,"price":null,"tiers":[{"amount":5,"to":"inf"}],"usage_model":"pay_per_use"}]},"timestamp":1768768675489,"sessionId":"debug-session","hypothesisId":"H1"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":true,"itemsSame":false,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":2,"baseProductItemsCount":2,"productItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"seats","feature_type":"continuous_use","interval":null,"included_usage":null,"reset_usage_when_enabled":false,"price":null,"tiers":null}],"baseProductItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"runs","feature_type":"single_use","interval":"month","included_usage":0,"reset_usage_when_enabled":true,"price":null,"tiers":[{"amount":5,"to":"inf"}],"usage_model":"pay_per_use"}]},"timestamp":1768768675489,"sessionId":"debug-session","hypothesisId":"H1"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":true,"itemsSame":false,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":2,"baseProductItemsCount":1,"productItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"seats","feature_type":"continuous_use","interval":null,"included_usage":null,"reset_usage_when_enabled":false,"price":null,"tiers":null}],"baseProductItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true}]},"timestamp":1768768677586,"sessionId":"debug-session","hypothesisId":"H1"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":true,"itemsSame":false,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":2,"baseProductItemsCount":1,"productItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"seats","feature_type":"continuous_use","interval":null,"included_usage":null,"reset_usage_when_enabled":false,"price":null,"tiers":null}],"baseProductItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true}]},"timestamp":1768768677586,"sessionId":"debug-session","hypothesisId":"H1"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":true,"itemsSame":false,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":2,"baseProductItemsCount":1,"productItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"seats","feature_type":"continuous_use","interval":null,"included_usage":5,"reset_usage_when_enabled":false,"price":null,"tiers":null}],"baseProductItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true}]},"timestamp":1768768678144,"sessionId":"debug-session","hypothesisId":"H1"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":true,"itemsSame":false,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":2,"baseProductItemsCount":1,"productItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"seats","feature_type":"continuous_use","interval":null,"included_usage":5,"reset_usage_when_enabled":false,"price":null,"tiers":null}],"baseProductItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true}]},"timestamp":1768768678144,"sessionId":"debug-session","hypothesisId":"H1"} +{"location":"compareItemUtils.ts:featureItemsAreSame","message":"feature items comparison failed","data":{"featureId":"seats","failedChecks":[{"check":"included_usage","message":"Included usage different: 5 != null"}],"item1":"{\"feature_id\":\"seats\",\"feature_type\":\"continuous_use\",\"included_usage\":5,\"interval\":null,\"price\":null,\"tiers\":null,\"billing_units\":1,\"entity_feature_id\":null,\"reset_usage_when_enabled\":false}","item2":"{\"feature_id\":\"seats\",\"feature_type\":\"continuous_use\",\"included_usage\":null,\"interval\":null,\"price\":null,\"tiers\":null,\"billing_units\":1,\"entity_feature_id\":null,\"reset_usage_when_enabled\":false}"},"timestamp":1768768678144,"sessionId":"debug-session","hypothesisId":"H2"} +{"location":"compareItemUtils.ts:featureItemsAreSame","message":"feature items comparison failed","data":{"featureId":"seats","failedChecks":[{"check":"included_usage","message":"Included usage different: 5 != null"}],"item1":"{\"feature_id\":\"seats\",\"feature_type\":\"continuous_use\",\"included_usage\":5,\"interval\":null,\"price\":null,\"tiers\":null,\"billing_units\":1,\"entity_feature_id\":null,\"reset_usage_when_enabled\":false}","item2":"{\"feature_id\":\"seats\",\"feature_type\":\"continuous_use\",\"included_usage\":null,\"interval\":null,\"price\":null,\"tiers\":null,\"billing_units\":1,\"entity_feature_id\":null,\"reset_usage_when_enabled\":false}"},"timestamp":1768768678145,"sessionId":"debug-session","hypothesisId":"H2"} +{"location":"compareItemUtils.ts:featureItemsAreSame","message":"feature items comparison failed","data":{"featureId":"seats","failedChecks":[{"check":"included_usage","message":"Included usage different: 5 != null"}],"item1":"{\"feature_id\":\"seats\",\"feature_type\":\"continuous_use\",\"included_usage\":5,\"interval\":null,\"price\":null,\"tiers\":null,\"billing_units\":1,\"entity_feature_id\":null,\"reset_usage_when_enabled\":false}","item2":"{\"feature_id\":\"seats\",\"feature_type\":\"continuous_use\",\"included_usage\":null,\"interval\":null,\"price\":null,\"tiers\":null,\"billing_units\":1,\"entity_feature_id\":null,\"reset_usage_when_enabled\":false}"},"timestamp":1768768678145,"sessionId":"debug-session","hypothesisId":"H2"} +{"location":"compareItemUtils.ts:featureItemsAreSame","message":"feature items comparison failed","data":{"featureId":"seats","failedChecks":[{"check":"included_usage","message":"Included usage different: 5 != null"}],"item1":"{\"feature_id\":\"seats\",\"feature_type\":\"continuous_use\",\"included_usage\":5,\"interval\":null,\"price\":null,\"tiers\":null,\"billing_units\":1,\"entity_feature_id\":null,\"reset_usage_when_enabled\":false}","item2":"{\"feature_id\":\"seats\",\"feature_type\":\"continuous_use\",\"included_usage\":null,\"interval\":null,\"price\":null,\"tiers\":null,\"billing_units\":1,\"entity_feature_id\":null,\"reset_usage_when_enabled\":false}"},"timestamp":1768768678145,"sessionId":"debug-session","hypothesisId":"H2"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":false,"itemsSame":true,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":2,"baseProductItemsCount":2,"productItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"seats","feature_type":"continuous_use","interval":null,"included_usage":5,"reset_usage_when_enabled":false,"price":null,"tiers":null}],"baseProductItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"seats","feature_type":"continuous_use","interval":null,"included_usage":5,"reset_usage_when_enabled":false}]},"timestamp":1768768686901,"sessionId":"debug-session","hypothesisId":"H1"} +{"location":"useProductStore.ts:useHasChanges","message":"hasChanges computed","data":{"hasChanges":false,"itemsSame":true,"detailsSame":true,"freeTrialsSame":true,"productItemsCount":2,"baseProductItemsCount":2,"productItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"seats","feature_type":"continuous_use","interval":null,"included_usage":5,"reset_usage_when_enabled":false,"price":null,"tiers":null}],"baseProductItems":[{"feature_id":"messages","feature_type":"single_use","interval":null,"included_usage":10,"reset_usage_when_enabled":true},{"feature_id":"seats","feature_type":"continuous_use","interval":null,"included_usage":5,"reset_usage_when_enabled":false}]},"timestamp":1768768686901,"sessionId":"debug-session","hypothesisId":"H1"} diff --git a/server/src/internal/customers/CusSearchService.ts b/server/src/internal/customers/CusSearchService.ts index ae97f6228..972531e57 100644 --- a/server/src/internal/customers/CusSearchService.ts +++ b/server/src/internal/customers/CusSearchService.ts @@ -10,12 +10,14 @@ import { and, desc, eq, - gt, ilike, isNotNull, + gt, + ilike, + isNotNull, isNull, lt, notExists, or, - sql + sql, } from "drizzle-orm"; import { alias } from "drizzle-orm/pg-core"; import type { DrizzleCli } from "@/db/initDrizzle.js"; @@ -155,6 +157,16 @@ export class CusSearchService { ? or( ...statuses.map((status) => { switch (status) { + case "active": + return and( + eq(customerProducts.status, CusProductStatus.Active), + isNull(customerProducts.canceled_at), + ); + case "past_due": + return and( + eq(customerProducts.status, CusProductStatus.PastDue), + isNull(customerProducts.canceled_at), + ); case "canceled": return and( isNotNull(customerProducts.canceled_at), @@ -164,6 +176,7 @@ export class CusSearchService { return and( gt(customerProducts.trial_ends_at, Date.now()), isNotNull(customerProducts.free_trial_id), + isNull(customerProducts.canceled_at), activeProdFilter, ); case CusProductStatus.Expired: @@ -513,7 +526,8 @@ export class CusSearchService { }); } - if (filters?.version && filters?.version.length > 0) { + // Call searchByProduct if we have version filters OR status filters + if ((filters?.version && filters?.version.length > 0) || (filters?.status && filters?.status.length > 0)) { return await CusSearchService.searchByProduct({ db, orgId, @@ -642,7 +656,6 @@ export class CusSearchService { return { data: finalResults, count: totalCount }; } } - // // Legacy support for product_id field (if still used) // let productIds: string[] = []; // if (filters.product_id) { diff --git a/shared/utils/productDisplayUtils.ts b/shared/utils/productDisplayUtils.ts index 6ecfbbaec..637bb8b59 100644 --- a/shared/utils/productDisplayUtils.ts +++ b/shared/utils/productDisplayUtils.ts @@ -1,4 +1,7 @@ -import { FeatureType } from "../models/featureModels/featureEnums.js"; +import { + FeatureType, + FeatureUsageType, +} from "../models/featureModels/featureEnums.js"; import type { Feature } from "../models/featureModels/featureModels.js"; import { Infinite } from "../models/productModels/productEnums.js"; import type { ProductItem } from "../models/productV2Models/productItemModels/productItemModels.js"; @@ -12,40 +15,84 @@ import { } from "./productV2Utils/productItemUtils/getItemType.js"; import { notNullish, nullish } from "./utils.js"; +// ============================================================================ +// Types +// ============================================================================ + +interface DisplayResult { + primary_text: string; + secondary_text?: string; +} + +interface FormatTiersParams { + item: ProductItem; + currency?: string | null; + amountFormatOptions?: Intl.NumberFormatOptions; +} + +// ============================================================================ +// Helpers +// ============================================================================ + +const getIntervalDisplay = (item: ProductItem): string | undefined => { + if (!item.interval) return undefined; + + return formatInterval({ + interval: item.interval, + intervalCount: item.interval_count ?? undefined, + }); +}; + +const getIncludedUsageText = (item: ProductItem, feature: Feature): string => { + const featureName = getFeatureName({ + feature, + units: item.included_usage, + }); + + if (item.included_usage === Infinite) { + return `Unlimited ${featureName}`; + } + + if (nullish(item.included_usage) || item.included_usage === 0) { + return `0 ${featureName}`; + } + + return `${numberWithCommas(item.included_usage)} ${featureName}`; +}; + +const isSingleUseFeature = (feature: Feature): boolean => { + return feature.config?.usage_type === FeatureUsageType.Single; +}; + +// ============================================================================ +// Tier Formatting +// ============================================================================ + export const formatTiers = ({ item, currency, amountFormatOptions, -}: { - item: ProductItem; - currency?: string | null; - amountFormatOptions?: Intl.NumberFormatOptions; -}) => { +}: FormatTiersParams): string | undefined => { const tiers = item.tiers; - if (tiers) { - if (tiers.length === 1) { - return formatAmount({ - currency, - amount: tiers[0].amount, - amountFormatOptions, - }); - } + if (!tiers) return undefined; - const firstPrice = tiers[0].amount; - const lastPrice = tiers[tiers.length - 1].amount; + const format = (amount: number) => + formatAmount({ currency, amount, amountFormatOptions }); - return `${formatAmount({ - currency, - amount: firstPrice, - amountFormatOptions, - })} - ${formatAmount({ - currency, - amount: lastPrice, - amountFormatOptions, - })}`; + if (tiers.length === 1) { + return format(tiers[0].amount); } + + const firstPrice = tiers[0].amount; + const lastPrice = tiers[tiers.length - 1].amount; + + return `${format(firstPrice)} - ${format(lastPrice)}`; }; +// ============================================================================ +// Feature Item Display (no pricing, just entitlement) +// ============================================================================ + export const getFeatureItemDisplay = ({ item, feature, @@ -54,57 +101,30 @@ export const getFeatureItemDisplay = ({ item: ProductItem; feature?: Feature; fullDisplay?: boolean; -}) => { - if (!feature) throw new Error(`Feature ${item.feature_id} not found`); +}): DisplayResult => { + if (!feature) { + // Return fallback display when feature is not found (e.g., during feature ID rename) + return { primary_text: item.feature_id || "Loading..." }; + } + // Boolean features just show the name if (feature.type === FeatureType.Boolean) { return { primary_text: feature.name }; } - const featureName = getFeatureName({ - feature, - units: item.included_usage, - }); + const primaryText = getIncludedUsageText(item, feature); - const includedUsageTxt = - item.included_usage === Infinite - ? "Unlimited " - : nullish(item.included_usage) || item.included_usage === 0 - ? "0 " - : `${numberWithCommas(item.included_usage)} `; - - // If interval is null for a feature item, it's a one-time/lifetime feature - const intervalStr = item.interval - ? formatInterval({ - interval: item.interval, - intervalCount: item.interval_count ?? undefined, - }) - : "one-off"; - - return { - primary_text: `${includedUsageTxt}${featureName}`, - secondary_text: fullDisplay ? intervalStr : undefined, - }; -}; - -export const getPriceItemDisplay = ({ - item, - currency, -}: { - item: ProductItem; - currency?: string | null; -}) => { - const primaryText = formatAmount({ - currency, - amount: item.price as number, - }); - - const intervalStr = formatInterval({ - interval: item.interval ?? undefined, - intervalCount: item.interval_count ?? undefined, - }); - - const secondaryText = intervalStr || undefined; + // Determine secondary text (interval display) + let secondaryText: string | undefined; + if (fullDisplay) { + const intervalDisplay = getIntervalDisplay(item); + if (intervalDisplay) { + secondaryText = intervalDisplay; + } else if (isSingleUseFeature(feature)) { + // Only show "one-off" for single-use features, not continuous use + secondaryText = "one-off"; + } + } return { primary_text: primaryText, @@ -112,12 +132,39 @@ export const getPriceItemDisplay = ({ }; }; +// ============================================================================ +// Price Item Display (flat price, no feature) +// ============================================================================ + +export const getPriceItemDisplay = ({ + item, + currency, +}: { + item: ProductItem; + currency?: string | null; +}): DisplayResult => { + const primaryText = formatAmount({ + currency, + amount: item.price as number, + }); + + const secondaryText = getIntervalDisplay(item); + + return { + primary_text: primaryText, + secondary_text: secondaryText, + }; +}; + +// ============================================================================ +// Feature + Price Item Display (usage-based pricing) +// ============================================================================ + export const getFeaturePriceItemDisplay = ({ feature, item, currency, isMainPrice = false, - // minifyIncluded = false, amountFormatOptions, fullDisplay = false, }: { @@ -125,73 +172,77 @@ export const getFeaturePriceItemDisplay = ({ item: ProductItem; currency?: string | null; isMainPrice?: boolean; - // minifyIncluded?: boolean; amountFormatOptions?: Intl.NumberFormatOptions; fullDisplay?: boolean; -}) => { +}): DisplayResult => { if (!feature) { throw new Error(`Feature ${item.feature_id} not found`); } - // 1. Get included usage + // Build included usage string (e.g., "100 credits") + const includedUsage = item.included_usage as number | null; + const hasIncludedUsage = notNullish(includedUsage) && includedUsage > 0; + const includedFeatureName = getFeatureName({ feature, units: item.included_usage, }); + const includedUsageStr = hasIncludedUsage + ? `${numberWithCommas(includedUsage)} ${includedFeatureName}` + : ""; - const includedUsage = item.included_usage as number | null; - let includedUsageStr = ""; - if (notNullish(includedUsage) && includedUsage > 0) { - includedUsageStr = `${numberWithCommas(includedUsage)} ${includedFeatureName}`; - } - + // Build price string (e.g., "$0.01") const priceStr = formatTiers({ item, currency, amountFormatOptions }) ?? ""; - // For "per X" display, use singular when billing_units is 1 or not specified + // Build billing unit string (e.g., "credit" or "100 credits") const billingUnits = item.billing_units ?? 1; const billingFeatureName = getFeatureName({ feature, units: billingUnits, }); + const perUnitStr = + billingUnits > 1 + ? `${numberWithCommas(billingUnits)} ${billingFeatureName}` + : billingFeatureName; - let priceStr2 = ""; - if (billingUnits > 1) { - priceStr2 = `${numberWithCommas(billingUnits)} ${billingFeatureName}`; - } else { - priceStr2 = `${billingFeatureName}`; + // Build interval string + const showInterval = isMainPrice || fullDisplay; + let intervalStr = ""; + if (showInterval) { + const intervalDisplay = getIntervalDisplay(item); + if (intervalDisplay) { + intervalStr = intervalDisplay; + } else if (isSingleUseFeature(feature)) { + intervalStr = "one-off"; + } } - // If interval is null for a priced feature, it's a one-time purchase - const intervalStr = - isMainPrice || fullDisplay - ? item.interval - ? formatInterval({ - interval: item.interval, - intervalCount: item.interval_count ?? undefined, - }) - : "one-off" - : ""; - - if (includedUsageStr) { + // Format output based on what we have + if (hasIncludedUsage) { return { primary_text: includedUsageStr, - secondary_text: `then ${priceStr} per ${priceStr2} ${intervalStr}`, + secondary_text: + `then ${priceStr} per ${perUnitStr} ${intervalStr}`.trim(), }; } - if (isMainPrice || fullDisplay) { + if (showInterval) { return { primary_text: priceStr, - secondary_text: `per ${priceStr2} ${intervalStr}`, + secondary_text: `per ${perUnitStr} ${intervalStr}`.trim(), }; } return { - primary_text: `${priceStr} per ${priceStr2} ${intervalStr}`, + primary_text: `${priceStr} per ${perUnitStr}`.trim(), secondary_text: undefined, }; }; +// ============================================================================ +// Main Entry Point +// ============================================================================ + export const getProductItemDisplay = ({ item, features, @@ -204,26 +255,25 @@ export const getProductItemDisplay = ({ currency?: string | null; fullDisplay?: boolean; amountFormatOptions?: Intl.NumberFormatOptions; -}) => { +}): DisplayResult => { + const findFeature = () => features.find((f) => f.id === item.feature_id); + if (isFeatureItem(item)) { return getFeatureItemDisplay({ item, - feature: features.find((f) => f.id === item.feature_id), + feature: findFeature(), fullDisplay, }); } if (isPriceItem(item)) { - return getPriceItemDisplay({ - item, - currency, - }); + return getPriceItemDisplay({ item, currency }); } if (isFeaturePriceItem(item)) { return getFeaturePriceItemDisplay({ item, - feature: features.find((f) => f.id === item.feature_id), + feature: findFeature(), currency, fullDisplay, amountFormatOptions, diff --git a/shared/utils/productV2Utils/compareProductUtils/compareItemUtils.ts b/shared/utils/productV2Utils/compareProductUtils/compareItemUtils.ts index f2401e365..ed0fb3277 100644 --- a/shared/utils/productV2Utils/compareProductUtils/compareItemUtils.ts +++ b/shared/utils/productV2Utils/compareProductUtils/compareItemUtils.ts @@ -103,6 +103,12 @@ const tiersAreSame = ( ); }; +// Helper to normalize included_usage for comparison (null and 0 are equivalent) +const normalizeIncludedUsage = (value: number | "inf" | null | undefined) => { + if (value === null || value === undefined) return 0; + return value; +}; + export const featureItemsAreSame = ({ item1, item2, @@ -118,7 +124,10 @@ export const featureItemsAreSame = ({ message: `Feature ID different: ${item1.feature_id} != ${item2.feature_id}`, }, included_usage: { - condition: item1.included_usage == item2.included_usage, + // Normalize null/undefined to 0 for comparison since they're semantically equivalent + condition: + normalizeIncludedUsage(item1.included_usage) == + normalizeIncludedUsage(item2.included_usage), message: `Included usage different: ${item1.included_usage} != ${item2.included_usage}`, }, interval: { @@ -232,7 +241,10 @@ export const featurePriceItemsAreSame = ({ // console.log("Item 2 config:", item2.config); const entsSame = { included_usage: { - condition: item1.included_usage == item2.included_usage, + // Normalize null/undefined to 0 for comparison since they're semantically equivalent + condition: + normalizeIncludedUsage(item1.included_usage) == + normalizeIncludedUsage(item2.included_usage), message: `Included usage different: ${item1.included_usage} != ${item2.included_usage}`, }, usage_limit: { diff --git a/vite/src/components/general/table/table-header.tsx b/vite/src/components/general/table/table-header.tsx index 306869073..74400b5f5 100644 --- a/vite/src/components/general/table/table-header.tsx +++ b/vite/src/components/general/table/table-header.tsx @@ -14,7 +14,7 @@ function SortIcon({ sortDirection }: { sortDirection: string | false }) { return ( ); @@ -23,7 +23,7 @@ function SortIcon({ sortDirection }: { sortDirection: string | false }) { return ( ); diff --git a/vite/src/components/v2/inline-custom-plan-editor/InlinePlanEditor.tsx b/vite/src/components/v2/inline-custom-plan-editor/InlinePlanEditor.tsx index fe29d9819..ce4337767 100644 --- a/vite/src/components/v2/inline-custom-plan-editor/InlinePlanEditor.tsx +++ b/vite/src/components/v2/inline-custom-plan-editor/InlinePlanEditor.tsx @@ -3,6 +3,7 @@ import { AnimatePresence, motion } from "motion/react"; import { createPortal } from "react-dom"; import { Button } from "@/components/v2/buttons/Button"; import { ShortcutButton } from "@/components/v2/buttons/ShortcutButton"; +import { SheetOverlay } from "@/components/v2/sheet-overlay/SheetOverlay"; import { cn } from "@/lib/utils"; import { CustomerPlanInfoBox } from "@/views/customers2/customer-plan/CustomerPlanInfoBox"; import { EditPlanHeader } from "@/views/products/plan/components/EditPlanHeader"; @@ -53,7 +54,7 @@ function InlinePlanEditorContent({ onCancel: () => void; }) { const { product } = useProduct(); - const { sheetType, closeSheet } = useSheet(); + const { sheetType } = useSheet(); const hasPlanChanges = useHasPlanChanges(); return ( @@ -63,6 +64,7 @@ function InlinePlanEditorContent({ exit={{ opacity: 0, scale: 0.97, y: 8 }} transition={{ duration: 0.2, ease: [0.16, 1, 0.3, 1] }} className="absolute inset-0 z-100 bg-background flex flex-col" + data-inline-editor-open >
- {description} -
++ {description} +
+ {action} +You have unsaved changes
- +