Skip to content

Commit cf2422c

Browse files
committed
fix async close
1 parent f941819 commit cf2422c

File tree

2 files changed

+17
-6
lines changed

2 files changed

+17
-6
lines changed

src/webui/components/agent_settings_tab.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,13 @@ def update_model_dropdown(llm_provider):
2424
return gr.Dropdown(choices=[], value="", interactive=True, allow_custom_value=True)
2525

2626

27-
def update_mcp_server(mcp_file: str, webui_manager: WebuiManager):
27+
async def update_mcp_server(mcp_file: str, webui_manager: WebuiManager):
2828
"""
2929
Update the MCP server.
3030
"""
3131
if hasattr(webui_manager, "bu_controller") and webui_manager.bu_controller:
3232
logger.warning("⚠️ Close controller because mcp file has changed!")
33-
webui_manager.bu_controller.close_mcp_client()
33+
await webui_manager.bu_controller.close_mcp_client()
3434
webui_manager.bu_controller = None
3535

3636
if not mcp_file or not os.path.exists(mcp_file) or not mcp_file.endswith('.json'):
@@ -257,8 +257,13 @@ def create_agent_settings_tab(webui_manager: WebuiManager):
257257
outputs=[planner_llm_model_name]
258258
)
259259

260+
async def update_wrapper(mcp_file):
261+
"""Wrapper for handle_pause_resume."""
262+
update_dict = await update_mcp_server(mcp_file, webui_manager)
263+
yield update_dict
264+
260265
mcp_json_file.change(
261-
partial(update_mcp_server, webui_manager=webui_manager),
266+
update_wrapper,
262267
inputs=[mcp_json_file],
263268
outputs=[mcp_server_config, mcp_server_config]
264269
)

src/webui/components/deep_research_agent_tab.py

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -349,13 +349,13 @@ async def stop_deep_research(webui_manager: WebuiManager) -> Dict[Component, Any
349349
return final_update
350350

351351

352-
def update_mcp_server(mcp_file: str, webui_manager: WebuiManager):
352+
async def update_mcp_server(mcp_file: str, webui_manager: WebuiManager):
353353
"""
354354
Update the MCP server.
355355
"""
356356
if hasattr(webui_manager, "dr_agent") and webui_manager.dr_agent:
357357
logger.warning("⚠️ Close controller because mcp file has changed!")
358-
webui_manager.dr_agent.close_mcp_client()
358+
await webui_manager.dr_agent.close_mcp_client()
359359

360360
if not mcp_file or not os.path.exists(mcp_file) or not mcp_file.endswith('.json'):
361361
logger.warning(f"{mcp_file} is not a valid MCP file.")
@@ -413,8 +413,14 @@ def create_deep_research_agent_tab(webui_manager: WebuiManager):
413413
)
414414
webui_manager.add_components("deep_research_agent", tab_components)
415415
webui_manager.init_deep_research_agent()
416+
417+
async def update_wrapper(mcp_file):
418+
"""Wrapper for handle_pause_resume."""
419+
update_dict = await update_mcp_server(mcp_file, webui_manager)
420+
yield update_dict
421+
416422
mcp_json_file.change(
417-
partial(update_mcp_server, webui_manager=webui_manager),
423+
update_wrapper,
418424
inputs=[mcp_json_file],
419425
outputs=[mcp_server_config, mcp_server_config]
420426
)

0 commit comments

Comments
 (0)