From d9358df6ff240143bbf2e1d3b2e1fe59339f79c6 Mon Sep 17 00:00:00 2001 From: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Date: Wed, 15 Jul 2026 15:30:27 +0000 Subject: [PATCH] fix(app): show picker for custom agents --- packages/app/src/context/local.tsx | 1 + .../src/pages/session/composer/session-composer-controls.ts | 2 +- packages/app/src/pages/session/use-composer-commands.tsx | 4 ++-- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/packages/app/src/context/local.tsx b/packages/app/src/context/local.tsx index a12fd832fd..fb9c2f7092 100644 --- a/packages/app/src/context/local.tsx +++ b/packages/app/src/context/local.tsx @@ -180,6 +180,7 @@ export const { use: useLocal, provider: LocalProvider } = createSimpleContext({ const agent = { list, + hasCustom: createMemo(() => list().some((item) => item.name !== "build" && item.name !== "plan")), current() { return pickAgent(scope()?.agent ?? store.current) }, diff --git a/packages/app/src/pages/session/composer/session-composer-controls.ts b/packages/app/src/pages/session/composer/session-composer-controls.ts index 8d5d96719c..745bc42e5c 100644 --- a/packages/app/src/pages/session/composer/session-composer-controls.ts +++ b/packages/app/src/pages/session/composer/session-composer-controls.ts @@ -41,7 +41,7 @@ export function createPromptInputController(input: { options: local.agent.list().map((agent) => agent.name), current: local.agent.current()?.name ?? "", loading: agentsQuery.isLoading, - visible: settings.visibility.customAgents(), + visible: settings.visibility.customAgents() || local.agent.hasCustom(), select: local.agent.set, }, model: { diff --git a/packages/app/src/pages/session/use-composer-commands.tsx b/packages/app/src/pages/session/use-composer-commands.tsx index 9b75c7bf4c..4cc3f039ff 100644 --- a/packages/app/src/pages/session/use-composer-commands.tsx +++ b/packages/app/src/pages/session/use-composer-commands.tsx @@ -70,7 +70,7 @@ export const useComposerCommands = (input: { model?: ModelSelection } = {}) => { description: language.t("command.agent.cycle.description"), keybind: "mod+.", slash: "agent", - disabled: !settings.visibility.customAgents(), + disabled: !settings.visibility.customAgents() && !local.agent.hasCustom(), onSelect: () => local.agent.move(1), }), agentCommand({ @@ -78,7 +78,7 @@ export const useComposerCommands = (input: { model?: ModelSelection } = {}) => { title: language.t("command.agent.cycle.reverse"), description: language.t("command.agent.cycle.reverse.description"), keybind: "shift+mod+.", - disabled: !settings.visibility.customAgents(), + disabled: !settings.visibility.customAgents() && !local.agent.hasCustom(), onSelect: () => local.agent.move(-1), }), ])