init
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
import {
|
||||
getMainLoopModelOverride,
|
||||
setMainLoopModelOverride,
|
||||
} from '../bootstrap/state.js'
|
||||
import { getGlobalConfig, saveGlobalConfig } from '../utils/config.js'
|
||||
import {
|
||||
getSettingsForSource,
|
||||
updateSettingsForSource,
|
||||
} from '../utils/settings/settings.js'
|
||||
|
||||
/**
|
||||
* Migrate users who had "sonnet[1m]" saved to the explicit "sonnet-4-5-20250929[1m]".
|
||||
*
|
||||
* The "sonnet" alias now resolves to Sonnet 4.6, so users who previously set
|
||||
* "sonnet[1m]" (targeting Sonnet 4.5 with 1M context) need to be pinned to the
|
||||
* explicit version to preserve their intended model.
|
||||
*
|
||||
* This is needed because Sonnet 4.6 1M was offered to a different group of users than
|
||||
* Sonnet 4.5 1M, so we needed to pin existing sonnet[1m] users to Sonnet 4.5 1M.
|
||||
*
|
||||
* Reads from userSettings specifically (not merged settings) so we don't
|
||||
* promote a project-scoped "sonnet[1m]" to the global default. Runs once,
|
||||
* tracked by a completion flag in global config.
|
||||
*/
|
||||
export function migrateSonnet1mToSonnet45(): void {
|
||||
const config = getGlobalConfig()
|
||||
if (config.sonnet1m45MigrationComplete) {
|
||||
return
|
||||
}
|
||||
|
||||
const model = getSettingsForSource('userSettings')?.model
|
||||
if (model === 'sonnet[1m]') {
|
||||
updateSettingsForSource('userSettings', {
|
||||
model: 'sonnet-4-5-20250929[1m]',
|
||||
})
|
||||
}
|
||||
|
||||
// Also migrate the in-memory override if already set
|
||||
const override = getMainLoopModelOverride()
|
||||
if (override === 'sonnet[1m]') {
|
||||
setMainLoopModelOverride('sonnet-4-5-20250929[1m]')
|
||||
}
|
||||
|
||||
saveGlobalConfig(current => ({
|
||||
...current,
|
||||
sonnet1m45MigrationComplete: true,
|
||||
}))
|
||||
}
|
||||
Reference in New Issue
Block a user