From fc6d53b4926731651c46d996f5cd2cb0f7c4d48f Mon Sep 17 00:00:00 2001 From: ciregenz Date: Tue, 16 Jun 2026 23:00:23 -0700 Subject: [PATCH] [eric] phase3: hide the trial-spent nudge once a real model is connected --- frontend/src/app/components/Layout/AppShell.tsx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/frontend/src/app/components/Layout/AppShell.tsx b/frontend/src/app/components/Layout/AppShell.tsx index 60f951d9..670e78e9 100644 --- a/frontend/src/app/components/Layout/AppShell.tsx +++ b/frontend/src/app/components/Layout/AppShell.tsx @@ -174,7 +174,9 @@ const AppShell: React.FC = () => { const [ftNudgeDismissed, setFtNudgeDismissed] = useState(() => { try { return localStorage.getItem('os_ft_nudge_dismissed') === '1'; } catch { return false; } }); - const showFreeTrialNudge = isOnline && (freeTrialSpent || (freeTrialUsed && !ftNudgeDismissed)); + // Spent nudge hides the moment they connect a real model; the post-wow nudge only shows on the + // trial lane (so it already implies no own model) and is dismissible. + const showFreeTrialNudge = isOnline && ((freeTrialSpent && !hasModelConnected) || (freeTrialUsed && !ftNudgeDismissed)); const bannerDismissedForVersion = availableVersion != null && dismissedVersion === availableVersion; const isUpdateActionable = updateStatus === 'available' || updateStatus === 'downloaded' || updateStatus === 'downloading';