From bf8c415a724c38887b1359f1a3da38606fb311c9 Mon Sep 17 00:00:00 2001 From: mnavid Date: Mon, 13 Oct 2025 18:48:12 +0200 Subject: [PATCH 1/2] Add job to complete incomplete unboardings before releasing the new onboarding We need to make sure all current users have the onboarding completed before removing the feature flag, else they will go through it when they already know how to use the app. --- apps/workers/src/workers/schedule.ts | 7 ++++++ .../worker-definitions/maintenanceWorker.ts | 1 + .../fillOnboardingsAsCompletedJob.ts | 24 +++++++++++++++++++ .../jobs/job-definitions/maintenance/index.ts | 1 + 4 files changed, 33 insertions(+) create mode 100644 packages/core/src/jobs/job-definitions/maintenance/fillOnboardingsAsCompletedJob.ts diff --git a/apps/workers/src/workers/schedule.ts b/apps/workers/src/workers/schedule.ts index 268a82340d..c274e625da 100644 --- a/apps/workers/src/workers/schedule.ts +++ b/apps/workers/src/workers/schedule.ts @@ -51,4 +51,11 @@ export async function setupSchedules() { { pattern: '0 0 1 * * *' }, { opts: { attempts: 1 } }, ) + + // Every day at 9 PM to add smth - This will be deleted after its run once + await maintenanceQueue.upsertJobScheduler( + 'fillOnboardingsAsCompletedJob', + { pattern: '0 0 21 * * *' }, + { opts: { attempts: 1 } }, + ) } diff --git a/apps/workers/src/workers/worker-definitions/maintenanceWorker.ts b/apps/workers/src/workers/worker-definitions/maintenanceWorker.ts index 2f338ef652..440a896e95 100644 --- a/apps/workers/src/workers/worker-definitions/maintenanceWorker.ts +++ b/apps/workers/src/workers/worker-definitions/maintenanceWorker.ts @@ -16,6 +16,7 @@ const jobMappings = { requestDocumentSuggestionsJob: jobs.requestDocumentSuggestionsJob, scaleDownMcpServerJob: jobs.scaleDownMcpServerJob, updateMcpServerLastUsedJob: jobs.updateMcpServerLastUsedJob, + fillOnboardingsAsCompletedJob: jobs.fillOnboardingsAsCompletedJob, } export function startMaintenanceWorker() { diff --git a/packages/core/src/jobs/job-definitions/maintenance/fillOnboardingsAsCompletedJob.ts b/packages/core/src/jobs/job-definitions/maintenance/fillOnboardingsAsCompletedJob.ts new file mode 100644 index 0000000000..f6f1cbb52d --- /dev/null +++ b/packages/core/src/jobs/job-definitions/maintenance/fillOnboardingsAsCompletedJob.ts @@ -0,0 +1,24 @@ +import { Job } from 'bullmq' +import { Result } from '../../../lib/Result' +import { workspaceOnboarding } from '../../../schema/models/workspaceOnboarding' +import { database } from '../../../client' +import { isNull } from 'drizzle-orm' + +export type FillOnboardingsAsCompletedJobData = Record + +export const fillOnboardingsAsCompletedJob = async ( + _: Job, +) => { + const updatedOnboardings = await database + .update(workspaceOnboarding) + .set({ + completedAt: new Date(), + }) + .where(isNull(workspaceOnboarding.completedAt)) + .returning() + + return Result.ok({ + success: true, + updatedOnboardings: updatedOnboardings.length, + }) +} diff --git a/packages/core/src/jobs/job-definitions/maintenance/index.ts b/packages/core/src/jobs/job-definitions/maintenance/index.ts index 796fa8d728..2473edadb6 100644 --- a/packages/core/src/jobs/job-definitions/maintenance/index.ts +++ b/packages/core/src/jobs/job-definitions/maintenance/index.ts @@ -4,3 +4,4 @@ export * from './refreshProjectsStatsCacheJob' export * from './refreshProjectStatsCacheJob' export * from './scheduleWorkspaceCleanupJobs' export * from './cleanupWorkspaceOldLogsJob' +export * from './fillOnboardingsAsCompletedJob' From e606550846c9ee3d486feed0572813392601ac41 Mon Sep 17 00:00:00 2001 From: mnavid Date: Tue, 14 Oct 2025 08:55:01 +0200 Subject: [PATCH 2/2] update time to 11am --- apps/workers/src/workers/schedule.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/workers/src/workers/schedule.ts b/apps/workers/src/workers/schedule.ts index c274e625da..4221984455 100644 --- a/apps/workers/src/workers/schedule.ts +++ b/apps/workers/src/workers/schedule.ts @@ -52,10 +52,10 @@ export async function setupSchedules() { { opts: { attempts: 1 } }, ) - // Every day at 9 PM to add smth - This will be deleted after its run once + // Every day at 11 AM to add smth - This will be deleted after its run once await maintenanceQueue.upsertJobScheduler( 'fillOnboardingsAsCompletedJob', - { pattern: '0 0 21 * * *' }, + { pattern: '0 0 11 * * *' }, { opts: { attempts: 1 } }, ) }