From db90dff1396fecbf7029e9e9ea19d6c6ca3e644e Mon Sep 17 00:00:00 2001 From: Shakker Date: Thu, 6 Aug 2026 21:06:36 +0100 Subject: [PATCH] fix: preserve chat settings ownership (#120036) --- ui/src/pages/chat/chat-send.test.ts | 8 +++++++- ui/src/pages/chat/chat-state-page.ts | 8 +++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/ui/src/pages/chat/chat-send.test.ts b/ui/src/pages/chat/chat-send.test.ts index bd1d22a6f142..dda1d98f93ec 100644 --- a/ui/src/pages/chat/chat-send.test.ts +++ b/ui/src/pages/chat/chat-send.test.ts @@ -411,7 +411,13 @@ function makeHost(overrides?: MakeHostOverrides): TestChatHost | TestChatHostWit chatProgrammaticScrollTarget: 0, applySettings: vi.fn((patch: Partial) => { // Chat pages own display/layout settings; active-session persistence belongs to pane bindings. - Object.assign(settings, patch); + const next = { ...settings, ...patch }; + Object.assign(settings, { + chatShowThinking: next.chatShowThinking, + chatShowToolCalls: next.chatShowToolCalls, + chatPersistCommentary: next.chatPersistCommentary, + chatSendShortcut: next.chatSendShortcut, + }); }), ...hostOverrides, settings, diff --git a/ui/src/pages/chat/chat-state-page.ts b/ui/src/pages/chat/chat-state-page.ts index 4a4837edaac6..00d959819058 100644 --- a/ui/src/pages/chat/chat-state-page.ts +++ b/ui/src/pages/chat/chat-state-page.ts @@ -264,7 +264,13 @@ export function createPageState( state.handleChatDraftChange = (next) => handleChatDraftChange(state, next); state.handleChatInputHistoryKey = (input) => handleChatInputHistoryKey(state, input); state.applySettings = (patch) => { - state.settings = patchSettings(patch); + const next = { ...state.settings, ...patch }; + state.settings = patchSettings({ + chatShowThinking: next.chatShowThinking, + chatShowToolCalls: next.chatShowToolCalls, + chatPersistCommentary: next.chatPersistCommentary, + chatSendShortcut: next.chatSendShortcut, + }); renderLifecycle.invalidate(); }; state.setChatViewMenuOpen = (open, options) => {