/ migrations / resetProToOpusDefault.ts
resetProToOpusDefault.ts
1 import { logEvent } from 'src/services/analytics/index.js' 2 import { isProSubscriber } from '../utils/auth.js' 3 import { getGlobalConfig, saveGlobalConfig } from '../utils/config.js' 4 import { getAPIProvider } from '../utils/model/providers.js' 5 import { getSettings_DEPRECATED } from '../utils/settings/settings.js' 6 7 export function resetProToOpusDefault(): void { 8 const config = getGlobalConfig() 9 10 if (config.opusProMigrationComplete) { 11 return 12 } 13 14 const apiProvider = getAPIProvider() 15 16 // Pro users on firstParty get auto-migrated to Opus 4.5 default 17 if (apiProvider !== 'firstParty' || !isProSubscriber()) { 18 saveGlobalConfig(current => ({ 19 ...current, 20 opusProMigrationComplete: true, 21 })) 22 logEvent('tengu_reset_pro_to_opus_default', { skipped: true }) 23 return 24 } 25 26 const settings = getSettings_DEPRECATED() 27 28 // Only show notification if user was on default (no custom model setting) 29 if (settings?.model === undefined) { 30 const opusProMigrationTimestamp = Date.now() 31 saveGlobalConfig(current => ({ 32 ...current, 33 opusProMigrationComplete: true, 34 opusProMigrationTimestamp, 35 })) 36 logEvent('tengu_reset_pro_to_opus_default', { 37 skipped: false, 38 had_custom_model: false, 39 }) 40 } else { 41 // User has a custom model setting, just mark migration complete 42 saveGlobalConfig(current => ({ 43 ...current, 44 opusProMigrationComplete: true, 45 })) 46 logEvent('tengu_reset_pro_to_opus_default', { 47 skipped: false, 48 had_custom_model: true, 49 }) 50 } 51 }