init claude-code
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
import {
|
||||
type AnalyticsMetadata_I_VERIFIED_THIS_IS_NOT_CODE_OR_FILEPATHS,
|
||||
logEvent,
|
||||
} from '../services/analytics/index.js'
|
||||
import { saveGlobalConfig } from '../utils/config.js'
|
||||
import { isLegacyModelRemapEnabled } from '../utils/model/model.js'
|
||||
import { getAPIProvider } from '../utils/model/providers.js'
|
||||
import {
|
||||
getSettingsForSource,
|
||||
updateSettingsForSource,
|
||||
} from '../utils/settings/settings.js'
|
||||
|
||||
/**
|
||||
* Migrate first-party users off explicit Opus 4.0/4.1 model strings.
|
||||
*
|
||||
* The 'opus' alias already resolves to Opus 4.6 for 1P, so anyone still
|
||||
* on an explicit 4.0/4.1 string pinned it in settings before 4.5 launched.
|
||||
* parseUserSpecifiedModel now silently remaps these at runtime anyway —
|
||||
* this migration cleans up the settings file so /model shows the right
|
||||
* thing, and sets a timestamp so the REPL can show a one-time notification.
|
||||
*
|
||||
* Only touches userSettings. Legacy strings in project/local/policy settings
|
||||
* are left alone (we can't/shouldn't rewrite those) and are still remapped at
|
||||
* runtime by parseUserSpecifiedModel. Reading and writing the same source
|
||||
* keeps this idempotent without a completion flag, and avoids silently
|
||||
* promoting 'opus' to the global default for users who only pinned it in one
|
||||
* project.
|
||||
*/
|
||||
export function migrateLegacyOpusToCurrent(): void {
|
||||
if (getAPIProvider() !== 'firstParty') {
|
||||
return
|
||||
}
|
||||
|
||||
if (!isLegacyModelRemapEnabled()) {
|
||||
return
|
||||
}
|
||||
|
||||
const model = getSettingsForSource('userSettings')?.model
|
||||
if (
|
||||
model !== 'claude-opus-4-20250514' &&
|
||||
model !== 'claude-opus-4-1-20250805' &&
|
||||
model !== 'claude-opus-4-0' &&
|
||||
model !== 'claude-opus-4-1'
|
||||
) {
|
||||
return
|
||||
}
|
||||
|
||||
updateSettingsForSource('userSettings', { model: 'opus' })
|
||||
saveGlobalConfig(current => ({
|
||||
...current,
|
||||
legacyOpusMigrationTimestamp: Date.now(),
|
||||
}))
|
||||
logEvent('tengu_legacy_opus_migration', {
|
||||
from_model:
|
||||
model as AnalyticsMetadata_I_VERIFIED_THIS_IS_NOT_CODE_OR_FILEPATHS,
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user