From 93f271ae65340302ec83a27a32774b7abdd46de7 Mon Sep 17 00:00:00 2001 From: "kiloconnect[bot]" <240665456+kiloconnect[bot]@users.noreply.github.com> Date: Tue, 26 May 2026 16:09:43 +0000 Subject: [PATCH 1/2] feat(notifications): add Grok Code Fast 1 Optimized discontinued notification --- apps/web/src/lib/notifications.ts | 40 +++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/apps/web/src/lib/notifications.ts b/apps/web/src/lib/notifications.ts index 6d639e1a78..5a96d9aaa8 100644 --- a/apps/web/src/lib/notifications.ts +++ b/apps/web/src/lib/notifications.ts @@ -9,6 +9,7 @@ import { cachedPosthogQuery } from '@/lib/posthog-query'; import * as z from 'zod'; import { fromMicrodollars } from '@/lib/utils'; +import { KILO_AUTO_FREE_MODEL } from '@/lib/ai-gateway/auto-model'; /** Pre-fetched data shared across notification generators to avoid duplicate DB queries. */ type NotificationContext = { @@ -115,6 +116,7 @@ export async function generateUserNotifications(user: User): Promise { + try { + const users = await cachedPosthogQuery( + z.array(z.tuple([z.string()]).transform(([userId]) => userId)) + )( + 'grok-code-fast-1-optimized-discontinued-users', + 'select kilo_user_id from notification_grok_code_may_15 limit 5e5' + ); + + if (!users.includes(user.id)) { + console.debug( + '[generateGrokCodeFast1OptimizedDiscontinuedNotification] not showing notification for user' + ); + return []; + } + + console.debug( + '[generateGrokCodeFast1OptimizedDiscontinuedNotification] showing notification for user' + ); + return [ + { + id: 'grok-code-fast-1-optimized-discontinued-may-15', + title: 'Grok Code Fast 1 Optimized is discontinued', + message: + 'Grok Code Fast 1 Optimized has been discontinued. Please switch to Auto Free or another model.', + suggestModelId: KILO_AUTO_FREE_MODEL.id, + showIn: ['cli', 'extension'], + }, + ]; + } catch (e) { + console.error('[generateGrokCodeFast1OptimizedDiscontinuedNotification]', e); + return []; + } +} + async function generateKiloPassNotification( user: User, ctx: NotificationContext From 55cbe31b67a1c139b1934d936934e988f1803b5c Mon Sep 17 00:00:00 2001 From: "kiloconnect[bot]" <240665456+kiloconnect[bot]@users.noreply.github.com> Date: Tue, 26 May 2026 16:23:24 +0000 Subject: [PATCH 2/2] fix(notifications): hoist posthog query and suggest Grok Build 0.1 --- apps/web/src/lib/notifications.ts | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/apps/web/src/lib/notifications.ts b/apps/web/src/lib/notifications.ts index 5a96d9aaa8..f889971f5c 100644 --- a/apps/web/src/lib/notifications.ts +++ b/apps/web/src/lib/notifications.ts @@ -9,7 +9,6 @@ import { cachedPosthogQuery } from '@/lib/posthog-query'; import * as z from 'zod'; import { fromMicrodollars } from '@/lib/utils'; -import { KILO_AUTO_FREE_MODEL } from '@/lib/ai-gateway/auto-model'; /** Pre-fetched data shared across notification generators to avoid duplicate DB queries. */ type NotificationContext = { @@ -295,14 +294,16 @@ async function generateByokProvidersNotification( } } +const getGrokCodeFast1OptimizedDiscontinuedUsers = cachedPosthogQuery( + z.array(z.tuple([z.string()]).transform(([userId]) => userId)) +); + async function generateGrokCodeFast1OptimizedDiscontinuedNotification( user: User, _ctx: NotificationContext ): Promise { try { - const users = await cachedPosthogQuery( - z.array(z.tuple([z.string()]).transform(([userId]) => userId)) - )( + const users = await getGrokCodeFast1OptimizedDiscontinuedUsers( 'grok-code-fast-1-optimized-discontinued-users', 'select kilo_user_id from notification_grok_code_may_15 limit 5e5' ); @@ -322,8 +323,8 @@ async function generateGrokCodeFast1OptimizedDiscontinuedNotification( id: 'grok-code-fast-1-optimized-discontinued-may-15', title: 'Grok Code Fast 1 Optimized is discontinued', message: - 'Grok Code Fast 1 Optimized has been discontinued. Please switch to Auto Free or another model.', - suggestModelId: KILO_AUTO_FREE_MODEL.id, + 'Grok Code Fast 1 Optimized has been discontinued. Give Grok Build 0.1 a try as a replacement.', + suggestModelId: 'x-ai/grok-build-0.1', showIn: ['cli', 'extension'], }, ];