From ac41d4e8c9cdf9d66431cc905dc2c48118a1815e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pascal=20Andr=C3=A9?= Date: Fri, 21 Aug 2026 11:57:59 +0200 Subject: [PATCH] fix(settings): persist editor font size --- packages/web/server/lib/opencode/settings-helpers.js | 3 +++ .../web/server/lib/opencode/settings-helpers.test.js | 10 ++++++++++ 2 files changed, 13 insertions(+) diff --git a/packages/web/server/lib/opencode/settings-helpers.js b/packages/web/server/lib/opencode/settings-helpers.js index 5095806a..3cca764f 100644 --- a/packages/web/server/lib/opencode/settings-helpers.js +++ b/packages/web/server/lib/opencode/settings-helpers.js @@ -601,6 +601,9 @@ export const createSettingsHelpers = (dependencies) => { if (typeof candidate.terminalFontSize === 'number' && Number.isFinite(candidate.terminalFontSize)) { result.terminalFontSize = Math.max(9, Math.min(52, Math.round(candidate.terminalFontSize))); } + if (typeof candidate.editorFontSize === 'number' && Number.isFinite(candidate.editorFontSize)) { + result.editorFontSize = Math.max(9, Math.min(32, Math.round(candidate.editorFontSize))); + } if (typeof candidate.terminalShell === 'string') { const shell = candidate.terminalShell.trim().toLowerCase(); if (TERMINAL_SHELL_VALUES.has(shell)) result.terminalShell = shell; diff --git a/packages/web/server/lib/opencode/settings-helpers.test.js b/packages/web/server/lib/opencode/settings-helpers.test.js index 543c5531..a27b6bac 100644 --- a/packages/web/server/lib/opencode/settings-helpers.test.js +++ b/packages/web/server/lib/opencode/settings-helpers.test.js @@ -82,6 +82,16 @@ describe('settings helpers', () => { expect(helpers.sanitizeSettingsUpdate({ collapsibleUserMessages: 'true' })).toEqual({}); }); + it('sanitizes and returns the persisted editor font size', () => { + const helpers = createTestHelpers(); + + expect(helpers.sanitizeSettingsUpdate({ editorFontSize: 20.6 })).toEqual({ editorFontSize: 21 }); + expect(helpers.sanitizeSettingsUpdate({ editorFontSize: 8 })).toEqual({ editorFontSize: 9 }); + expect(helpers.sanitizeSettingsUpdate({ editorFontSize: 33 })).toEqual({ editorFontSize: 32 }); + expect(helpers.sanitizeSettingsUpdate({ editorFontSize: Number.NaN })).toEqual({}); + expect(helpers.formatSettingsResponse({ editorFontSize: 20 })).toMatchObject({ editorFontSize: 20 }); + }); + it('accepts messageStreamTransport as a persisted shared setting', () => { const helpers = createTestHelpers();