From e38389a01eb5fb2f5aa5beabea112d719d0ef3f2 Mon Sep 17 00:00:00 2001 From: can1357 Date: Sat, 18 Jul 2026 20:04:49 +0200 Subject: [PATCH] fix: match terminal.showImages schema path in settings side-effect switch SettingsSelector dispatches schema settings by full path (terminal.showImages), so the showImages case never fired from the /settings flow. Add the full-path case label and cover both ids in the side-effect test. --- .../src/modes/controllers/selector-controller.ts | 1 + .../test/selector-settings-side-effects.test.ts | 6 ++++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/coding-agent/src/modes/controllers/selector-controller.ts b/packages/coding-agent/src/modes/controllers/selector-controller.ts index e6013d987..2983912e2 100644 --- a/packages/coding-agent/src/modes/controllers/selector-controller.ts +++ b/packages/coding-agent/src/modes/controllers/selector-controller.ts @@ -442,6 +442,7 @@ export class SelectorController { break; // Settings with UI side effects + case "terminal.showImages": case "showImages": { const visible = value as boolean; for (const child of this.ctx.chatContainer.children) { diff --git a/packages/coding-agent/test/selector-settings-side-effects.test.ts b/packages/coding-agent/test/selector-settings-side-effects.test.ts index 5119b0e4b..28b13d1f0 100644 --- a/packages/coding-agent/test/selector-settings-side-effects.test.ts +++ b/packages/coding-agent/test/selector-settings-side-effects.test.ts @@ -67,8 +67,9 @@ describe("selector setting side effects", () => { expect(requestRender).toHaveBeenCalledTimes(1); }); + for (const id of ["terminal.showImages", "showImages"]) { for (const visible of [false, true]) { - it(`updates every image owner and rebuilds the transcript when showImages=${visible}`, () => { + it(`updates every image owner and rebuilds the transcript when ${id}=${visible}`, () => { const setShowImages = vi.fn(); const setImagesVisible = vi.fn(); const clearInlineImages = vi.fn(); @@ -82,7 +83,7 @@ describe("selector setting side effects", () => { ui: { clearInlineImages, resetDisplay }, } as unknown as InteractiveModeContext); - controller.handleSettingChange("showImages", visible); + controller.handleSettingChange(id, visible); expect(setShowImages).toHaveBeenCalledWith(visible); expect(setImagesVisible).toHaveBeenCalledWith(visible); @@ -95,6 +96,7 @@ describe("selector setting side effects", () => { } }); } + } it("clears stale default role thinking when auto is selected", async () => { const testTheme = await getThemeByName("dark");