From 68eb79d9e1a44b28e04abda8cbecb3acccf10481 Mon Sep 17 00:00:00 2001
From: ZiyaZhang <199893125+ZiyaZhang@users.noreply.github.com>
Date: Mon, 28 Sep 2026 23:43:21 -0700
Subject: [PATCH] fix(web): handle preset settings updates and empty choices
---
.../src/client/AgentPresetSeat.tsx | 12 +++----
.../ui-agent-preset/src/client/index.ts | 14 ++++----
.../tests/apply.client.spec.ts | 33 +++++++++++++++++++
.../tests/components.client.spec.tsx | 29 +++++++++++++++-
4 files changed, 75 insertions(+), 13 deletions(-)
diff --git a/packages/client/ui-agent-preset/src/client/AgentPresetSeat.tsx b/packages/client/ui-agent-preset/src/client/AgentPresetSeat.tsx
index 41f22e12c0..c2036be0d6 100644
--- a/packages/client/ui-agent-preset/src/client/AgentPresetSeat.tsx
+++ b/packages/client/ui-agent-preset/src/client/AgentPresetSeat.tsx
@@ -93,12 +93,12 @@ export function AgentPresetSeat({
void load()
}, [load])
+ const options = state.options.filter(option => developerTools || !requiresCodingTools(option))
+
// Close a menu whose available choices just changed.
useEffect(() => {
setOpen(false)
- }, [developerTools])
-
- const options = state.options.filter(option => developerTools || !requiresCodingTools(option))
+ }, [developerTools, options.length])
const chosen = state.options.find(option => option.id === state.current)
const chosenText = chosen === undefined ? undefined : presetDisplayText(chosen, t)
@@ -152,7 +152,7 @@ export function AgentPresetSeat({
return (
<>