@@ -66,6 +66,11 @@ function WorkflowTagSelect({
6666 return workflows . filter ( ( w ) => selectedIds . includes ( w . id ) )
6767 } , [ workflows , selectedIds ] )
6868
69+ const validSelectedIds = useMemo ( ( ) => {
70+ const workflowIds = new Set ( workflows . map ( ( w ) => w . id ) )
71+ return selectedIds . filter ( ( id ) => workflowIds . has ( id ) )
72+ } , [ workflows , selectedIds ] )
73+
6974 const handleRemove = ( e : React . MouseEvent , id : string ) => {
7075 e . preventDefault ( )
7176 e . stopPropagation ( )
@@ -109,7 +114,7 @@ function WorkflowTagSelect({
109114 < Combobox
110115 options = { options }
111116 multiSelect
112- multiSelectValues = { selectedIds }
117+ multiSelectValues = { validSelectedIds }
113118 onMultiSelectChange = { onSelectionChange }
114119 placeholder = { isEmpty ? 'No deployed workflows available' : 'Select deployed workflows...' }
115120 overlayContent = { overlayContent }
@@ -124,9 +129,15 @@ interface ServerDetailViewProps {
124129 workspaceId : string
125130 serverId : string
126131 onBack : ( ) => void
132+ onToolsChanged ?: ( ) => void
127133}
128134
129- function ServerDetailView ( { workspaceId, serverId, onBack } : ServerDetailViewProps ) {
135+ function ServerDetailView ( {
136+ workspaceId,
137+ serverId,
138+ onBack,
139+ onToolsChanged,
140+ } : ServerDetailViewProps ) {
130141 const { data, isLoading, error, refetch } = useWorkflowMcpServer ( workspaceId , serverId )
131142 const { data : deployedWorkflows = [ ] , isLoading : isLoadingWorkflows } =
132143 useDeployedWorkflows ( workspaceId )
@@ -165,6 +176,7 @@ function ServerDetailView({ workspaceId, serverId, onBack }: ServerDetailViewPro
165176 toolId : toolToDelete . id ,
166177 } )
167178 setToolToDelete ( null )
179+ onToolsChanged ?.( )
168180 } catch ( err ) {
169181 logger . error ( 'Failed to delete tool:' , err )
170182 }
@@ -181,6 +193,7 @@ function ServerDetailView({ workspaceId, serverId, onBack }: ServerDetailViewPro
181193 setShowAddWorkflow ( false )
182194 setSelectedWorkflowId ( null )
183195 refetch ( )
196+ onToolsChanged ?.( )
184197 } catch ( err ) {
185198 logger . error ( 'Failed to add workflow:' , err )
186199 }
@@ -204,7 +217,7 @@ function ServerDetailView({ workspaceId, serverId, onBack }: ServerDetailViewPro
204217 return availableWorkflows . find ( ( w ) => w . id === selectedWorkflowId )
205218 } , [ availableWorkflows , selectedWorkflowId ] )
206219
207- const selectedWorkflowInvalid = selectedWorkflow && selectedWorkflow . hasStartBlock === false
220+ const selectedWorkflowInvalid = selectedWorkflow && selectedWorkflow . hasStartBlock !== true
208221
209222 if ( isLoading ) {
210223 return (
@@ -553,7 +566,12 @@ export function WorkflowMcpServers({ resetKey }: WorkflowMcpServersProps) {
553566 const params = useParams ( )
554567 const workspaceId = params . workspaceId as string
555568
556- const { data : servers = [ ] , isLoading, error } = useWorkflowMcpServers ( workspaceId )
569+ const {
570+ data : servers = [ ] ,
571+ isLoading,
572+ error,
573+ refetch : refetchServers ,
574+ } = useWorkflowMcpServers ( workspaceId )
557575 const { data : deployedWorkflows = [ ] , isLoading : isLoadingWorkflows } =
558576 useDeployedWorkflows ( workspaceId )
559577 const createServerMutation = useCreateWorkflowMcpServer ( )
@@ -584,7 +602,7 @@ export function WorkflowMcpServers({ resetKey }: WorkflowMcpServersProps) {
584602 const invalidWorkflows = useMemo ( ( ) => {
585603 return selectedWorkflowIds
586604 . map ( ( id ) => deployedWorkflows . find ( ( w ) => w . id === id ) )
587- . filter ( ( w ) => w && w . hasStartBlock === false )
605+ . filter ( ( w ) => w && w . hasStartBlock !== true )
588606 . map ( ( w ) => w ! . name )
589607 } , [ selectedWorkflowIds , deployedWorkflows ] )
590608
@@ -634,6 +652,7 @@ export function WorkflowMcpServers({ resetKey }: WorkflowMcpServersProps) {
634652
635653 if ( workflowErrors . length > 0 ) {
636654 setCreateError ( `Server created but failed to add workflows: ${ workflowErrors . join ( ', ' ) } ` )
655+ return
637656 }
638657 }
639658
@@ -673,6 +692,7 @@ export function WorkflowMcpServers({ resetKey }: WorkflowMcpServersProps) {
673692 workspaceId = { workspaceId }
674693 serverId = { selectedServerId }
675694 onBack = { ( ) => setSelectedServerId ( null ) }
695+ onToolsChanged = { refetchServers }
676696 />
677697 )
678698 }
0 commit comments