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) => {