Python: make tool call view optional in DevUI + other link fixes (#2243)

* make tool call view optional in devui + other link fixes

* fix #2310, ensure correct port is shown in command

* fix dialog bug

* ensure executor ids are tracked per items, fix bug where data from concurrent executors where not seperated properly fix #2351

* fix: Enable multi-round human-in-the-loop (HIL) in DevUI workflows

- Backend: Enrich RequestInfoEvents with response schemas in send_responses_streaming path
- Frontend: Replace old HIL requests with new ones instead of accumulating them
- Frontend: Fix HIL response state management to prevent sending stale request responses

This allows workflows to properly handle sequential HIL requests, showing only the
current request to users and progressing through multiple input rounds correctly.

fixes #2334

* fix bug to ensure in memory entities cannot be reloaded in ui
This commit is contained in:
Victor Dibia
2025-11-23 23:22:53 -08:00
committed by GitHub
Unverified
parent dc2b109b50
commit f0f1051c7d
17 changed files with 545 additions and 296 deletions
+6 -6
View File
@@ -299,9 +299,9 @@ async def test_agent_lifecycle_events(mapper: MessageMapper, test_request: Agent
complete_event = AgentCompletedEvent()
events = await mapper.convert_event(complete_event, test_request)
assert len(events) == 1
assert events[0].type == "response.completed"
assert events[0].response.status == "completed"
# AgentCompletedEvent no longer emits response.completed to avoid duplicates
# The server will emit the final response.completed with usage data
assert len(events) == 0
# Test AgentFailedEvent
error = Exception("Test error")
@@ -347,9 +347,9 @@ async def test_workflow_lifecycle_events(mapper: MessageMapper, test_request: Ag
complete_event = WorkflowCompletedEvent(workflow_id="test_workflow_123")
events = await mapper.convert_event(complete_event, test_request)
assert len(events) == 1
assert events[0].type == "response.completed"
assert events[0].response.status == "completed"
# WorkflowCompletedEvent no longer emits response.completed to avoid duplicates
# The server will emit the final response.completed with usage data
assert len(events) == 0
# Test WorkflowFailedEvent with error info
failed_event = WorkflowFailedEvent(workflow_id="test_workflow_123", error_info={"message": "Workflow failed"})