diff --git a/packages/web/server/lib/opencode/settings-runtime.js b/packages/web/server/lib/opencode/settings-runtime.js index bed2d240..2e6de0c4 100644 --- a/packages/web/server/lib/opencode/settings-runtime.js +++ b/packages/web/server/lib/opencode/settings-runtime.js @@ -692,8 +692,8 @@ export const createSettingsRuntime = (deps) => { return { settings, changed: false }; } - const defaultLight = 'flexoki-light'; - const defaultDark = 'flexoki-dark'; + const defaultLight = 'openchamber-light'; + const defaultDark = 'openchamber-dark'; let nextLightThemeId = hasLight ? settings.lightThemeId : undefined; let nextDarkThemeId = hasDark ? settings.darkThemeId : undefined; diff --git a/packages/web/server/lib/opencode/settings-runtime.test.js b/packages/web/server/lib/opencode/settings-runtime.test.js index 46a84827..95ff3c69 100644 --- a/packages/web/server/lib/opencode/settings-runtime.test.js +++ b/packages/web/server/lib/opencode/settings-runtime.test.js @@ -39,6 +39,35 @@ const createRuntime = async () => { }; describe('settings runtime', () => { + it('uses OpenChamber themes when a new install has no theme preferences', async () => { + const { runtime, cleanup } = await createRuntime(); + try { + await expect(runtime.readSettingsFromDiskMigrated()).resolves.toMatchObject({ + lightThemeId: 'openchamber-light', + darkThemeId: 'openchamber-dark', + }); + } finally { + await cleanup(); + } + }); + + it('preserves existing theme preferences during theme migration', async () => { + const { runtime, settingsFilePath, cleanup } = await createRuntime(); + try { + await fsPromises.writeFile(settingsFilePath, JSON.stringify({ + lightThemeId: 'flexoki-light', + darkThemeId: 'flexoki-dark', + }), 'utf8'); + + await expect(runtime.readSettingsFromDiskMigrated()).resolves.toMatchObject({ + lightThemeId: 'flexoki-light', + darkThemeId: 'flexoki-dark', + }); + } finally { + await cleanup(); + } + }); + it('round-trips shared sidebar preferences through settings.json', async () => { const { runtime, settingsFilePath, cleanup } = await createRuntime(); const preferences = {