refactor(api): migrate HITL logic back to Dify#38225
Draft
QuantumGhost wants to merge 60 commits into
Draft
Conversation
Assisted-by: Codex:GPT-5.4
Assisted-by: Codex:GPT-5.4
Assisted-by: Codex:GPT-5.4
Assisted-by: Codex:GPT-5.4
Assisted-by: Codex:GPT-5.4
Assisted-by: Codex:GPT-5.4
Assisted-by: Codex:GPT-5.4
Assisted-by: Codex:GPT-5.4
Assisted-by: Codex:GPT-5.4
Assisted-by: Codex:GPT-5.4
Assisted-by: Codex:GPT-5.4
Assisted-by: Codex:GPT-5.4
Assisted-by: Codex:GPT-5.4
Assisted-by: Codex:GPT-5.4
Assisted-by: Codex:GPT-5.4
Assisted-by: Codex:GPT-5.4
Assisted-by: Codex:GPT-5.4
Assisted-by: Codex:GPT-5.4
Assisted-by: Codex:GPT-5.4
Assisted-by: Codex:GPT-5.4
Assisted-by: Codex:GPT-5.4
Assisted-by: Codex:GPT-5.4
Assisted-by: Codex:GPT-5.4
Assisted-by: Codex:GPT-5.4
Assisted-by: Codex:GPT-5.4
Assisted-by: Codex:GPT-5.4
Assisted-by: Codex:GPT-5.4
Assisted-by: Codex:GPT-5.4
Assisted-by: Codex:GPT-5.4
Assisted-by: Codex:GPT-5.4
Assisted-by: Codex:GPT-5.4
Assisted-by: Codex:GPT-5.4
Assisted-by: Codex:GPT-5.4
Contributor
Pyrefly Diffbase → PR--- /tmp/pyrefly_base.txt 2026-06-30 15:25:21.959841593 +0000
+++ /tmp/pyrefly_pr.txt 2026-06-30 15:25:10.161698346 +0000
@@ -1,3 +1,19 @@
+ERROR Class member `PluginModelRuntime.invoke_llm` overrides parent class `ModelRuntime` in an inconsistent manner [bad-override]
+ --> core/plugin/impl/model_runtime.py:277:9
+ERROR Class member `PluginModelRuntime.invoke_text_embedding` overrides parent class `ModelRuntime` in an inconsistent manner [bad-override]
+ --> core/plugin/impl/model_runtime.py:484:9
+ERROR Class member `PluginModelRuntime.invoke_multimodal_embedding` overrides parent class `ModelRuntime` in an inconsistent manner [bad-override]
+ --> core/plugin/impl/model_runtime.py:506:9
+ERROR Class member `PluginModelRuntime.invoke_rerank` overrides parent class `ModelRuntime` in an inconsistent manner [bad-override]
+ --> core/plugin/impl/model_runtime.py:548:9
+ERROR Class member `PluginModelRuntime.invoke_multimodal_rerank` overrides parent class `ModelRuntime` in an inconsistent manner [bad-override]
+ --> core/plugin/impl/model_runtime.py:574:9
+ERROR Class member `PluginModelRuntime.invoke_tts` overrides parent class `ModelRuntime` in an inconsistent manner [bad-override]
+ --> core/plugin/impl/model_runtime.py:600:9
+ERROR Class member `PluginModelRuntime.invoke_speech_to_text` overrides parent class `ModelRuntime` in an inconsistent manner [bad-override]
+ --> core/plugin/impl/model_runtime.py:642:9
+ERROR Class member `PluginModelRuntime.invoke_moderation` overrides parent class `ModelRuntime` in an inconsistent manner [bad-override]
+ --> core/plugin/impl/model_runtime.py:662:9
ERROR Argument `SimpleNamespace` is not assignable to parameter `dataset` with type `Dataset` in function `dify_vdb_alibabacloud_mysql.alibabacloud_mysql_vector.AlibabaCloudMySQLVectorFactory.init_vector` [bad-argument-type]
--> providers/vdb/vdb-alibabacloud-mysql/tests/unit_tests/test_alibabacloud_mysql_factory.py:42:38
ERROR Argument `SimpleNamespace` is not assignable to parameter `dataset` with type `Dataset` in function `dify_vdb_alibabacloud_mysql.alibabacloud_mysql_vector.AlibabaCloudMySQLVectorFactory.init_vector` [bad-argument-type]
@@ -724,10 +740,14 @@
--> tests/test_containers_integration_tests/core/rag/retrieval/test_dataset_retrieval_integration.py:593:23
ERROR Object of class `NoneType` has no attribute `id` [missing-attribute]
--> tests/test_containers_integration_tests/core/rag/retrieval/test_dataset_retrieval_integration.py:603:23
+ERROR Argument `core.workflow.human_input.entities.HumanInputNodeData` is not assignable to parameter `data` with type `graphon.nodes.human_input.entities.HumanInputNodeData` in function `graphon.nodes.human_input.human_input_node.HumanInputNode.__init__` [bad-argument-type]
+ --> tests/test_containers_integration_tests/core/workflow/test_human_input_resume_node_execution.py:124:14
+ERROR Argument `DifyHumanInputCallback` is not assignable to parameter `hitl_callback` with type `(HITLContext) -> Completed | Expired | PauseRequested` in function `graphon.nodes.human_input.human_input_node.HumanInputNode.__init__` [bad-argument-type]
+ --> tests/test_containers_integration_tests/core/workflow/test_human_input_resume_node_execution.py:127:23
ERROR Argument `Connection | Engine` is not assignable to parameter `session_factory` with type `Engine | sessionmaker[Unknown]` in function `core.repositories.sqlalchemy_workflow_execution_repository.SQLAlchemyWorkflowExecutionRepository.__init__` [bad-argument-type]
- --> tests/test_containers_integration_tests/core/workflow/test_human_input_resume_node_execution.py:265:29
+ --> tests/test_containers_integration_tests/core/workflow/test_human_input_resume_node_execution.py:267:29
ERROR Argument `Connection | Engine` is not assignable to parameter `session_factory` with type `Engine | sessionmaker[Unknown]` in function `core.repositories.sqlalchemy_workflow_node_execution_repository.SQLAlchemyWorkflowNodeExecutionRepository.__init__` [bad-argument-type]
- --> tests/test_containers_integration_tests/core/workflow/test_human_input_resume_node_execution.py:271:29
+ --> tests/test_containers_integration_tests/core/workflow/test_human_input_resume_node_execution.py:273:29
ERROR Argument `Literal['owner']` is not assignable to parameter `role` with type `SQLCoreOperations[TenantAccountRole] | TenantAccountRole` in function `models.account.TenantAccountJoin.__init__` [bad-argument-type]
--> tests/test_containers_integration_tests/helpers/execution_extra_content.py:48:14
ERROR Returned type `int | str` is not assignable to declared return type `str` [bad-return]
@@ -745,9 +765,9 @@
ERROR Cannot instantiate `DifyAPISQLAlchemyWorkflowNodeExecutionRepository` because the following members are abstract: `save`, `save_execution_data`, `get_by_workflow_execution` [bad-instantiation]
--> tests/test_containers_integration_tests/repositories/test_sqlalchemy_api_workflow_node_execution_repository.py:122:70
ERROR Class member `_TestWorkflowRunRepository.save` overrides a member in a parent class but is missing an `@override` decorator [missing-override-decorator]
- --> tests/test_containers_integration_tests/repositories/test_sqlalchemy_api_workflow_run_repository.py:44:9
+ --> tests/test_containers_integration_tests/repositories/test_sqlalchemy_api_workflow_run_repository.py:50:9
ERROR Generator function should return `Generator` [bad-return]
- --> tests/test_containers_integration_tests/repositories/test_sqlalchemy_api_workflow_run_repository.py:138:56
+ --> tests/test_containers_integration_tests/repositories/test_sqlalchemy_api_workflow_run_repository.py:144:56
ERROR Argument `str | None` is not assignable to parameter `tenant_id` with type `str` in function `_create_node_execution_model` [bad-argument-type]
--> tests/test_containers_integration_tests/repositories/test_sqlalchemy_workflow_node_execution_repository.py:181:23
ERROR Argument `str | None` is not assignable to parameter `tenant_id` with type `str` in function `_create_node_execution_model` [bad-argument-type]
@@ -1159,7 +1179,7 @@
ERROR Argument `Literal['normal']` is not assignable to parameter `status` with type `SQLCoreOperations[TenantStatus] | TenantStatus` in function `models.account.Tenant.__init__` [bad-argument-type]
--> tests/test_containers_integration_tests/services/test_file_service.py:78:20
ERROR Argument `Literal['owner']` is not assignable to parameter `role` with type `SQLCoreOperations[TenantAccountRole] | TenantAccountRole` in function `models.account.TenantAccountJoin.__init__` [bad-argument-type]
- --> tests/test_containers_integration_tests/services/test_human_input_delivery_test.py:45:18
+ --> tests/test_containers_integration_tests/services/test_human_input_delivery_test.py:44:18
ERROR Unexpected keyword argument `whole_workspace` in function `core.workflow.human_input_adapter.EmailRecipients.__init__` [unexpected-keyword]
--> tests/test_containers_integration_tests/services/test_human_input_delivery_test_service.py:241:44
ERROR Argument `Literal['active']` is not assignable to parameter `status` with type `AccountStatus | SQLCoreOperations[AccountStatus]` in function `models.account.Account.__init__` [bad-argument-type]
@@ -2349,27 +2369,27 @@
ERROR Argument `SimpleNamespace` is not assignable to parameter `application_generate_entity` with type `AdvancedChatAppGenerateEntity | WorkflowAppGenerateEntity` in function `core.app.apps.common.workflow_response_converter.WorkflowResponseConverter.__init__` [bad-argument-type]
--> tests/unit_tests/controllers/service_api/app/test_hitl_service_api.py:99:37
ERROR Argument `SimpleNamespace` is not assignable to parameter `workflow` with type `WorkflowSnapshot` in function `core.app.apps.advanced_chat.generate_task_pipeline.AdvancedChatAppGenerateTaskPipeline.__init__` [bad-argument-type]
- --> tests/unit_tests/controllers/service_api/app/test_hitl_service_api.py:434:22
+ --> tests/unit_tests/controllers/service_api/app/test_hitl_service_api.py:449:22
ERROR Argument `SimpleNamespace` is not assignable to parameter `queue_manager` with type `AppQueueManager` in function `core.app.apps.advanced_chat.generate_task_pipeline.AdvancedChatAppGenerateTaskPipeline.__init__` [bad-argument-type]
- --> tests/unit_tests/controllers/service_api/app/test_hitl_service_api.py:435:27
+ --> tests/unit_tests/controllers/service_api/app/test_hitl_service_api.py:450:27
ERROR Argument `SimpleNamespace` is not assignable to parameter `conversation` with type `ConversationSnapshot` in function `core.app.apps.advanced_chat.generate_task_pipeline.AdvancedChatAppGenerateTaskPipeline.__init__` [bad-argument-type]
- --> tests/unit_tests/controllers/service_api/app/test_hitl_service_api.py:436:26
+ --> tests/unit_tests/controllers/service_api/app/test_hitl_service_api.py:451:26
ERROR Argument `SimpleNamespace` is not assignable to parameter `message` with type `MessageSnapshot` in function `core.app.apps.advanced_chat.generate_task_pipeline.AdvancedChatAppGenerateTaskPipeline.__init__` [bad-argument-type]
- --> tests/unit_tests/controllers/service_api/app/test_hitl_service_api.py:437:21
+ --> tests/unit_tests/controllers/service_api/app/test_hitl_service_api.py:452:21
ERROR Argument `(**kwargs: Unknown) -> None` is not assignable to parameter `draft_var_saver_factory` with type `DraftVariableSaverFactory` in function `core.app.apps.advanced_chat.generate_task_pipeline.AdvancedChatAppGenerateTaskPipeline.__init__` [bad-argument-type]
- --> tests/unit_tests/controllers/service_api/app/test_hitl_service_api.py:447:37
+ --> tests/unit_tests/controllers/service_api/app/test_hitl_service_api.py:462:37
ERROR Argument `SimpleNamespace` is not assignable to parameter `workflow` with type `Workflow` in function `core.app.apps.workflow.generate_task_pipeline.WorkflowAppGenerateTaskPipeline.__init__` [bad-argument-type]
- --> tests/unit_tests/controllers/service_api/app/test_hitl_service_api.py:527:22
+ --> tests/unit_tests/controllers/service_api/app/test_hitl_service_api.py:542:22
ERROR Argument `SimpleNamespace` is not assignable to parameter `queue_manager` with type `AppQueueManager` in function `core.app.apps.workflow.generate_task_pipeline.WorkflowAppGenerateTaskPipeline.__init__` [bad-argument-type]
- --> tests/unit_tests/controllers/service_api/app/test_hitl_service_api.py:528:27
+ --> tests/unit_tests/controllers/service_api/app/test_hitl_service_api.py:543:27
ERROR Argument `SimpleNamespace` is not assignable to parameter `user` with type `Account | EndUser` in function `core.app.apps.workflow.generate_task_pipeline.WorkflowAppGenerateTaskPipeline.__init__` [bad-argument-type]
- --> tests/unit_tests/controllers/service_api/app/test_hitl_service_api.py:529:18
+ --> tests/unit_tests/controllers/service_api/app/test_hitl_service_api.py:544:18
ERROR Argument `(**kwargs: Unknown) -> None` is not assignable to parameter `draft_var_saver_factory` with type `DraftVariableSaverFactory` in function `core.app.apps.workflow.generate_task_pipeline.WorkflowAppGenerateTaskPipeline.__init__` [bad-argument-type]
- --> tests/unit_tests/controllers/service_api/app/test_hitl_service_api.py:531:37
+ --> tests/unit_tests/controllers/service_api/app/test_hitl_service_api.py:546:37
ERROR Argument `SimpleNamespace` is not assignable to parameter `graph_runtime_state` with type `GraphRuntimeState` in function `core.app.apps.common.workflow_response_converter.WorkflowResponseConverter.workflow_pause_to_stream_response` [bad-argument-type]
- --> tests/unit_tests/controllers/service_api/app/test_hitl_service_api.py:627:33
+ --> tests/unit_tests/controllers/service_api/app/test_hitl_service_api.py:637:33
ERROR Argument `() -> TestHitlServiceApi.test_snapshot_events_include_pause_payload_contract._SessionContext` is not assignable to parameter `session_maker` with type `sessionmaker[Session] | None` in function `services.workflow_event_snapshot_service._build_snapshot_events` [bad-argument-type]
- --> tests/unit_tests/controllers/service_api/app/test_hitl_service_api.py:702:27
+ --> tests/unit_tests/controllers/service_api/app/test_hitl_service_api.py:714:27
ERROR Argument value `Literal[0]` violates Pydantic `ge` constraint `Literal[1]` for field `limit` [bad-argument-type]
--> tests/unit_tests/controllers/service_api/app/test_message.py:90:63
ERROR Argument value `Literal[101]` violates Pydantic `le` constraint `Literal[100]` for field `limit` [bad-argument-type]
@@ -2453,13 +2473,13 @@
ERROR Cannot index into `Response` [bad-index]
--> tests/unit_tests/controllers/trigger/test_webhook.py:101:16
ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `controllers.web.site.serialize_app_site_payload` [bad-argument-type]
- --> tests/unit_tests/controllers/web/test_human_input_form.py:217:54
+ --> tests/unit_tests/controllers/web/test_human_input_form.py:216:54
ERROR Argument `SimpleNamespace` is not assignable to parameter `site` with type `Site` in function `controllers.web.site.serialize_app_site_payload` [bad-argument-type]
- --> tests/unit_tests/controllers/web/test_human_input_form.py:217:65
+ --> tests/unit_tests/controllers/web/test_human_input_form.py:216:65
ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `controllers.web.site.serialize_app_site_payload` [bad-argument-type]
- --> tests/unit_tests/controllers/web/test_human_input_form.py:251:54
+ --> tests/unit_tests/controllers/web/test_human_input_form.py:250:54
ERROR Argument `SimpleNamespace` is not assignable to parameter `site` with type `Site` in function `controllers.web.site.serialize_app_site_payload` [bad-argument-type]
- --> tests/unit_tests/controllers/web/test_human_input_form.py:251:65
+ --> tests/unit_tests/controllers/web/test_human_input_form.py:250:65
ERROR Object of class `ModuleType` has no attribute `web_ns` [missing-attribute]
--> tests/unit_tests/controllers/web/test_message_list.py:41:9
ERROR Object of class `ModuleType` has no attribute `WebApiResource` [missing-attribute]
@@ -3096,113 +3116,115 @@
--> tests/unit_tests/core/app/apps/advanced_chat/test_app_generator.py:1366:33
ERROR Object of class `Generator` has no attribute `ok`
ERROR Cannot index into `str` [bad-index]
+ --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_response_converter.py:128:16
+ERROR Cannot index into `str` [bad-index]
--> tests/unit_tests/core/app/apps/advanced_chat/test_generate_response_converter.py:129:16
ERROR Cannot index into `str` [bad-index]
--> tests/unit_tests/core/app/apps/advanced_chat/test_generate_response_converter.py:130:16
-ERROR Cannot index into `str` [bad-index]
- --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_response_converter.py:131:16
ERROR `SimpleNamespace` is not assignable to attribute `_application_generate_entity` with type `AdvancedChatAppGenerateEntity` [bad-assignment]
--> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline.py:109:45
+ERROR `SimpleNamespace` is not assignable to attribute `_application_generate_entity` with type `AdvancedChatAppGenerateEntity` [bad-assignment]
+ --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline.py:155:45
ERROR Argument `SimpleNamespace` is not assignable to parameter `application_generate_entity` with type `AdvancedChatAppGenerateEntity` in function `core.app.apps.advanced_chat.generate_task_pipeline.AdvancedChatAppGenerateTaskPipeline.__init__` [bad-argument-type]
- --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline.py:176:37
+ --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline.py:229:37
ERROR Argument `SimpleNamespace` is not assignable to parameter `queue_manager` with type `AppQueueManager` in function `core.app.apps.advanced_chat.generate_task_pipeline.AdvancedChatAppGenerateTaskPipeline.__init__` [bad-argument-type]
- --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline.py:178:23
+ --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline.py:231:23
ERROR Argument `SimpleNamespace` is not assignable to parameter `draft_var_saver_factory` with type `DraftVariableSaverFactory` in function `core.app.apps.advanced_chat.generate_task_pipeline.AdvancedChatAppGenerateTaskPipeline.__init__` [bad-argument-type]
- --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline.py:184:33
+ --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline.py:237:33
ERROR `SimpleNamespace` is not assignable to attribute `_application_generate_entity` with type `AdvancedChatAppGenerateEntity` [bad-assignment]
- --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline.py:218:45
+ --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline.py:271:45
ERROR `SimpleNamespace` is not assignable to attribute `_application_generate_entity` with type `AdvancedChatAppGenerateEntity` [bad-assignment]
- --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline.py:240:45
+ --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline.py:293:45
ERROR Argument `SimpleNamespace` is not assignable to parameter `queue_manager` with type `AppQueueManager` in function `core.app.apps.advanced_chat.generate_task_pipeline.AdvancedChatAppGenerateTaskPipeline.__init__` [bad-argument-type]
- --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:101:23
+ --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:100:23
ERROR Argument `(**kwargs: Unknown) -> None` is not assignable to parameter `draft_var_saver_factory` with type `DraftVariableSaverFactory` in function `core.app.apps.advanced_chat.generate_task_pipeline.AdvancedChatAppGenerateTaskPipeline.__init__` [bad-argument-type]
- --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:107:33
+ --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:106:33
ERROR `SimpleNamespace` is not assignable to attribute `_message_cycle_manager` with type `MessageCycleManager` [bad-assignment]
- --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:188:43
+ --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:187:43
ERROR Argument `SimpleNamespace` is not assignable to parameter `event` with type `QueueTextChunkEvent` in function `core.app.apps.advanced_chat.generate_task_pipeline.AdvancedChatAppGenerateTaskPipeline._handle_text_chunk_event` [bad-argument-type]
- --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:196:60
+ --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:195:60
ERROR Argument `SimpleNamespace` is not assignable to parameter `publisher` with type `AppGeneratorTTSPublisher | None` in function `core.app.apps.advanced_chat.generate_task_pipeline.AdvancedChatAppGenerateTaskPipeline._listen_audio_msg` [bad-argument-type]
- --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:241:57
+ --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:240:57
ERROR `(err: Unknown) -> Unknown` is not assignable to attribute `error_to_stream_response` with type `(self: BasedGenerateTaskPipeline[Unknown], e: Exception) -> ErrorStreamResponse` [bad-assignment]
- --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:256:65
+ --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:255:65
ERROR `() -> _GeneratorContextManager[SimpleNamespace]` is not assignable to attribute `_database_session` with type `(self: AdvancedChatAppGenerateTaskPipeline) -> _GeneratorContextManager[Session]` [bad-assignment]
- --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:262:38
+ --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:261:38
ERROR `(**kwargs: Unknown) -> Literal['started']` is not assignable to attribute `workflow_start_to_stream_response` with type `(self: WorkflowResponseConverter, *, task_id: str, workflow_run_id: str, workflow_id: str, reason: WorkflowStartReason) -> WorkflowStartStreamResponse` [bad-assignment]
- --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:274:83
+ --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:273:83
ERROR `TestAdvancedChatGenerateTaskPipeline.test_handle_output_moderation_chunk_publishes_stop._Moderation` is not assignable to attribute `output_moderation_handler` with type `OutputModeration | None` [bad-assignment]
- --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:328:66
+ --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:327:66
ERROR `SimpleNamespace` is not assignable to attribute `queue_manager` with type `AppQueueManager` [bad-assignment]
- --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:329:54
+ --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:328:54
ERROR `(outputs: Unknown) -> list[dict[str, str]]` is not assignable to attribute `fetch_files_from_node_outputs` with type `(cls: type[WorkflowResponseConverter], outputs_dict: Mapping[str, Any] | None) -> Sequence[Mapping[str, Any]]` [bad-assignment]
- --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:342:79
+ --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:341:79
ERROR `(**kwargs: Unknown) -> Literal['done']` is not assignable to attribute `workflow_node_finish_to_stream_response` with type `(self: WorkflowResponseConverter, *, event: QueueNodeExceptionEvent | QueueNodeFailedEvent | QueueNodeSucceededEvent, task_id: str) -> NodeFinishStreamResponse | None` [bad-assignment]
- --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:345:89
+ --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:344:89
ERROR Argument `SimpleNamespace` is not assignable to parameter `event` with type `QueueNodeSucceededEvent` in function `core.app.apps.advanced_chat.generate_task_pipeline.AdvancedChatAppGenerateTaskPipeline._handle_node_succeeded_event` [bad-argument-type]
- --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:355:64
+ --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:354:64
ERROR `(outputs: Unknown) -> list[@_]` is not assignable to attribute `fetch_files_from_node_outputs` with type `(cls: type[WorkflowResponseConverter], outputs_dict: Mapping[str, Any] | None) -> Sequence[Mapping[str, Any]]` [bad-assignment]
- --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:362:79
+ --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:361:79
ERROR `(**kwargs: Unknown) -> Literal['done']` is not assignable to attribute `workflow_node_finish_to_stream_response` with type `(self: WorkflowResponseConverter, *, event: QueueNodeExceptionEvent | QueueNodeFailedEvent | QueueNodeSucceededEvent, task_id: str) -> NodeFinishStreamResponse | None` [bad-assignment]
- --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:363:89
+ --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:362:89
ERROR Argument `SimpleNamespace` is not assignable to parameter `event` with type `QueueNodeSucceededEvent` in function `core.app.apps.advanced_chat.generate_task_pipeline.AdvancedChatAppGenerateTaskPipeline._handle_node_succeeded_event` [bad-argument-type]
- --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:373:52
+ --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:372:52
ERROR `(outputs: Unknown) -> list[@_]` is not assignable to attribute `fetch_files_from_node_outputs` with type `(cls: type[WorkflowResponseConverter], outputs_dict: Mapping[str, Any] | None) -> Sequence[Mapping[str, Any]]` [bad-assignment]
- --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:379:79
+ --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:378:79
ERROR `(**kwargs: Unknown) -> Literal['done']` is not assignable to attribute `workflow_node_finish_to_stream_response` with type `(self: WorkflowResponseConverter, *, event: QueueNodeExceptionEvent | QueueNodeFailedEvent | QueueNodeSucceededEvent, task_id: str) -> NodeFinishStreamResponse | None` [bad-assignment]
- --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:380:89
+ --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:379:89
ERROR Argument `SimpleNamespace` is not assignable to parameter `event` with type `QueueNodeSucceededEvent` in function `core.app.apps.advanced_chat.generate_task_pipeline.AdvancedChatAppGenerateTaskPipeline._handle_node_succeeded_event` [bad-argument-type]
- --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:392:52
+ --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:391:52
ERROR Argument `SimpleNamespace` is not assignable to parameter `event` with type `QueueNodeSucceededEvent` in function `core.app.apps.advanced_chat.generate_task_pipeline.AdvancedChatAppGenerateTaskPipeline._handle_node_succeeded_event` [bad-argument-type]
- --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:393:52
+ --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:392:52
ERROR `(**kwargs: Unknown) -> Literal['iter_start']` is not assignable to attribute `workflow_iteration_start_to_stream_response` with type `(self: WorkflowResponseConverter, *, task_id: str, workflow_execution_id: str, event: QueueIterationStartEvent) -> IterationNodeStartStreamResponse` [bad-assignment]
- --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:400:93
+ --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:399:93
ERROR `(**kwargs: Unknown) -> Literal['iter_next']` is not assignable to attribute `workflow_iteration_next_to_stream_response` with type `(self: WorkflowResponseConverter, *, task_id: str, workflow_execution_id: str, event: QueueIterationNextEvent) -> IterationNodeNextStreamResponse` [bad-assignment]
- --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:403:92
+ --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:402:92
ERROR `(**kwargs: Unknown) -> Literal['iter_done']` is not assignable to attribute `workflow_iteration_completed_to_stream_response` with type `(self: WorkflowResponseConverter, *, task_id: str, workflow_execution_id: str, event: QueueIterationCompletedEvent) -> IterationNodeCompletedStreamResponse` [bad-assignment]
- --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:404:97
+ --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:403:97
ERROR `(**kwargs: Unknown) -> Literal['loop_start']` is not assignable to attribute `workflow_loop_start_to_stream_response` with type `(self: WorkflowResponseConverter, *, task_id: str, workflow_execution_id: str, event: QueueLoopStartEvent) -> LoopNodeStartStreamResponse` [bad-assignment]
- --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:407:88
+ --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:406:88
ERROR `(**kwargs: Unknown) -> Literal['loop_next']` is not assignable to attribute `workflow_loop_next_to_stream_response` with type `(self: WorkflowResponseConverter, *, task_id: str, workflow_execution_id: str, event: QueueLoopNextEvent) -> LoopNodeNextStreamResponse` [bad-assignment]
- --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:408:87
+ --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:407:87
ERROR `(**kwargs: Unknown) -> Literal['loop_done']` is not assignable to attribute `workflow_loop_completed_to_stream_response` with type `(self: WorkflowResponseConverter, *, task_id: str, workflow_execution_id: str, event: QueueLoopCompletedEvent) -> LoopNodeCompletedStreamResponse` [bad-assignment]
- --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:409:92
+ --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:408:92
ERROR `(**kwargs: Unknown) -> Literal['finish']` is not assignable to attribute `workflow_finish_to_stream_response` with type `(self: WorkflowResponseConverter, *, task_id: str, workflow_id: str, status: WorkflowExecutionStatus, graph_runtime_state: GraphRuntimeState, error: str | None = None, exceptions_count: int = 0) -> WorkflowFinishStreamResponse` [bad-assignment]
- --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:476:84
+ --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:475:84
ERROR `(**kwargs: Unknown) -> list[str]` is not assignable to attribute `workflow_pause_to_stream_response` with type `(self: WorkflowResponseConverter, *, event: QueueWorkflowPausedEvent, task_id: str, graph_runtime_state: GraphRuntimeState) -> list[StreamResponse]` [bad-assignment]
- --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:477:83
+ --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:476:83
ERROR `(err: Unknown) -> Unknown` is not assignable to attribute `error_to_stream_response` with type `(self: BasedGenerateTaskPipeline[Unknown], e: Exception) -> ErrorStreamResponse` [bad-assignment]
- --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:482:65
+ --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:481:65
ERROR `(**kwargs: Unknown) -> SimpleNamespace` is not assignable to attribute `_get_message` with type `(self: AdvancedChatAppGenerateTaskPipeline, *, session: Session) -> Message` [bad-assignment]
- --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:483:33
+ --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:482:33
ERROR `(**kwargs: Unknown) -> Literal['node_finish']` is not assignable to attribute `workflow_node_finish_to_stream_response` with type `(self: WorkflowResponseConverter, *, event: QueueNodeExceptionEvent | QueueNodeFailedEvent | QueueNodeSucceededEvent, task_id: str) -> NodeFinishStreamResponse | None` [bad-assignment]
- --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:514:89
+ --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:513:89
ERROR `SimpleNamespace` is not assignable to attribute `_message_cycle_manager` with type `MessageCycleManager` [bad-assignment]
- --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:549:43
+ --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:548:43
ERROR Argument `SimpleNamespace` is not assignable to parameter `event` with type `QueueTextChunkEvent` in function `core.app.apps.advanced_chat.generate_task_pipeline.AdvancedChatAppGenerateTaskPipeline._handle_text_chunk_event` [bad-argument-type]
- --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:555:47
+ --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:554:47
ERROR Argument `TestAdvancedChatGenerateTaskPipeline.test_handle_text_chunk_event_tracks_streaming_metrics._Publisher` is not assignable to parameter `tts_publisher` with type `AppGeneratorTTSPublisher | None` in function `core.app.apps.advanced_chat.generate_task_pipeline.AdvancedChatAppGenerateTaskPipeline._handle_text_chunk_event` [bad-argument-type]
- --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:555:68
+ --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:554:68
ERROR Argument `SimpleNamespace` is not assignable to parameter `queue_message` with type `MessageQueueMessage | WorkflowQueueMessage | None` in function `core.app.apps.advanced_chat.generate_task_pipeline.AdvancedChatAppGenerateTaskPipeline._handle_text_chunk_event` [bad-argument-type]
- --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:555:96
+ --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:554:96
ERROR `TestAdvancedChatGenerateTaskPipeline.test_handle_output_moderation_chunk_appends_token._Moderation` is not assignable to attribute `output_moderation_handler` with type `OutputModeration | None` [bad-assignment]
- --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:576:66
+ --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:575:66
ERROR `(**kwargs: Unknown) -> Literal['replace']` is not assignable to attribute `message_replace_to_stream_response` with type `(self: MessageCycleManager, answer: str, reason: str = '') -> MessageReplaceStreamResponse` [bad-assignment]
- --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:605:78
+ --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:604:78
ERROR `(**kwargs: Unknown) -> Literal['filled']` is not assignable to attribute `human_input_form_filled_to_stream_response` with type `(self: WorkflowResponseConverter, *, event: QueueHumanInputFormFilledEvent, task_id: str) -> HumanInputFormFilledResponse` [bad-assignment]
- --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:618:92
+ --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:617:92
ERROR `(**kwargs: Unknown) -> Literal['timeout']` is not assignable to attribute `human_input_form_timeout_to_stream_response` with type `(self: WorkflowResponseConverter, *, event: QueueHumanInputFormTimeoutEvent, task_id: str) -> HumanInputFormTimeoutResponse` [bad-assignment]
- --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:619:93
+ --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:618:93
ERROR Argument `TestAdvancedChatGenerateTaskPipeline.test_save_message_preserves_full_answer_and_sets_usage._Session` is not assignable to parameter `session` with type `Session` in function `core.app.apps.advanced_chat.generate_task_pipeline.AdvancedChatAppGenerateTaskPipeline._save_message` [bad-argument-type]
- --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:691:40
+ --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:690:40
ERROR `() -> Literal['end']` is not assignable to attribute `_message_end_to_stream_response` with type `(self: AdvancedChatAppGenerateTaskPipeline) -> MessageEndStreamResponse` [bad-assignment]
- --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:699:52
+ --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:698:52
ERROR `(answer: Unknown) -> Literal['safe']` is not assignable to attribute `handle_output_moderation_when_task_finished` with type `(self: BasedGenerateTaskPipeline[Unknown], completion: str) -> str | None` [bad-assignment]
- --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:726:84
+ --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:725:84
ERROR `(**kwargs: Unknown) -> Literal['replace']` is not assignable to attribute `message_replace_to_stream_response` with type `(self: MessageCycleManager, answer: str, reason: str = '') -> MessageReplaceStreamResponse` [bad-assignment]
- --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:727:78
+ --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:726:78
ERROR `() -> Literal['end']` is not assignable to attribute `_message_end_to_stream_response` with type `(self: AdvancedChatAppGenerateTaskPipeline) -> MessageEndStreamResponse` [bad-assignment]
- --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:728:52
+ --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:727:52
ERROR `(**kwargs: Unknown) -> Literal['failed']` is not assignable to attribute `workflow_node_finish_to_stream_response` with type `(self: WorkflowResponseConverter, *, event: QueueNodeExceptionEvent | QueueNodeFailedEvent | QueueNodeSucceededEvent, task_id: str) -> NodeFinishStreamResponse | None` [bad-assignment]
- --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:750:89
+ --> tests/unit_tests/core/app/apps/advanced_chat/test_generate_task_pipeline_core.py:749:89
ERROR Argument `DummyAccount` is not assignable to parameter `user` with type `Account | EndUser` in function `core.app.apps.agent_app.app_generator.AgentAppGenerator.generate` [bad-argument-type]
--> tests/unit_tests/core/app/apps/agent_app/test_app_generator.py:43:22
ERROR Argument `DummyAccount` is not assignable to parameter `user` with type `Account | EndUser` in function `core.app.apps.agent_app.app_generator.AgentAppGenerator.generate` [bad-argument-type]
@@ -3679,61 +3701,65 @@
ERROR Argument `TestWorkflowBasedAppRunner.test_handle_graph_run_events_and_pause_notifications._QueueManager` is not assignable to parameter `queue_manager` with type `AppQueueManager` in function `core.app.apps.workflow_app_runner.WorkflowBasedAppRunner.__init__` [bad-argument-type]
--> tests/unit_tests/core/app/apps/test_workflow_app_runner_core.py:329:55
ERROR Argument `SimpleNamespace` is not assignable to parameter `workflow_entry` with type `WorkflowEntry` in function `core.app.apps.workflow_app_runner.WorkflowBasedAppRunner._handle_event` [bad-argument-type]
- --> tests/unit_tests/core/app/apps/test_workflow_app_runner_core.py:355:30
+ --> tests/unit_tests/core/app/apps/test_workflow_app_runner_core.py:358:30
ERROR Argument `SimpleNamespace` is not assignable to parameter `workflow_entry` with type `WorkflowEntry` in function `core.app.apps.workflow_app_runner.WorkflowBasedAppRunner._handle_event` [bad-argument-type]
- --> tests/unit_tests/core/app/apps/test_workflow_app_runner_core.py:356:30
+ --> tests/unit_tests/core/app/apps/test_workflow_app_runner_core.py:359:30
ERROR Argument `SimpleNamespace` is not assignable to parameter `workflow_entry` with type `WorkflowEntry` in function `core.app.apps.workflow_app_runner.WorkflowBasedAppRunner._handle_event` [bad-argument-type]
- --> tests/unit_tests/core/app/apps/test_workflow_app_runner_core.py:357:30
+ --> tests/unit_tests/core/app/apps/test_workflow_app_runner_core.py:360:30
ERROR Type `object` is not iterable [not-iterable]
- --> tests/unit_tests/core/app/apps/test_workflow_app_runner_core.py:359:69
+ --> tests/unit_tests/core/app/apps/test_workflow_app_runner_core.py:362:69
ERROR Type `object` is not iterable [not-iterable]
- --> tests/unit_tests/core/app/apps/test_workflow_app_runner_core.py:360:71
+ --> tests/unit_tests/core/app/apps/test_workflow_app_runner_core.py:363:71
ERROR Type `object` is not iterable [not-iterable]
- --> tests/unit_tests/core/app/apps/test_workflow_app_runner_core.py:361:39
+ --> tests/unit_tests/core/app/apps/test_workflow_app_runner_core.py:364:39
ERROR Argument `TestWorkflowBasedAppRunner.test_handle_node_events_publishes_queue_events._QueueManager` is not assignable to parameter `queue_manager` with type `AppQueueManager` in function `core.app.apps.workflow_app_runner.WorkflowBasedAppRunner.__init__` [bad-argument-type]
- --> tests/unit_tests/core/app/apps/test_workflow_app_runner_core.py:372:55
+ --> tests/unit_tests/core/app/apps/test_workflow_app_runner_core.py:376:55
ERROR Argument `SimpleNamespace` is not assignable to parameter `workflow_entry` with type `WorkflowEntry` in function `core.app.apps.workflow_app_runner.WorkflowBasedAppRunner._handle_event` [bad-argument-type]
- --> tests/unit_tests/core/app/apps/test_workflow_app_runner_core.py:380:13
+ --> tests/unit_tests/core/app/apps/test_workflow_app_runner_core.py:384:13
ERROR Argument `SimpleNamespace` is not assignable to parameter `workflow_entry` with type `WorkflowEntry` in function `core.app.apps.workflow_app_runner.WorkflowBasedAppRunner._handle_event` [bad-argument-type]
- --> tests/unit_tests/core/app/apps/test_workflow_app_runner_core.py:390:13
+ --> tests/unit_tests/core/app/apps/test_workflow_app_runner_core.py:394:13
ERROR Argument `SimpleNamespace` is not assignable to parameter `workflow_entry` with type `WorkflowEntry` in function `core.app.apps.workflow_app_runner.WorkflowBasedAppRunner._handle_event` [bad-argument-type]
- --> tests/unit_tests/core/app/apps/test_workflow_app_runner_core.py:401:13
+ --> tests/unit_tests/core/app/apps/test_workflow_app_runner_core.py:405:13
ERROR Argument `SimpleNamespace` is not assignable to parameter `workflow_entry` with type `WorkflowEntry` in function `core.app.apps.workflow_app_runner.WorkflowBasedAppRunner._handle_event` [bad-argument-type]
- --> tests/unit_tests/core/app/apps/test_workflow_app_runner_core.py:412:13
+ --> tests/unit_tests/core/app/apps/test_workflow_app_runner_core.py:416:13
ERROR Argument `SimpleNamespace` is not assignable to parameter `workflow_entry` with type `WorkflowEntry` in function `core.app.apps.workflow_app_runner.WorkflowBasedAppRunner._handle_event` [bad-argument-type]
- --> tests/unit_tests/core/app/apps/test_workflow_app_runner_core.py:428:13
+ --> tests/unit_tests/core/app/apps/test_workflow_app_runner_core.py:432:13
ERROR Argument `SimpleNamespace` is not assignable to parameter `workflow_entry` with type `WorkflowEntry` in function `core.app.apps.workflow_app_runner.WorkflowBasedAppRunner._handle_event` [bad-argument-type]
- --> tests/unit_tests/core/app/apps/test_workflow_app_runner_core.py:442:13
+ --> tests/unit_tests/core/app/apps/test_workflow_app_runner_core.py:446:13
ERROR Argument `TestWorkflowBasedAppRunner.test_handle_human_input_form_filled_event_preserves_submitted_data._QueueManager` is not assignable to parameter `queue_manager` with type `AppQueueManager` in function `core.app.apps.workflow_app_runner.WorkflowBasedAppRunner.__init__` [bad-argument-type]
- --> tests/unit_tests/core/app/apps/test_workflow_app_runner_core.py:470:55
+ --> tests/unit_tests/core/app/apps/test_workflow_app_runner_core.py:474:55
ERROR Argument `SimpleNamespace` is not assignable to parameter `workflow_entry` with type `WorkflowEntry` in function `core.app.apps.workflow_app_runner.WorkflowBasedAppRunner._handle_event` [bad-argument-type]
- --> tests/unit_tests/core/app/apps/test_workflow_app_runner_core.py:482:13
+ --> tests/unit_tests/core/app/apps/test_workflow_app_runner_core.py:486:13
ERROR Argument `TestWorkflowBasedAppRunner.test_handle_start_node_result_events_project_outputs._QueueManager` is not assignable to parameter `queue_manager` with type `AppQueueManager` in function `core.app.apps.workflow_app_runner.WorkflowBasedAppRunner.__init__` [bad-argument-type]
- --> tests/unit_tests/core/app/apps/test_workflow_app_runner_core.py:559:55
+ --> tests/unit_tests/core/app/apps/test_workflow_app_runner_core.py:563:55
ERROR Argument `SimpleNamespace` is not assignable to parameter `workflow_entry` with type `WorkflowEntry` in function `core.app.apps.workflow_app_runner.WorkflowBasedAppRunner._handle_event` [bad-argument-type]
- --> tests/unit_tests/core/app/apps/test_workflow_app_runner_core.py:577:30
+ --> tests/unit_tests/core/app/apps/test_workflow_app_runner_core.py:581:30
ERROR Argument `_DummyQueueManager` is not assignable to parameter `queue_manager` with type `AppQueueManager` in function `core.app.apps.workflow_app_runner.WorkflowBasedAppRunner.__init__` [bad-argument-type]
--> tests/unit_tests/core/app/apps/test_workflow_app_runner_notifications.py:36:51
ERROR Argument `_DummyWorkflowEntry` is not assignable to parameter `workflow_entry` with type `WorkflowEntry` in function `core.app.apps.workflow_app_runner.WorkflowBasedAppRunner._handle_event` [bad-argument-type]
- --> tests/unit_tests/core/app/apps/test_workflow_app_runner_notifications.py:52:26
+ --> tests/unit_tests/core/app/apps/test_workflow_app_runner_notifications.py:54:26
+ERROR Argument `_DummyQueueManager` is not assignable to parameter `queue_manager` with type `AppQueueManager` in function `core.app.apps.workflow_app_runner.WorkflowBasedAppRunner.__init__` [bad-argument-type]
+ --> tests/unit_tests/core/app/apps/test_workflow_app_runner_notifications.py:68:51
+ERROR Argument `_DummyWorkflowEntry` is not assignable to parameter `workflow_entry` with type `WorkflowEntry` in function `core.app.apps.workflow_app_runner.WorkflowBasedAppRunner._handle_event` [bad-argument-type]
+ --> tests/unit_tests/core/app/apps/test_workflow_app_runner_notifications.py:88:26
ERROR Class member `_RecordingWorkflowAppRunner._publish_event` overrides a member in a parent class but is missing an `@override` decorator [missing-override-decorator]
- --> tests/unit_tests/core/app/apps/test_workflow_pause_events.py:54:9
-ERROR Argument `SimpleNamespace` is not assignable to parameter `workflow_entry` with type `WorkflowEntry` in function `core.app.apps.workflow_app_runner.WorkflowBasedAppRunner._handle_event` [bad-argument-type]
- --> tests/unit_tests/core/app/apps/test_workflow_pause_events.py:110:26
+ --> tests/unit_tests/core/app/apps/test_workflow_pause_events.py:55:9
ERROR Argument `SimpleNamespace` is not assignable to parameter `application_generate_entity` with type `AdvancedChatAppGenerateEntity | WorkflowAppGenerateEntity` in function `core.app.apps.common.workflow_response_converter.WorkflowResponseConverter.__init__` [bad-argument-type]
- --> tests/unit_tests/core/app/apps/test_workflow_pause_events.py:138:37
+ --> tests/unit_tests/core/app/apps/test_workflow_pause_events.py:114:37
+ERROR Argument `SimpleNamespace` is not assignable to parameter `workflow_entry` with type `WorkflowEntry` in function `core.app.apps.workflow_app_runner.WorkflowBasedAppRunner._handle_event` [bad-argument-type]
+ --> tests/unit_tests/core/app/apps/test_workflow_pause_events.py:147:26
ERROR Object of class `StreamResponse` has no attribute `data` [missing-attribute]
- --> tests/unit_tests/core/app/apps/test_workflow_pause_events.py:259:12
+ --> tests/unit_tests/core/app/apps/test_workflow_pause_events.py:289:12
ERROR Object of class `StreamResponse` has no attribute `data` [missing-attribute]
- --> tests/unit_tests/core/app/apps/test_workflow_pause_events.py:260:12
+ --> tests/unit_tests/core/app/apps/test_workflow_pause_events.py:290:12
ERROR Object of class `StreamResponse` has no attribute `data` [missing-attribute]
- --> tests/unit_tests/core/app/apps/test_workflow_pause_events.py:263:12
+ --> tests/unit_tests/core/app/apps/test_workflow_pause_events.py:293:12
ERROR Object of class `StreamResponse` has no attribute `data` [missing-attribute]
- --> tests/unit_tests/core/app/apps/test_workflow_pause_events.py:280:12
+ --> tests/unit_tests/core/app/apps/test_workflow_pause_events.py:310:12
ERROR Object of class `StreamResponse` has no attribute `data` [missing-attribute]
- --> tests/unit_tests/core/app/apps/test_workflow_pause_events.py:281:12
+ --> tests/unit_tests/core/app/apps/test_workflow_pause_events.py:311:12
ERROR Object of class `StreamResponse` has no attribute `data` [missing-attribute]
- --> tests/unit_tests/core/app/apps/test_workflow_pause_events.py:284:12
+ --> tests/unit_tests/core/app/apps/test_workflow_pause_events.py:314:12
ERROR Object of class `FileInputConfig` has no attribute `option_source`
ERROR Argument `SimpleNamespace` is not assignable to parameter `app_model` with type `App` in function `core.app.apps.workflow.app_config_manager.WorkflowAppConfigManager.get_app_config` [bad-argument-type]
--> tests/unit_tests/core/app/apps/workflow/test_app_config_manager.py:23:66
@@ -4913,23 +4939,25 @@
ERROR Cannot instantiate `CeleryWorkflowNodeExecutionRepository` because the following members are abstract: `save_execution_data` [bad-instantiation]
--> tests/unit_tests/core/repositories/test_celery_workflow_node_execution_repository.py:297:53
ERROR Argument `object` is not assignable to parameter `session` with type `Session` in function `core.repositories.human_input_repository.HumanInputFormRepositoryImpl._build_email_recipients` [bad-argument-type]
- --> tests/unit_tests/core/repositories/test_human_input_form_repository_impl.py:91:21
+ --> tests/unit_tests/core/repositories/test_human_input_form_repository_impl.py:88:21
ERROR Argument `object` is not assignable to parameter `session` with type `Session` in function `core.repositories.human_input_repository.HumanInputFormRepositoryImpl._build_email_recipients` [bad-argument-type]
- --> tests/unit_tests/core/repositories/test_human_input_form_repository_impl.py:127:21
+ --> tests/unit_tests/core/repositories/test_human_input_form_repository_impl.py:124:21
ERROR Argument `object` is not assignable to parameter `session` with type `Session` in function `core.repositories.human_input_repository.HumanInputFormRepositoryImpl._build_email_recipients` [bad-argument-type]
- --> tests/unit_tests/core/repositories/test_human_input_form_repository_impl.py:158:21
+ --> tests/unit_tests/core/repositories/test_human_input_form_repository_impl.py:155:21
ERROR Argument `object` is not assignable to parameter `session` with type `Session` in function `core.repositories.human_input_repository.HumanInputFormRepositoryImpl._build_email_recipients` [bad-argument-type]
- --> tests/unit_tests/core/repositories/test_human_input_form_repository_impl.py:184:21
+ --> tests/unit_tests/core/repositories/test_human_input_form_repository_impl.py:181:21
ERROR Argument `object` is not assignable to parameter `session` with type `Session` in function `core.repositories.human_input_repository.HumanInputFormRepositoryImpl._build_email_recipients` [bad-argument-type]
- --> tests/unit_tests/core/repositories/test_human_input_form_repository_impl.py:214:21
+ --> tests/unit_tests/core/repositories/test_human_input_form_repository_impl.py:211:21
ERROR Argument `object` is not assignable to parameter `session` with type `Session` in function `core.repositories.human_input_repository.HumanInputFormRepositoryImpl._delivery_method_to_model` [bad-argument-type]
- --> tests/unit_tests/core/repositories/test_human_input_form_repository_impl.py:257:57
+ --> tests/unit_tests/core/repositories/test_human_input_form_repository_impl.py:254:57
+ERROR Argument `_DummyForm` is not assignable to parameter `form_model` with type `HumanInputForm` in function `core.repositories.human_input_repository.HumanInputFormRecord.from_models` [bad-argument-type]
+ --> tests/unit_tests/core/repositories/test_human_input_form_repository_impl.py:435:51
ERROR Argument `_FakeSession` is not assignable to parameter `session` with type `Session` in function `core.repositories.human_input_repository.HumanInputFormRepositoryImpl._query_workspace_members_by_ids` [bad-argument-type]
- --> tests/unit_tests/core/repositories/test_human_input_repository.py:321:57
+ --> tests/unit_tests/core/repositories/test_human_input_repository.py:320:57
ERROR Argument `_FakeSession` is not assignable to parameter `session` with type `Session` in function `core.repositories.human_input_repository.HumanInputFormRepositoryImpl._query_all_workspace_members` [bad-argument-type]
- --> tests/unit_tests/core/repositories/test_human_input_repository.py:331:54
+ --> tests/unit_tests/core/repositories/test_human_input_repository.py:330:54
ERROR Argument `Literal['sess']` is not assignable to parameter `session` with type `Session` in function `core.repositories.human_input_repository.HumanInputFormRepositoryImpl._delivery_method_to_model` [bad-argument-type]
- --> tests/unit_tests/core/repositories/test_human_input_repository.py:375:53
+ --> tests/unit_tests/core/repositories/test_human_input_repository.py:374:53
ERROR Argument `Literal['invalid']` is not assignable to parameter `session_factory` with type `Engine | sessionmaker[Unknown]` in function `core.repositories.sqlalchemy_workflow_execution_repository.SQLAlchemyWorkflowExecutionRepository.__init__` [bad-argument-type]
--> tests/unit_tests/core/repositories/test_sqlalchemy_workflow_execution_repository.py:101:33
ERROR `None` is not assignable to attribute `_creator_user_id` with type `str` [bad-assignment]
@@ -5728,27 +5756,35 @@
ERROR Cannot set item in `dict[str, str]` [unsupported-operation]
--> tests/unit_tests/core/workflow/graph_engine/test_mock_nodes.py:866:52
ERROR Class member `StaticForm.id` overrides a member in a parent class but is missing an `@override` decorator [missing-override-decorator]
- --> tests/unit_tests/core/workflow/graph_engine/test_parallel_human_input_join_resume.py:89:9
+ --> tests/unit_tests/core/workflow/graph_engine/test_parallel_human_input_join_resume.py:91:9
ERROR Class member `StaticForm.submission_token` overrides a member in a parent class but is missing an `@override` decorator [missing-override-decorator]
- --> tests/unit_tests/core/workflow/graph_engine/test_parallel_human_input_join_resume.py:93:9
+ --> tests/unit_tests/core/workflow/graph_engine/test_parallel_human_input_join_resume.py:95:9
ERROR Class member `StaticForm.recipients` overrides a member in a parent class but is missing an `@override` decorator [missing-override-decorator]
- --> tests/unit_tests/core/workflow/graph_engine/test_parallel_human_input_join_resume.py:97:9
+ --> tests/unit_tests/core/workflow/graph_engine/test_parallel_human_input_join_resume.py:99:9
ERROR Class member `StaticForm.rendered_content` overrides a member in a parent class but is missing an `@override` decorator [missing-override-decorator]
- --> tests/unit_tests/core/workflow/graph_engine/test_parallel_human_input_join_resume.py:101:9
+ --> tests/unit_tests/core/workflow/graph_engine/test_parallel_human_input_join_resume.py:103:9
ERROR Class member `StaticForm.selected_action_id` overrides a member in a parent class but is missing an `@override` decorator [missing-override-decorator]
- --> tests/unit_tests/core/workflow/graph_engine/test_parallel_human_input_join_resume.py:105:9
+ --> tests/unit_tests/core/workflow/graph_engine/test_parallel_human_input_join_resume.py:107:9
ERROR Class member `StaticForm.submitted_data` overrides a member in a parent class but is missing an `@override` decorator [missing-override-decorator]
- --> tests/unit_tests/core/workflow/graph_engine/test_parallel_human_input_join_resume.py:109:9
+ --> tests/unit_tests/core/workflow/graph_engine/test_parallel_human_input_join_resume.py:111:9
ERROR Class member `StaticForm.submitted` overrides a member in a parent class but is missing an `@override` decorator [missing-override-decorator]
- --> tests/unit_tests/core/workflow/graph_engine/test_parallel_human_input_join_resume.py:113:9
+ --> tests/unit_tests/core/workflow/graph_engine/test_parallel_human_input_join_resume.py:115:9
ERROR Class member `StaticForm.status` overrides a member in a parent class but is missing an `@override` decorator [missing-override-decorator]
- --> tests/unit_tests/core/workflow/graph_engine/test_parallel_human_input_join_resume.py:117:9
+ --> tests/unit_tests/core/workflow/graph_engine/test_parallel_human_input_join_resume.py:119:9
ERROR Class member `StaticForm.expiration_time` overrides a member in a parent class but is missing an `@override` decorator [missing-override-decorator]
- --> tests/unit_tests/core/workflow/graph_engine/test_parallel_human_input_join_resume.py:121:9
+ --> tests/unit_tests/core/workflow/graph_engine/test_parallel_human_input_join_resume.py:123:9
ERROR Class member `StaticRepo.get_form` overrides a member in a parent class but is missing an `@override` decorator [missing-override-decorator]
- --> tests/unit_tests/core/workflow/graph_engine/test_parallel_human_input_join_resume.py:129:9
+ --> tests/unit_tests/core/workflow/graph_engine/test_parallel_human_input_join_resume.py:131:9
ERROR Class member `StaticRepo.create_form` overrides a member in a parent class but is missing an `@override` decorator [missing-override-decorator]
- --> tests/unit_tests/core/workflow/graph_engine/test_parallel_human_input_join_resume.py:135:9
+ --> tests/unit_tests/core/workflow/graph_engine/test_parallel_human_input_join_resume.py:137:9
+ERROR Argument `core.workflow.human_input.entities.HumanInputNodeData` is not assignable to parameter `data` with type `graphon.nodes.human_input.entities.HumanInputNodeData` in function `graphon.nodes.human_input.human_input_node.HumanInputNode.__init__` [bad-argument-type]
+ --> tests/unit_tests/core/workflow/graph_engine/test_parallel_human_input_join_resume.py:200:14
+ERROR Argument `DifyHumanInputCallback` is not assignable to parameter `hitl_callback` with type `(HITLContext) -> Completed | Expired | PauseRequested` in function `graphon.nodes.human_input.human_input_node.HumanInputNode.__init__` [bad-argument-type]
+ --> tests/unit_tests/core/workflow/graph_engine/test_parallel_human_input_join_resume.py:203:23
+ERROR Argument `core.workflow.human_input.entities.HumanInputNodeData` is not assignable to parameter `data` with type `graphon.nodes.human_input.entities.HumanInputNodeData` in function `graphon.nodes.human_input.human_input_node.HumanInputNode.__init__` [bad-argument-type]
+ --> tests/unit_tests/core/workflow/graph_engine/test_parallel_human_input_join_resume.py:216:14
+ERROR Argument `DifyHumanInputCallback` is not assignable to parameter `hitl_callback` with type `(HITLContext) -> Completed | Expired | PauseRequested` in function `graphon.nodes.human_input.human_input_node.HumanInputNode.__init__` [bad-argument-type]
+ --> tests/unit_tests/core/workflow/graph_engine/test_parallel_human_input_join_resume.py:219:23
ERROR Argument `Sequence[type[GraphEngineEvent]]` is not assignable to parameter `expected_sequence` with type `list[type[GraphEngineEvent]]` in function `TableTestRunner._validate_event_sequence` [bad-argument-type]
--> tests/unit_tests/core/workflow/graph_engine/test_table_runner.py:403:21
ERROR `graph` is uninitialized [unbound-name]
@@ -5775,6 +5811,28 @@
--> tests/unit_tests/core/workflow/graph_engine/test_table_runner.py:703:35
ERROR Argument `str` is not assignable to parameter `object` with type `LiteralString` in function `list.append` [bad-argument-type]
--> tests/unit_tests/core/workflow/graph_engine/test_table_runner.py:712:27
+ERROR Class member `_FakeForm.id` overrides a member in a parent class but is missing an `@override` decorator [missing-override-decorator]
+ --> tests/unit_tests/core/workflow/human_input/test_callback.py:66:9
+ERROR Class member `_FakeForm.submission_token` overrides a member in a parent class but is missing an `@override` decorator [missing-override-decorator]
+ --> tests/unit_tests/core/workflow/human_input/test_callback.py:70:9
+ERROR Class member `_FakeForm.recipients` overrides a member in a parent class but is missing an `@override` decorator [missing-override-decorator]
+ --> tests/unit_tests/core/workflow/human_input/test_callback.py:74:9
+ERROR Class member `_FakeForm.rendered_content` overrides a member in a parent class but is missing an `@override` decorator [missing-override-decorator]
+ --> tests/unit_tests/core/workflow/human_input/test_callback.py:78:9
+ERROR Class member `_FakeForm.selected_action_id` overrides a member in a parent class but is missing an `@override` decorator [missing-override-decorator]
+ --> tests/unit_tests/core/workflow/human_input/test_callback.py:82:9
+ERROR Class member `_FakeForm.submitted_data` overrides a member in a parent class but is missing an `@override` decorator [missing-override-decorator]
+ --> tests/unit_tests/core/workflow/human_input/test_callback.py:86:9
+ERROR Class member `_FakeForm.submitted` overrides a member in a parent class but is missing an `@override` decorator [missing-override-decorator]
+ --> tests/unit_tests/core/workflow/human_input/test_callback.py:90:9
+ERROR Class member `_FakeForm.status` overrides a member in a parent class but is missing an `@override` decorator [missing-override-decorator]
+ --> tests/unit_tests/core/workflow/human_input/test_callback.py:94:9
+ERROR Class member `_FakeForm.expiration_time` overrides a member in a parent class but is missing an `@override` decorator [missing-override-decorator]
+ --> tests/unit_tests/core/workflow/human_input/test_callback.py:98:9
+ERROR Class member `_FakeRepository.get_form` overrides a member in a parent class but is missing an `@override` decorator [missing-override-decorator]
+ --> tests/unit_tests/core/workflow/human_input/test_callback.py:107:9
+ERROR Class member `_FakeRepository.create_form` overrides a member in a parent class but is missing an `@override` decorator [missing-override-decorator]
+ --> tests/unit_tests/core/workflow/human_input/test_callback.py:111:9
ERROR Argument `Iterator[Unknown]` is not assignable to parameter `messages` with type `Generator[ToolInvokeMessage]` in function `core.workflow.nodes.agent.message_transformer.AgentMessageTransformer.transform` [bad-argument-type]
--> tests/unit_tests/core/workflow/nodes/agent/test_message_transformer.py:15:26
ERROR Class member `FakeBindingResolver.resolve` overrides a member in a parent class but is missing an `@override` decorator [missing-override-decorator]
@@ -5958,47 +6016,57 @@
ERROR Argument `Response` is not assignable to parameter `response` with type `HttpResponse` in function `graphon.nodes.http_request.entities.Response.__init__` [bad-argument-type]
--> tests/unit_tests/core/workflow/nodes/http_request/test_http_request_node.py:161:17
ERROR Class member `_InMemoryFormEntity.id` overrides a member in a parent class but is missing an `@override` decorator [missing-override-decorator]
- --> tests/unit_tests/core/workflow/nodes/human_input/test_entities.py:75:9
+ --> tests/unit_tests/core/workflow/nodes/human_input/test_entities.py:74:9
ERROR Class member `_InMemoryFormEntity.submission_token` overrides a member in a parent class but is missing an `@override` decorator [missing-override-decorator]
- --> tests/unit_tests/core/workflow/nodes/human_input/test_entities.py:79:9
+ --> tests/unit_tests/core/workflow/nodes/human_input/test_entities.py:78:9
ERROR Class member `_InMemoryFormEntity.recipients` overrides a member in a parent class but is missing an `@override` decorator [missing-override-decorator]
- --> tests/unit_tests/core/workflow/nodes/human_input/test_entities.py:83:9
+ --> tests/unit_tests/core/workflow/nodes/human_input/test_entities.py:82:9
ERROR Class member `_InMemoryFormEntity.rendered_content` overrides a member in a parent class but is missing an `@override` decorator [missing-override-decorator]
- --> tests/unit_tests/core/workflow/nodes/human_input/test_entities.py:87:9
+ --> tests/unit_tests/core/workflow/nodes/human_input/test_entities.py:86:9
ERROR Class member `_InMemoryFormEntity.selected_action_id` overrides a member in a parent class but is missing an `@override` decorator [missing-override-decorator]
- --> tests/unit_tests/core/workflow/nodes/human_input/test_entities.py:91:9
+ --> tests/unit_tests/core/workflow/nodes/human_input/test_entities.py:90:9
ERROR Class member `_InMemoryFormEntity.submitted_data` overrides a member in a parent class but is missing an `@override` decorator [missing-override-decorator]
- --> tests/unit_tests/core/workflow/nodes/human_input/test_entities.py:95:9
+ --> tests/unit_tests/core/workflow/nodes/human_input/test_entities.py:94:9
ERROR Class member `_InMemoryFormEntity.submitted` overrides a member in a parent class but is missing an `@override` decorator [missing-override-deco\n\n... (truncated) ... |
Contributor
Pyrefly Type Coverage
|
QuantumGhost
commented
Jun 30, 2026
| """ | ||
|
|
||
| TYPE: Literal[PauseReasonType.HUMAN_INPUT_REQUIRED] = PauseReasonType.HUMAN_INPUT_REQUIRED | ||
| TYPE: Literal[PauseReasonType.HITL_REQUIRED] = PauseReasonType.HITL_REQUIRED |
Contributor
Author
There was a problem hiding this comment.
This is incorrect. The HumanInputRequiredPauseReasonPayload is used in Service API response, the enum name should keep the original human_input_requrired
Assisted-by: Codex:GPT-5.4
Assisted-by: Codex:GPT-5.4
Assisted-by: Codex:GPT-5.4
Assisted-by: Codex:GPT-5.4
Assisted-by: Codex:GPT-5.4
5 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
AI disclosure: This PR was AI-assisted with Codex using GPT-5.4.
I have reviewed the final diff, and I am responsible for the content.
Summary
Closes #38224
This PR migrates Human Input / HITL ownership back to Dify on top of
graphon#185.The core goal is to keep graphon responsible only for the minimal HITL boundary and control flow, while Dify owns:
Background
Before this change, HITL logic was split awkwardly across Dify and graphon. That created a recurring problem: a single HITL feature often needed synchronized changes in both repositories.
graphon#185made the boundary much smaller by reducing HITL to:That makes it possible to move the rest of the Human Input semantics back into Dify.
SessionBinding
A central part of this migration is
SessionBinding.Dify still exposes
form_idoutward, while graphon internally speakssession_idat the HITL boundary. This PR introduces an explicit translation layer so the two identifier spaces are not mixed directly throughout the codebase.Phase 1 keeps the mapping as identity, but only inside
SessionBinding:issue_session_id_for_form(form_id=...)resolve_form_id_from_session_id(session_id=...)This keeps the current behavior stable while making a future non-identity mapping possible.
Main Changes
core.workflow.human_inputpackage for Human Input entities, enums, rendering helpers, validation, and compatibility handling.SessionBindingand migrated read/write paths to use it instead of relying on raw equality betweenform_idandsession_id.graphonto commit21af61373defc45e7024acb3de19dd836f5f2a00.form_definitionpayloads such asactions/resolved_default_values.Validation
make lintmake type-check15841 passed, 4 skippedapi/tests/test_containers_integration_tests: blocked locally becausetestcontainerscould not connect to the Docker Unix socketScreenshots
N/A. Backend / contract migration only.
Checklist
make lint && make type-check(backend) andcd web && pnpm exec vp staged(frontend) to appease the lint gods