MCPcopy Create free account
hub / github.com/ChatLab/ChatLab / initPreferencesSync

Function initPreferencesSync

src/composables/usePreferencesSync.ts:19–49  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

17let _synced = false
18
19export async function initPreferencesSync(): Promise<void> {
20 if (_synced) return
21 _synced = true
22
23 const svc = usePreferencesService()
24
25 try {
26 const [prefs, uiConfig, locale] = await Promise.all([svc.getPreferences(), svc.getUiConfig(), svc.getLocale()])
27
28 // config.toml fields — not covered by the plugin
29 setUiConfig(uiConfig)
30 const settingsStore = useSettingsStore()
31 if (uiConfig.default_session_tab) {
32 settingsStore.defaultSessionTab = uiConfig.default_session_tab
33 }
34 if (locale) {
35 settingsStore.$patch({ locale: locale as 'zh-CN' | 'en-US' | 'zh-TW' | 'ja-JP' })
36 }
37
38 // preferences.json fields — plugin handles field-level hydration
39 hydrateAllStores(prefs)
40 } catch (err) {
41 console.warn('[PreferencesSync] Failed to load from backend, keeping default state:', err)
42 }
43
44 // Activate write-back for preferences.json
45 initBackendPersist((partial) => svc.savePreferences(partial))
46
47 // config.toml watchers (not managed by plugin)
48 setupConfigWatchers(svc)
49}
50
51function setupConfigWatchers(svc: ReturnType<typeof usePreferencesService>): void {
52 const settingsStore = useSettingsStore()

Callers

nothing calls this directly

Calls 11

usePreferencesServiceFunction · 0.90
setUiConfigFunction · 0.90
hydrateAllStoresFunction · 0.90
initBackendPersistFunction · 0.90
setupConfigWatchersFunction · 0.85
allMethod · 0.65
getPreferencesMethod · 0.65
getUiConfigMethod · 0.65
getLocaleMethod · 0.65
warnMethod · 0.65
savePreferencesMethod · 0.65

Tested by

no test coverage detected