From 4204b9d087b681d93072535144102b0b64111e47 Mon Sep 17 00:00:00 2001 From: Simon Klee Date: Wed, 22 Jul 2026 16:02:17 +0200 Subject: [PATCH] fix(tui): show providers in Mini model search (#38321) --- packages/tui/src/mini/footer.command.tsx | 6 +++++- packages/tui/test/mini/footer.view.test.tsx | 13 ++++++++++++- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/packages/tui/src/mini/footer.command.tsx b/packages/tui/src/mini/footer.command.tsx index 38be78a682..e7c8da0d8b 100644 --- a/packages/tui/src/mini/footer.command.tsx +++ b/packages/tui/src/mini/footer.command.tsx @@ -1069,7 +1069,11 @@ export function RunModelSelectBody(props: { > + controller.query().trim() + ? controller.items().map((item) => ({ ...item, footer: item.providerName })) + : controller.items() + } selected={controller.menu.selected} offset={controller.menu.offset} rows={() => PANEL_LIST_ROWS} diff --git a/packages/tui/test/mini/footer.view.test.tsx b/packages/tui/test/mini/footer.view.test.tsx index 6fb78b1bea..f86287124e 100644 --- a/packages/tui/test/mini/footer.view.test.tsx +++ b/packages/tui/test/mini/footer.view.test.tsx @@ -1498,7 +1498,10 @@ test("direct permission rejection submits through keymap return binding", async }) test("direct model panel renders current model selector", async () => { - const [providers] = createSignal([provider()]) + const [providers] = createSignal([ + provider(), + { id: "openai", name: "OpenAI", models: { "gpt-5": model({ id: "gpt-5", name: "GPT-5" }) } }, + ]) const [current] = createSignal({ providerID: "opencode", modelID: "gpt-5" }) const app = await testRender( @@ -1535,6 +1538,14 @@ test("direct model panel renders current model selector", async () => { expect(frame).not.toContain("┃") expect(frame).not.toContain("Old Model") expectPaletteList(list, 2) + + "gpt-5".split("").forEach((key) => app.mockInput.pressKey(key)) + await app.renderOnce() + const search = app.captureCharFrame() + + expect(search.match(/GPT-5/g)).toHaveLength(2) + expect(search).toContain("opencode") + expect(search).toContain("OpenAI") } finally { app.renderer.destroy() }