diff --git a/apps/web/src/routers/kiloclaw-billing-router.test.ts b/apps/web/src/routers/kiloclaw-billing-router.test.ts index 2578e8b87..0e1ec2536 100644 --- a/apps/web/src/routers/kiloclaw-billing-router.test.ts +++ b/apps/web/src/routers/kiloclaw-billing-router.test.ts @@ -368,7 +368,7 @@ describe('getBillingStatus', () => { expect(result.trialEligible).toBe(true); }); - it('returns trialEligible true when user only has a destroyed personal instance row', async () => { + it('returns trialEligible false when user only has a destroyed personal instance row', async () => { await db.insert(kiloclaw_instances).values({ user_id: user.id, sandbox_id: 'sandbox-destroyed', @@ -379,7 +379,7 @@ describe('getBillingStatus', () => { const result = await caller.kiloclaw.getBillingStatus(); expect(result).not.toBeNull(); - expect(result.trialEligible).toBe(true); + expect(result.trialEligible).toBe(false); }); it('returns trialEligible false when user has an active personal instance row', async () => { diff --git a/apps/web/src/routers/kiloclaw-router.ts b/apps/web/src/routers/kiloclaw-router.ts index 09007539f..eb5c6c4ae 100644 --- a/apps/web/src/routers/kiloclaw-router.ts +++ b/apps/web/src/routers/kiloclaw-router.ts @@ -1142,7 +1142,7 @@ async function getPersonalBillingStatus(user: { }; } - const [anySubscription, anyPersonalInstance] = await Promise.all([ + const [anySubscription, anyPersonalInstanceHistory] = await Promise.all([ db .select({ id: kiloclaw_subscriptions.id }) .from(kiloclaw_subscriptions) @@ -1153,11 +1153,7 @@ async function getPersonalBillingStatus(user: { .select({ id: kiloclaw_instances.id }) .from(kiloclaw_instances) .where( - and( - eq(kiloclaw_instances.user_id, user.id), - isNull(kiloclaw_instances.organization_id), - isNull(kiloclaw_instances.destroyed_at) - ) + and(eq(kiloclaw_instances.user_id, user.id), isNull(kiloclaw_instances.organization_id)) ) .limit(1) .then(rows => rows[0] ?? null), @@ -1190,7 +1186,7 @@ async function getPersonalBillingStatus(user: { return { hasAccess, accessReason, - trialEligible: !anyPersonalInstance && !anySubscription, + trialEligible: !anyPersonalInstanceHistory && !anySubscription, creditBalanceMicrodollars, creditIntroEligible, hasActiveKiloPass,