Repository navigation
fix(dify): retry failed archive deletion instead of reporting success - #44061
Conversation
Stream29
left a comment
There was a problem hiding this comment.
Reviewed the task-boundary fix and independently reproduced the original DB FAILED / Celery SUCCESS failure on the base revision. The head correctly engages autoretry, recovers from transient archive/download deletion failures, and surfaces FAILURE after retry exhaustion. Healthy/no-request/redelivery, lock-busy and tenant-isolation controls were preserved. A separate filesystem-broker worker also recovered after a native backoff delay; worker exhaustion was tested with accelerated countdowns, not full production backoff timing. Redis/S3 deployment behavior was not tested. The implementation is acceptable; this approval does not assert that the currently pending required CI has passed.
Pyrefly Diffbase → PR--- /tmp/pyrefly_base.txt 2026-10-17 17:23:33.899084436 +0000
+++ /tmp/pyrefly_pr.txt 2026-10-17 17:23:24.035010408 +0000
@@ -555,11 +555,17 @@
ERROR Object of class `FunctionType` has no attribute `__handler__` [missing-attribute]
--> tests/test_containers_integration_tests/controllers/openapi/test_workspaces.py:27:22
ERROR Object of class `FunctionType` has no attribute `__handler__` [missing-attribute]
- --> tests/test_containers_integration_tests/controllers/openapi/test_workspaces.py:47:22
+ --> tests/test_containers_integration_tests/controllers/openapi/test_workspaces.py:50:22
ERROR Object of class `FunctionType` has no attribute `__handler__` [missing-attribute]
- --> tests/test_containers_integration_tests/controllers/openapi/test_workspaces.py:64:22
+ --> tests/test_containers_integration_tests/controllers/openapi/test_workspaces.py:67:22
ERROR Object of class `FunctionType` has no attribute `__handler__` [missing-attribute]
- --> tests/test_containers_integration_tests/controllers/openapi/test_workspaces.py:87:17
+ --> tests/test_containers_integration_tests/controllers/openapi/test_workspaces.py:91:17
+ERROR Object of class `FunctionType` has no attribute `__handler__` [missing-attribute]
+ --> tests/test_containers_integration_tests/controllers/openapi/test_workspaces.py:115:22
+ERROR Object of class `FunctionType` has no attribute `__handler__` [missing-attribute]
+ --> tests/test_containers_integration_tests/controllers/openapi/test_workspaces.py:129:23
+ERROR Object of class `FunctionType` has no attribute `__handler__` [missing-attribute]
+ --> tests/test_containers_integration_tests/controllers/openapi/test_workspaces.py:146:17
ERROR Argument `Literal['emoji']` is not assignable to parameter `icon_type` with type `IconType | SQLCoreOperations[IconType | None] | None` in function `models.model.Site.__init__` [bad-argument-type]
--> tests/test_containers_integration_tests/controllers/web/test_site.py:64:19
ERROR Argument `SimpleNamespace` is not assignable to parameter `webapp_settings` with type `WebAppSettings | None` in function `controllers.web.wraps._validate_user_accessibility` [bad-argument-type]
@@ -1756,6 +1762,8 @@
--> tests/unit_tests/controllers/inner_api/plugin/test_plugin_wraps.py:394:36
ERROR Object of class `FromClause` has no attribute `create` [missing-attribute]
--> tests/unit_tests/controllers/mcp/test_mcp.py:39:13
+ERROR `SimpleNamespace` is not assignable to attribute `mcp_ns` with type `Namespace` [bad-assignment]
+ --> tests/unit_tests/controllers/mcp/test_mcp.py:48:21
ERROR Attribute `payload` of class `Namespace` is a read-only property and cannot be set [read-only]
--> tests/unit_tests/controllers/mcp/test_mcp.py:58:5
ERROR Object of class `FunctionType` has no attribute `__handler__` [missing-attribute]
@@ -1763,17 +1771,17 @@
ERROR Object of class `FunctionType` has no attribute `__handler__` [missing-attribute]
--> tests/unit_tests/controllers/openapi/test_account.py:69:18
ERROR Object of class `FunctionType` has no attribute `__handler__` [missing-attribute]
- --> tests/unit_tests/controllers/openapi/test_app_run_streaming.py:89:18
+ --> tests/unit_tests/controllers/openapi/test_app_run_streaming.py:87:18
ERROR Object of class `Resource` has no attribute `post` [missing-attribute]
- --> tests/unit_tests/controllers/openapi/test_app_run_streaming.py:149:20
+ --> tests/unit_tests/controllers/openapi/test_app_run_streaming.py:147:20
ERROR Object of class `Resource` has no attribute `post` [missing-attribute]
- --> tests/unit_tests/controllers/openapi/test_app_run_streaming.py:164:13
+ --> tests/unit_tests/controllers/openapi/test_app_run_streaming.py:162:13
ERROR Object of class `Resource` has no attribute `post` [missing-attribute]
- --> tests/unit_tests/controllers/openapi/test_app_run_streaming.py:189:9
+ --> tests/unit_tests/controllers/openapi/test_app_run_streaming.py:187:9
ERROR Object of class `Resource` has no attribute `post` [missing-attribute]
- --> tests/unit_tests/controllers/openapi/test_app_run_streaming.py:212:20
+ --> tests/unit_tests/controllers/openapi/test_app_run_streaming.py:210:20
ERROR Object of class `Resource` has no attribute `post` [missing-attribute]
- --> tests/unit_tests/controllers/openapi/test_app_run_streaming.py:230:20
+ --> tests/unit_tests/controllers/openapi/test_app_run_streaming.py:228:20
ERROR Object of class `FunctionType` has no attribute `view_class` [missing-attribute]
--> tests/unit_tests/controllers/openapi/test_device_approve_deny.py:41:12
ERROR Object of class `FunctionType` has no attribute `view_class` [missing-attribute]
@@ -1783,25 +1791,23 @@
ERROR `in` is not supported between `Literal['POST']` and `None` [not-iterable]
--> tests/unit_tests/controllers/openapi/test_device_approve_deny.py:53:12
ERROR Object of class `UnprocessableEntity` has no attribute `data` [missing-attribute]
- --> tests/unit_tests/controllers/openapi/test_error_contract.py:101:9
+ --> tests/unit_tests/controllers/openapi/test_error_contract.py:99:9
ERROR Object of class `UnprocessableEntity` has no attribute `data` [missing-attribute]
- --> tests/unit_tests/controllers/openapi/test_error_contract.py:114:16
+ --> tests/unit_tests/controllers/openapi/test_error_contract.py:112:16
ERROR Object of class `UnprocessableEntity` has no attribute `data` [missing-attribute]
- --> tests/unit_tests/controllers/openapi/test_error_contract.py:118:9
+ --> tests/unit_tests/controllers/openapi/test_error_contract.py:116:9
ERROR Object of class `UnprocessableEntity` has no attribute `data` [missing-attribute]
- --> tests/unit_tests/controllers/openapi/test_error_contract.py:133:9
-ERROR Object of class `FunctionType` has no attribute `__handler__` [missing-attribute]
- --> tests/unit_tests/controllers/openapi/test_human_input_form.py:126:20
+ --> tests/unit_tests/controllers/openapi/test_error_contract.py:131:9
ERROR Object of class `FunctionType` has no attribute `__handler__` [missing-attribute]
- --> tests/unit_tests/controllers/openapi/test_human_input_form.py:145:17
+ --> tests/unit_tests/controllers/openapi/test_human_input_form.py:116:20
ERROR Object of class `FunctionType` has no attribute `__handler__` [missing-attribute]
- --> tests/unit_tests/controllers/openapi/test_human_input_form.py:158:17
+ --> tests/unit_tests/controllers/openapi/test_human_input_form.py:135:17
ERROR Object of class `FunctionType` has no attribute `__handler__` [missing-attribute]
- --> tests/unit_tests/controllers/openapi/test_human_input_form.py:176:22
+ --> tests/unit_tests/controllers/openapi/test_human_input_form.py:148:17
ERROR Object of class `FunctionType` has no attribute `__handler__` [missing-attribute]
- --> tests/unit_tests/controllers/openapi/test_human_input_form.py:203:22
+ --> tests/unit_tests/controllers/openapi/test_human_input_form.py:166:22
ERROR Object of class `FunctionType` has no attribute `__handler__` [missing-attribute]
- --> tests/unit_tests/controllers/openapi/test_human_input_form.py:229:20
+ --> tests/unit_tests/controllers/openapi/test_human_input_form.py:193:22
ERROR Object of class `FunctionType` has no attribute `__handler__` [missing-attribute]
--> tests/unit_tests/controllers/openapi/test_workflow_events_openapi.py:135:17
ERROR Object of class `FunctionType` has no attribute `__handler__` [missing-attribute]
@@ -1817,25 +1823,29 @@
ERROR Object of class `FunctionType` has no attribute `__handler__` [missing-attribute]
--> tests/unit_tests/controllers/openapi/test_workflow_events_openapi.py:280:20
ERROR Object of class `FunctionType` has no attribute `__handler__` [missing-attribute]
- --> tests/unit_tests/controllers/openapi/test_workspaces_members.py:242:14
+ --> tests/unit_tests/controllers/openapi/test_workspaces_members.py:243:14
ERROR Object of class `FunctionType` has no attribute `__handler__` [missing-attribute]
- --> tests/unit_tests/controllers/openapi/test_workspaces_members.py:269:14
+ --> tests/unit_tests/controllers/openapi/test_workspaces_members.py:279:9
ERROR Object of class `FunctionType` has no attribute `__handler__` [missing-attribute]
- --> tests/unit_tests/controllers/openapi/test_workspaces_members.py:339:14
+ --> tests/unit_tests/controllers/openapi/test_workspaces_members.py:301:14
ERROR Object of class `FunctionType` has no attribute `__handler__` [missing-attribute]
- --> tests/unit_tests/controllers/openapi/test_workspaces_members.py:432:9
+ --> tests/unit_tests/controllers/openapi/test_workspaces_members.py:328:14
ERROR Object of class `FunctionType` has no attribute `__handler__` [missing-attribute]
- --> tests/unit_tests/controllers/openapi/test_workspaces_members.py:463:14
+ --> tests/unit_tests/controllers/openapi/test_workspaces_members.py:398:14
ERROR Object of class `FunctionType` has no attribute `__handler__` [missing-attribute]
- --> tests/unit_tests/controllers/openapi/test_workspaces_members.py:498:9
+ --> tests/unit_tests/controllers/openapi/test_workspaces_members.py:491:9
ERROR Object of class `FunctionType` has no attribute `__handler__` [missing-attribute]
- --> tests/unit_tests/controllers/openapi/test_workspaces_members.py:516:13
+ --> tests/unit_tests/controllers/openapi/test_workspaces_members.py:522:14
ERROR Object of class `FunctionType` has no attribute `__handler__` [missing-attribute]
- --> tests/unit_tests/controllers/openapi/test_workspaces_members.py:519:13
+ --> tests/unit_tests/controllers/openapi/test_workspaces_members.py:557:9
ERROR Object of class `FunctionType` has no attribute `__handler__` [missing-attribute]
- --> tests/unit_tests/controllers/openapi/test_workspaces_members.py:550:14
+ --> tests/unit_tests/controllers/openapi/test_workspaces_members.py:575:13
ERROR Object of class `FunctionType` has no attribute `__handler__` [missing-attribute]
- --> tests/unit_tests/controllers/openapi/test_workspaces_members.py:664:9
+ --> tests/unit_tests/controllers/openapi/test_workspaces_members.py:578:13
+ERROR Object of class `FunctionType` has no attribute `__handler__` [missing-attribute]
+ --> tests/unit_tests/controllers/openapi/test_workspaces_members.py:609:14
+ERROR Object of class `FunctionType` has no attribute `__handler__` [missing-attribute]
+ --> tests/unit_tests/controllers/openapi/test_workspaces_members.py:723:9
ERROR Argument `list[FromClause]` is not assignable to parameter `tables` with type `Sequence[Table] | None` in function `sqlalchemy.sql.schema.MetaData.create_all` [bad-argument-type]
--> tests/unit_tests/controllers/service_api/app/test_app.py:90:56
ERROR Returned type `AppDatabase` is not assignable to declared return type `Iterator[AppDatabase]` [bad-return]
@@ -1854,16 +1864,18 @@
--> tests/unit_tests/controllers/service_api/app/test_conversation.py:133:35
ERROR Missing argument `session` in function `services.conversation_service.ConversationService.pagination_by_last_id` [missing-argument]
--> tests/unit_tests/controllers/service_api/app/test_conversation.py:501:59
+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:168: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/controllers/service_api/app/test_hitl_service_api.py:513:27
+ --> tests/unit_tests/controllers/service_api/app/test_hitl_service_api.py:507:27
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:525:37
+ --> tests/unit_tests/controllers/service_api/app/test_hitl_service_api.py:519:37
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:605:27
+ --> tests/unit_tests/controllers/service_api/app/test_hitl_service_api.py:600:27
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:608:37
+ --> tests/unit_tests/controllers/service_api/app/test_hitl_service_api.py:603: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:698:33
+ --> tests/unit_tests/controllers/service_api/app/test_hitl_service_api.py:694:33
ERROR Argument `list[FromClause]` is not assignable to parameter `tables` with type `Sequence[Table] | None` in function `sqlalchemy.sql.schema.MetaData.create_all` [bad-argument-type]
--> tests/unit_tests/controllers/service_api/conftest.py:39:16
ERROR Argument `Literal['completed']` is not assignable to parameter `status` with type `SQLCoreOperations[SegmentStatus] | SegmentStatus` in function `models.dataset.DocumentSegment.__init__` [bad-argument-type]
@@ -2674,6 +2686,10 @@
--> tests/unit_tests/core/app/apps/chat/test_generate_response_converter.py:65:16
ERROR `SimpleNamespace` is not assignable to attribute `_base_task_pipeline` with type `BasedGenerateTaskPipeline[Unknown]` [bad-assignment]
--> tests/unit_tests/core/app/apps/common/test_graph_runtime_state_support.py:20:36
+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/common/test_workflow_response_converter_human_input.py:35:37
+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/common/test_workflow_response_converter_resumption.py:33:37
ERROR Object of class `NoneType` has no attribute `data` [missing-attribute]
--> tests/unit_tests/core/app/apps/common/test_workflow_response_converter_truncation.py:593:16
ERROR Argument `dict[str, dict[str, str]]` is not assignable to parameter `override_config_dict` with type `AppModelConfigDict | None` in function `core.app.apps.completion.app_config_manager.CompletionAppConfigManager.get_app_config` [bad-argument-type]
@@ -2887,23 +2903,25 @@
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:57: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:40:9
+ --> tests/unit_tests/core/app/apps/test_workflow_pause_events.py:38: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:153:26
+ --> tests/unit_tests/core/app/apps/test_workflow_pause_events.py:151:26
+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:177:37
ERROR Object of class `StreamResponse` has no attribute `data` [missing-attribute]
- --> tests/unit_tests/core/app/apps/test_workflow_pause_events.py:308:12
+ --> tests/unit_tests/core/app/apps/test_workflow_pause_events.py:300:12
ERROR Object of class `StreamResponse` has no attribute `data` [missing-attribute]
- --> tests/unit_tests/core/app/apps/test_workflow_pause_events.py:309:12
+ --> tests/unit_tests/core/app/apps/test_workflow_pause_events.py:301:12
ERROR Object of class `StreamResponse` has no attribute `data` [missing-attribute]
- --> tests/unit_tests/core/app/apps/test_workflow_pause_events.py:312:12
+ --> tests/unit_tests/core/app/apps/test_workflow_pause_events.py:304:12
ERROR Object of class `StreamResponse` has no attribute `data` [missing-attribute]
- --> tests/unit_tests/core/app/apps/test_workflow_pause_events.py:330:12
+ --> tests/unit_tests/core/app/apps/test_workflow_pause_events.py:322:12
ERROR Object of class `StreamResponse` has no attribute `data` [missing-attribute]
- --> tests/unit_tests/core/app/apps/test_workflow_pause_events.py:331:12
+ --> tests/unit_tests/core/app/apps/test_workflow_pause_events.py:323:12
ERROR Object of class `StreamResponse` has no attribute `data` [missing-attribute]
- --> tests/unit_tests/core/app/apps/test_workflow_pause_events.py:334:12
+ --> tests/unit_tests/core/app/apps/test_workflow_pause_events.py:326:12
ERROR Object of type `FileInputConfig | FileListInputConfig | ParagraphInputConfig | SelectInputConfig` has no attribute `option_source` [missing-attribute]
- --> tests/unit_tests/core/app/apps/test_workflow_pause_events.py:386:12
+ --> tests/unit_tests/core/app/apps/test_workflow_pause_events.py:378:12
ERROR Generator function should return `Generator` [bad-return]
--> tests/unit_tests/core/app/apps/workflow/test_active_workflow_tasks.py:15:29
ERROR Cannot set item in `object` [unsupported-operation]
@@ -3248,16 +3266,22 @@
--> tests/unit_tests/core/datasource/entities/test_datasource_entities.py:268:12
ERROR Object of type `ToolInvokeMessage.BlobChunkMessage | ToolInvokeMessage.BlobMessage | ToolInvokeMessage.FileMessage | ToolInvokeMessage.JsonMessage | ToolInvokeMessage.LogMessage | ToolInvokeMessage.RetrieverResourceMessage | ToolInvokeMessage.TextMessage | ToolInvokeMessage.VariableMessage | None` has no attribute `json_object` [missing-attribute]
--> tests/unit_tests/core/datasource/entities/test_datasource_entities.py:271:12
+ERROR `in` is not supported between `Literal['Single Page']` and `None` [not-iterable]
+ --> tests/unit_tests/core/datasource/test_website_crawl.py:1009:16
ERROR `None` is not subscriptable [unsupported-operation]
--> tests/unit_tests/core/entities/test_entities_provider_configuration.py:622:12
+ERROR Could not find name `Mock` [unknown-name]
+ --> tests/unit_tests/core/entities/test_entities_provider_configuration.py:843:48
+ERROR Could not find name `Mock` [unknown-name]
+ --> tests/unit_tests/core/entities/test_entities_provider_configuration.py:843:54
ERROR Object of class `NoneType` has no attribute `id` [missing-attribute]
--> tests/unit_tests/core/entities/test_entities_provider_configuration.py:916:12
ERROR Object of class `NoneType` has no attribute `id` [missing-attribute]
--> tests/unit_tests/core/entities/test_entities_provider_configuration.py:921:12
ERROR Argument `str | None` is not assignable to parameter `s` with type `bytearray | bytes | str` in function `json.loads` [bad-argument-type]
- --> tests/unit_tests/core/entities/test_entities_provider_configuration.py:974:23
+ --> tests/unit_tests/core/entities/test_entities_provider_configuration.py:973:23
ERROR Argument `str | None` is not assignable to parameter `s` with type `bytearray | bytes | str` in function `json.loads` [bad-argument-type]
- --> tests/unit_tests/core/entities/test_entities_provider_configuration.py:1174:23
+ --> tests/unit_tests/core/entities/test_entities_provider_configuration.py:1172:23
ERROR Argument `list[FromClause]` is not assignable to parameter `tables` with type `Sequence[Table] | None` in function `sqlalchemy.sql.schema.MetaData.create_all` [bad-argument-type]
--> tests/unit_tests/core/file/test_remote_fetcher.py:41:58
ERROR Class member `_ModelInstance.invoke_llm` overrides parent class `ModelInstance` in an inconsistent manner [bad-override]
@@ -3273,11 +3297,11 @@
ERROR Argument `list[@_]` is not assignable to parameter `schema` with type `dict[str, Any]` in function `core.llm_generator.output_parser.structured_output.convert_boolean_to_string` [bad-argument-type]
--> tests/unit_tests/core/llm_generator/output_parser/test_structured_output.py:101:35
ERROR `in` is not supported between `Literal['Existing system prompt']` and `None` [not-iterable]
- --> tests/unit_tests/core/llm_generator/output_parser/test_structured_output.py:281:16
+ --> tests/unit_tests/core/llm_generator/output_parser/test_structured_output.py:221:16
ERROR `in` is not supported between `str` and `None` [not-iterable]
- --> tests/unit_tests/core/llm_generator/output_parser/test_structured_output.py:282:16
+ --> tests/unit_tests/core/llm_generator/output_parser/test_structured_output.py:222:16
ERROR `in` is not supported between `str` and `None` [not-iterable]
- --> tests/unit_tests/core/llm_generator/output_parser/test_structured_output.py:293:16
+ --> tests/unit_tests/core/llm_generator/output_parser/test_structured_output.py:233:16
ERROR Argument `() -> Session` is not assignable to parameter `session_factory` with type `sessionmaker[@_]` in function `sqlalchemy.orm.scoping.scoped_session.__init__` [bad-argument-type]
--> tests/unit_tests/core/llm_generator/test_llm_generator.py:43:31
ERROR Object of class `NoneType` has no attribute `split` [missing-attribute]
@@ -3353,9 +3377,9 @@
ERROR Object of class `NoneType` has no attribute `done` [missing-attribute]
--> tests/unit_tests/core/mcp/session/test_base_session.py:149:12
ERROR `ReceiveRequest` is not assignable to upper bound `ClientRequest | ServerRequest` of type variable `ReceiveRequestT` [bad-specialization]
- --> tests/unit_tests/core/mcp/session/test_base_session.py:595:26
+ --> tests/unit_tests/core/mcp/session/test_base_session.py:597:26
ERROR `ReceiveNotification` is not assignable to upper bound `ClientNotification | ServerNotification` of type variable `ReceiveNotificationT` [bad-specialization]
- --> tests/unit_tests/core/mcp/session/test_base_session.py:595:26
+ --> tests/unit_tests/core/mcp/session/test_base_session.py:597:26
ERROR Argument `(c: Unknown, p: Unknown) -> None` is not assignable to parameter `sampling_callback` with type `SamplingFnT | None` in function `core.mcp.session.client_session.ClientSession.__init__` [bad-argument-type]
--> tests/unit_tests/core/mcp/session/test_client_session.py:97:54
ERROR Argument `(c: Unknown) -> None` is not assignable to parameter `list_roots_callback` with type `ListRootsFnT | None` in function `core.mcp.session.client_session.ClientSession.__init__` [bad-argument-type]
@@ -3576,6 +3600,10 @@
--> tests/unit_tests/core/plugin/test_plugin_runtime.py:439:20
ERROR `in` is not supported between `Literal['Service temporarily unavailable']` and `None` [not-iterable]
--> tests/unit_tests/core/plugin/test_plugin_runtime.py:456:20
+ERROR Argument `list[SystemPromptMessage | UserPromptMessage]` is not assignable to parameter `prompt_messages` with type `list[PromptMessage]` in function `core.prompt.agent_history_prompt_transform.AgentHistoryPromptTransform.__init__` [bad-argument-type]
+ --> tests/unit_tests/core/prompt/test_agent_history_prompt_transform.py:47:25
+ERROR Argument `list[AssistantPromptMessage | SystemPromptMessage | ToolPromptMessage | UserPromptMessage]` is not assignable to parameter `history_messages` with type `list[PromptMessage]` in function `core.prompt.agent_history_prompt_transform.AgentHistoryPromptTransform.__init__` [bad-argument-type]
+ --> tests/unit_tests/core/prompt/test_agent_history_prompt_transform.py:48:26
ERROR Argument `list[MockMessage]` is not assignable to parameter `messages` with type `Sequence[Message]` in function `core.prompt.utils.extract_thread_messages.extract_thread_messages` [bad-argument-type]
--> tests/unit_tests/core/prompt/test_extract_thread_messages.py:54:38
ERROR Argument `list[MockMessage]` is not assignable to parameter `messages` with type `Sequence[Message]` in function `core.prompt.utils.extract_thread_messages.extract_thread_messages` [bad-argument-type]
@@ -3600,6 +3628,14 @@
--> tests/unit_tests/core/prompt/test_extract_thread_messages.py:127:13
ERROR Argument `list[MockMessage]` is not assignable to parameter `messages` with type `Sequence[Message]` in function `core.prompt.utils.extract_thread_messages.extract_thread_messages` [bad-argument-type]
--> tests/unit_tests/core/prompt/test_extract_thread_messages.py:134:38
+ERROR Argument `list[UserPromptMessage]` is not assignable to parameter `prompt_messages` with type `list[PromptMessage]` in function `core.prompt.prompt_transform.PromptTransform._calculate_rest_token` [bad-argument-type]
+ --> tests/unit_tests/core/prompt/test_prompt_transform.py:135:48
+ERROR Argument `list[UserPromptMessage]` is not assignable to parameter `prompt_messages` with type `list[PromptMessage]` in function `core.prompt.prompt_transform.PromptTransform._append_chat_histories` [bad-argument-type]
+ --> tests/unit_tests/core/prompt/test_prompt_transform.py:221:29
+ERROR `Literal[1]` is not assignable to dict value type `str` [bad-assignment]
+ --> tests/unit_tests/core/prompt/test_simple_prompt_transform.py:218:22
+ERROR `Literal[1]` is not assignable to dict value type `str` [bad-assignment]
+ --> tests/unit_tests/core/prompt/test_simple_prompt_transform.py:231:22
ERROR Argument `dict[str, str]` is not assignable to parameter `reranking_model` with type `RerankingModelDict | None` in function `core.rag.data_post_processor.data_post_processor.DataPostProcessor.__init__` [bad-argument-type]
--> tests/unit_tests/core/rag/data_post_processor/test_data_post_processor.py:28:37
ERROR Argument `dict[str, str]` is not assignable to parameter `weights` with type `WeightsDict | None` in function `core.rag.data_post_processor.data_post_processor.DataPostProcessor.__init__` [bad-argument-type]
@@ -3631,35 +3667,35 @@
ERROR Object of class `NoneType` has no attribute `indexing_status` [missing-attribute]
--> tests/unit_tests/core/rag/indexing/test_index_processor.py:237:16
ERROR Object of class `FunctionType` has no attribute `return_value` [missing-attribute]
- --> tests/unit_tests/core/rag/rerank/test_reranker.py:1270:9
+ --> tests/unit_tests/core/rag/rerank/test_reranker.py:1213:9
ERROR Object of class `FunctionType` has no attribute `return_value` [missing-attribute]
- --> tests/unit_tests/core/rag/rerank/test_reranker.py:1327:9
+ --> tests/unit_tests/core/rag/rerank/test_reranker.py:1270:9
ERROR Object of class `FunctionType` has no attribute `return_value` [missing-attribute]
- --> tests/unit_tests/core/rag/rerank/test_reranker.py:1375:9
+ --> tests/unit_tests/core/rag/rerank/test_reranker.py:1318:9
ERROR Object of class `FunctionType` has no attribute `return_value` [missing-attribute]
- --> tests/unit_tests/core/rag/rerank/test_reranker.py:1422:9
+ --> tests/unit_tests/core/rag/rerank/test_reranker.py:1365:9
ERROR Object of class `FunctionType` has no attribute `return_value` [missing-attribute]
- --> tests/unit_tests/core/rag/rerank/test_reranker.py:1458:9
+ --> tests/unit_tests/core/rag/rerank/test_reranker.py:1401:9
ERROR Object of class `FunctionType` has no attribute `return_value` [missing-attribute]
- --> tests/unit_tests/core/rag/rerank/test_reranker.py:1492:9
+ --> tests/unit_tests/core/rag/rerank/test_reranker.py:1435:9
ERROR Object of class `FunctionType` has no attribute `return_value` [missing-attribute]
- --> tests/unit_tests/core/rag/rerank/test_reranker.py:1535:9
+ --> tests/unit_tests/core/rag/rerank/test_reranker.py:1478:9
ERROR Object of class `FunctionType` has no attribute `return_value` [missing-attribute]
- --> tests/unit_tests/core/rag/rerank/test_reranker.py:1569:9
+ --> tests/unit_tests/core/rag/rerank/test_reranker.py:1512:9
ERROR Object of class `FunctionType` has no attribute `return_value` [missing-attribute]
- --> tests/unit_tests/core/rag/rerank/test_reranker.py:1662:9
+ --> tests/unit_tests/core/rag/rerank/test_reranker.py:1604:9
ERROR Object of class `FunctionType` has no attribute `assert_called_once` [missing-attribute]
- --> tests/unit_tests/core/rag/rerank/test_reranker.py:1679:9
+ --> tests/unit_tests/core/rag/rerank/test_reranker.py:1621:9
ERROR Object of class `FunctionType` has no attribute `call_args` [missing-attribute]
- --> tests/unit_tests/core/rag/rerank/test_reranker.py:1680:16
+ --> tests/unit_tests/core/rag/rerank/test_reranker.py:1622:16
ERROR Object of class `FunctionType` has no attribute `return_value` [missing-attribute]
- --> tests/unit_tests/core/rag/rerank/test_reranker.py:1707:9
+ --> tests/unit_tests/core/rag/rerank/test_reranker.py:1649:9
ERROR Object of class `FunctionType` has no attribute `call_count` [missing-attribute]
- --> tests/unit_tests/core/rag/rerank/test_reranker.py:1724:16
+ --> tests/unit_tests/core/rag/rerank/test_reranker.py:1666:16
ERROR Object of class `FunctionType` has no attribute `side_effect` [missing-attribute]
- --> tests/unit_tests/core/rag/rerank/test_reranker.py:1814:9
+ --> tests/unit_tests/core/rag/rerank/test_reranker.py:1755:9
ERROR Object of class `FunctionType` has no attribute `return_value` [missing-attribute]
- --> tests/unit_tests/core/rag/rerank/test_reranker.py:1847:9
+ --> tests/unit_tests/core/rag/rerank/test_reranker.py:1788:9
ERROR Argument `_FakeFlaskApp` is not assignable to parameter `flask_app` with type `Flask` in function `core.rag.retrieval.dataset_retrieval.DatasetRetrieval._run_retriever_thread` [bad-argument-type]
--> tests/unit_tests/core/rag/retrieval/test_dataset_retrieval.py:3754:27
ERROR Argument `_FakeFlaskApp` is not assignable to parameter `flask_app` with type `Flask` in function `core.rag.retrieval.dataset_retrieval.DatasetRetrieval._run_retriever_thread_safely` [bad-argument-type]
@@ -3695,7 +3731,7 @@
ERROR Argument `str` is not assignable to parameter `metadata_filtering_mode` with type `Literal['automatic', 'disabled', 'manual']` in function `core.workflow.nodes.knowledge_retrieval.retrieval.KnowledgeRetrievalRequest.__init__` [bad-argument-type]
--> tests/unit_tests/core/rag/retrieval/test_dataset_retrieval_methods.py:145:33
ERROR Argument `None` is not assignable to parameter `text` with type `str` in function `core.rag.splitter.text_splitter.RecursiveCharacterTextSplitter.split_text` [bad-argument-type]
- --> tests/unit_tests/core/rag/splitter/test_text_splitter.py:1873:42
+ --> tests/unit_tests/core/rag/splitter/test_text_splitter.py:1847:42
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:73:53
ERROR Cannot instantiate `CeleryWorkflowNodeExecutionRepository` because the following members are abstract: `save_execution_data` [bad-instantiation]
@@ -3729,17 +3765,297 @@
ERROR Argument `list[FromClause]` is not assignable to parameter `tables` with type `Sequence[Table] | None` in function `sqlalchemy.sql.schema.MetaData.create_all` [bad-argument-type]
--> tests/unit_tests/core/repositories/test_human_input_repository.py:56:56
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:147:33
+ --> tests/unit_tests/core/repositories/test_sqlalchemy_workflow_execution_repository.py:111:33
ERROR `None` is not assignable to attribute `graph` with type `Mapping[str, Any]` [bad-assignment]
- --> tests/unit_tests/core/repositories/test_sqlalchemy_workflow_execution_repository.py:286:43
+ --> tests/unit_tests/core/repositories/test_sqlalchemy_workflow_execution_repository.py:250:43
ERROR `None` is not assignable to attribute `inputs` with type `Mapping[str, Any]` [bad-assignment]
- --> tests/unit_tests/core/repositories/test_sqlalchemy_workflow_execution_repository.py:287:44
+ --> tests/unit_tests/core/repositories/test_sqlalchemy_workflow_execution_repository.py:251:44
ERROR `None` is not assignable to attribute `error_message` with type `str` [bad-assignment]
- --> tests/unit_tests/core/repositories/test_sqlalchemy_workflow_execution_repository.py:289:51
+ --> tests/unit_tests/core/repositories/test_sqlalchemy_workflow_execution_repository.py:253:51
ERROR `None` is not assignable to attribute `_creator_user_id` with type `str` [bad-assignment]
- --> tests/unit_tests/core/repositories/test_sqlalchemy_workflow_execution_repository.py:337:33
+ --> tests/unit_tests/core/repositories/test_sqlalchemy_workflow_execution_repository.py:301:33
ERROR `None` is not assignable to attribute `_creator_user_role` with type `CreatorUserRole` [bad-assignment]
- --> tests/unit_tests/core/repositories/test_sqlalchemy_workflow_execution_repository.py:342:35
+ --> tests/unit_tests/core/repositories/test_sqlalchemy_workflow_execution_repository.py:306:35
+ERROR Cannot index into `bool` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:42:16
+ERROR Cannot index into `float` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:42:16
+ERROR Cannot index into `int` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:42:16
+ERROR Cannot index into `list[Any]` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:42:16
+ERROR Cannot index into `str` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:42:16
+ERROR `None` is not subscriptable [unsupported-operation]
+ --> tests/unit_tests/core/schemas/test_resolver.py:42:16
+ERROR Cannot index into `bool` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:43:16
+ERROR Cannot index into `float` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:43:16
+ERROR Cannot index into `int` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:43:16
+ERROR Cannot index into `list[Any]` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:43:16
+ERROR Cannot index into `str` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:43:16
+ERROR `None` is not subscriptable [unsupported-operation]
+ --> tests/unit_tests/core/schemas/test_resolver.py:43:16
+ERROR Cannot index into `bool` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:44:31
+ERROR Cannot index into `float` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:44:31
+ERROR Cannot index into `int` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:44:31
+ERROR Cannot index into `list[Any]` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:44:31
+ERROR Cannot index into `str` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:44:31
+ERROR `None` is not subscriptable [unsupported-operation]
+ --> tests/unit_tests/core/schemas/test_resolver.py:44:31
+ERROR `not in` is not supported between `Literal['$id']` and `bool` [not-iterable]
+ --> tests/unit_tests/core/schemas/test_resolver.py:48:16
+ERROR `not in` is not supported between `Literal['$id']` and `float` [not-iterable]
+ --> tests/unit_tests/core/schemas/test_resolver.py:48:16
+ERROR `not in` is not supported between `Literal['$id']` and `int` [not-iterable]
+ --> tests/unit_tests/core/schemas/test_resolver.py:48:16
+ERROR `not in` is not supported between `Literal['$id']` and `None` [not-iterable]
+ --> tests/unit_tests/core/schemas/test_resolver.py:48:16
+ERROR `not in` is not supported between `Literal['$schema']` and `bool` [not-iterable]
+ --> tests/unit_tests/core/schemas/test_resolver.py:49:16
+ERROR `not in` is not supported between `Literal['$schema']` and `float` [not-iterable]
+ --> tests/unit_tests/core/schemas/test_resolver.py:49:16
+ERROR `not in` is not supported between `Literal['$schema']` and `int` [not-iterable]
+ --> tests/unit_tests/core/schemas/test_resolver.py:49:16
+ERROR `not in` is not supported between `Literal['$schema']` and `None` [not-iterable]
+ --> tests/unit_tests/core/schemas/test_resolver.py:49:16
+ERROR `not in` is not supported between `Literal['version']` and `bool` [not-iterable]
+ --> tests/unit_tests/core/schemas/test_resolver.py:50:16
+ERROR `not in` is not supported between `Literal['version']` and `float` [not-iterable]
+ --> tests/unit_tests/core/schemas/test_resolver.py:50:16
+ERROR `not in` is not supported between `Literal['version']` and `int` [not-iterable]
+ --> tests/unit_tests/core/schemas/test_resolver.py:50:16
+ERROR `not in` is not supported between `Literal['version']` and `None` [not-iterable]
+ --> tests/unit_tests/core/schemas/test_resolver.py:50:16
+ERROR Cannot index into `bool` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:65:16
+ERROR Cannot index into `float` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:65:16
+ERROR Cannot index into `int` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:65:16
+ERROR Cannot index into `list[Any]` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:65:16
+ERROR Cannot index into `str` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:65:16
+ERROR `None` is not subscriptable [unsupported-operation]
+ --> tests/unit_tests/core/schemas/test_resolver.py:65:16
+ERROR Cannot index into `bool` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:66:30
+ERROR Cannot index into `float` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:66:30
+ERROR Cannot index into `int` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:66:30
+ERROR Cannot index into `list[Any]` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:66:30
+ERROR Cannot index into `str` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:66:30
+ERROR `None` is not subscriptable [unsupported-operation]
+ --> tests/unit_tests/core/schemas/test_resolver.py:66:30
+ERROR Cannot index into `bool` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:91:16
+ERROR Cannot index into `float` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:91:16
+ERROR Cannot index into `int` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:91:16
+ERROR Cannot index into `list[Any]` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:91:16
+ERROR Cannot index into `str` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:91:16
+ERROR `None` is not subscriptable [unsupported-operation]
+ --> tests/unit_tests/core/schemas/test_resolver.py:91:16
+ERROR Cannot index into `bool` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:92:16
+ERROR Cannot index into `float` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:92:16
+ERROR Cannot index into `int` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:92:16
+ERROR Cannot index into `list[Any]` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:92:16
+ERROR Cannot index into `str` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:92:16
+ERROR `None` is not subscriptable [unsupported-operation]
+ --> tests/unit_tests/core/schemas/test_resolver.py:92:16
+ERROR Cannot index into `bool` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:95:24
+ERROR Cannot index into `float` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:95:24
+ERROR Cannot index into `int` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:95:24
+ERROR Cannot index into `list[Any]` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:95:24
+ERROR Cannot index into `str` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:95:24
+ERROR `None` is not subscriptable [unsupported-operation]
+ --> tests/unit_tests/core/schemas/test_resolver.py:95:24
+ERROR Cannot index into `bool` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:112:16
+ERROR Cannot index into `float` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:112:16
+ERROR Cannot index into `int` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:112:16
+ERROR Cannot index into `list[Any]` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:112:16
+ERROR Cannot index into `str` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:112:16
+ERROR `None` is not subscriptable [unsupported-operation]
+ --> tests/unit_tests/core/schemas/test_resolver.py:112:16
+ERROR Cannot index into `bool` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:115:16
+ERROR Cannot index into `float` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:115:16
+ERROR Cannot index into `int` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:115:16
+ERROR Cannot index into `list[Any]` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:115:16
+ERROR Cannot index into `str` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:115:16
+ERROR `None` is not subscriptable [unsupported-operation]
+ --> tests/unit_tests/core/schemas/test_resolver.py:115:16
+ERROR Cannot index into `bool` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:116:16
+ERROR Cannot index into `float` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:116:16
+ERROR Cannot index into `int` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:116:16
+ERROR Cannot index into `list[Any]` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:116:16
+ERROR Cannot index into `str` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:116:16
+ERROR `None` is not subscriptable [unsupported-operation]
+ --> tests/unit_tests/core/schemas/test_resolver.py:116:16
+ERROR Cannot index into `bool` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:133:16
+ERROR Cannot index into `float` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:133:16
+ERROR Cannot index into `int` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:133:16
+ERROR Cannot index into `list[Any]` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:133:16
+ERROR Cannot index into `str` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:133:16
+ERROR `None` is not subscriptable [unsupported-operation]
+ --> tests/unit_tests/core/schemas/test_resolver.py:133:16
+ERROR Cannot index into `bool` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:134:16
+ERROR Cannot index into `float` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:134:16
+ERROR Cannot index into `int` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:134:16
+ERROR Cannot index into `list[Any]` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:134:16
+ERROR Cannot index into `str` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:134:16
+ERROR `None` is not subscriptable [unsupported-operation]
+ --> tests/unit_tests/core/schemas/test_resolver.py:134:16
+ERROR Cannot index into `bool` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:135:16
+ERROR Cannot index into `float` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:135:16
+ERROR Cannot index into `int` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:135:16
+ERROR Cannot index into `list[Any]` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:135:16
+ERROR Cannot index into `str` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:135:16
+ERROR `None` is not subscriptable [unsupported-operation]
+ --> tests/unit_tests/core/schemas/test_resolver.py:135:16
+ERROR Cannot index into `bool` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:136:16
+ERROR Cannot index into `float` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:136:16
+ERROR Cannot index into `int` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:136:16
+ERROR Cannot index into `list[Any]` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:136:16
+ERROR Cannot index into `str` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:136:16
+ERROR `None` is not subscriptable [unsupported-operation]
+ --> tests/unit_tests/core/schemas/test_resolver.py:136:16
+ERROR Cannot index into `bool` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:150:16
+ERROR Cannot index into `float` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:150:16
+ERROR Cannot index into `int` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:150:16
+ERROR Cannot index into `list[Any]` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:150:16
+ERROR Cannot index into `str` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:150:16
+ERROR `in` is not supported between `Literal['$circular_ref']` and `bool` [not-iterable]
+ --> tests/unit_tests/core/schemas/test_resolver.py:170:16
+ERROR `in` is not supported between `Literal['$circular_ref']` and `float` [not-iterable]
+ --> tests/unit_tests/core/schemas/test_resolver.py:170:16
+ERROR `in` is not supported between `Literal['$circular_ref']` and `int` [not-iterable]
+ --> tests/unit_tests/core/schemas/test_resolver.py:170:16
+ERROR `in` is not supported between `Literal['$circular_ref']` and `None` [not-iterable]
+ --> tests/unit_tests/core/schemas/test_resolver.py:170:16
+ERROR Cannot index into `bool` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:182:16
+ERROR Cannot index into `float` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:182:16
+ERROR Cannot index into `int` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:182:16
+ERROR Cannot index into `list[Any]` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:182:16
+ERROR Cannot index into `str` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:182:16
+ERROR `None` is not subscriptable [unsupported-operation]
+ --> tests/unit_tests/core/schemas/test_resolver.py:182:16
+ERROR Argument `Exception` is not assignable to parameter `object` with type `bool | dict[str, Any] | float | int | list[Any] | str | None` in function `list.append` [bad-argument-type]
+ --> tests/unit_tests/core/schemas/test_resolver.py:233:32
+ERROR Cannot index into `bool` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:273:16
+ERROR Cannot index into `float` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:273:16
+ERROR Cannot index into `int` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:273:16
+ERROR Cannot index into `list[Any]` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:273:16
+ERROR Cannot index into `str` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:273:16
+ERROR `None` is not subscriptable [unsupported-operation]
+ --> tests/unit_tests/core/schemas/test_resolver.py:273:16
+ERROR Cannot index into `bool` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:274:27
+ERROR Cannot index into `float` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:274:27
+ERROR Cannot index into `int` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:274:27
+ERROR Cannot index into `list[Any]` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:274:27
+ERROR Cannot index into `str` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:274:27
+ERROR `None` is not subscriptable [unsupported-operation]
+ --> tests/unit_tests/core/schemas/test_resolver.py:274:27
+ERROR Cannot set item in `str` [unsupported-operation]
+ --> tests/unit_tests/core/schemas/test_resolver.py:593:13
+ERROR Cannot index into `str` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:594:23
+ERROR Cannot index into `bool` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:667:13
+ERROR Cannot index into `str` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:667:13
+ERROR Cannot set item in `str` [unsupported-operation]
+ --> tests/unit_tests/core/schemas/test_resolver.py:667:13
+ERROR Cannot set item in `dict[str, str]` [unsupported-operation]
+ --> tests/unit_tests/core/schemas/test_resolver.py:667:51
+ERROR `dict[@_, @_]` is not assignable to dict value type `str` [bad-assignment]
+ --> tests/unit_tests/core/schemas/test_resolver.py:667:84
+ERROR Cannot index into `bool` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:668:23
+ERROR Cannot index into `str` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:668:23
+ERROR Cannot index into `str` [bad-index]
+ --> tests/unit_tests/core/schemas/test_resolver.py:668:23
ERROR Argument `Literal[core.entities.provider_entities.ProviderQuotaType.TRIAL]` is not assignable to parameter `quota_type` with type `models.enums.ProviderQuotaType | SQLCoreOperations[models.enums.ProviderQuotaType | None] | None` in function `models.provider.Provider.__init__` [bad-argument-type]
--> tests/unit_tests/core/test_provider_manager.py:114:20
ERROR Argument `Literal['llm']` is not assignable to parameter `model_type` with type `ModelType | SQLCoreOperations[ModelType]` in function `models.provider.ProviderModelSetting.__init__` [bad-argument-type]
@@ -3863,11 +4179,11 @@
ERROR Object of type `ToolInvokeMessage.BlobChunkMessage | ToolInvokeMessage.BlobMessage | ToolInvokeMessage.FileMessage | ToolInvokeMessage.JsonMessage | ToolInvokeMessage.LogMessage | ToolInvokeMessage.RetrieverResourceMessage | ToolInvokeMessage.TextMessage | ToolInvokeMessage.VariableMessage | None` has no attribute `text` [missing-attribute]
--> tests/unit_tests/core/tools/test_dataset_retriever_tool.py:176:12
ERROR Object of type `ToolInvokeMessage.BlobChunkMessage | ToolInvokeMessage.BlobMessage | ToolInvokeMessage.FileMessage | ToolInvokeMessage.JsonMessage | ToolInvokeMessage.LogMessage | ToolInvokeMessage.RetrieverResourceMessage | ToolInvokeMessage.TextMessage | ToolInvokeMessage.VariableMessage | None` has no attribute `text` [missing-attribute]
- --> tests/unit_tests/core/tools/test_mcp_tool.py:69:12
+ --> tests/unit_tests/core/tools/test_mcp_tool.py:68:12
ERROR Object of type `ToolInvokeMessage.BlobChunkMessage | ToolInvokeMessage.BlobMessage | ToolInvokeMessage.FileMessage | ToolInvokeMessage.JsonMessage | ToolInvokeMessage.LogMessage | ToolInvokeMessage.RetrieverResourceMessage | ToolInvokeMessage.TextMessage | ToolInvokeMessage.VariableMessage | None` has no attribute `text` [missing-attribute]
- --> tests/unit_tests/core/tools/test_mcp_tool.py:79:12
+ --> tests/unit_tests/core/tools/test_mcp_tool.py:78:12
ERROR Argument `str` is not assignable to parameter `identity_mode` with type `IdentityMode` in function `core.tools.mcp_tool.tool.MCPTool.__init__` [bad-argument-type]
- --> tests/unit_tests/core/tools/test_mcp_tool.py:182:23
+ --> tests/unit_tests/core/tools/test_mcp_tool.py:181:23
ERROR Object of type `ToolInvokeMessage.BlobChunkMessage | ToolInvokeMessage.BlobMessage | ToolInvokeMessage.FileMessage | ToolInvokeMessage.JsonMessage | ToolInvokeMessage.LogMessage | ToolInvokeMessage.RetrieverResourceMessage | ToolInvokeMessage.TextMessage | ToolInvokeMessage.VariableMessage | None` has no attribute `text` [missing-attribute]
--> tests/unit_tests/core/tools/test_plugin_tool.py:68:13
ERROR Object of class `ToolInvokeMeta` has no attribute `type` [missing-attribute]
@@ -3971,11 +4287,11 @@
ERROR Object of type `ToolInvokeMessage.BlobChunkMessage | ToolInvokeMessage.BlobMessage | ToolInvokeMessage.FileMessage | ToolInvokeMessage.JsonMessage | ToolInvokeMessage.LogMessage | ToolInvokeMessage.RetrieverResourceMessage | ToolInvokeMessage.TextMessage | ToolInvokeMessage.VariableMessage | None` has no attribute `file_marker` [missing-attribute]
--> tests/unit_tests/core/tools/workflow_as_tool/test_tool.py:567:12
ERROR Object of class `IExecutionContext` has no attribute `context_vars` [missing-attribute]
- --> tests/unit_tests/core/workflow/context/test_execution_context.py:300:16
+ --> tests/unit_tests/core/workflow/context/test_execution_context.py:302:16
ERROR Object of class `BaseModel` has no attribute `base_url` [missing-attribute]
- --> tests/unit_tests/core/workflow/context/test_execution_context.py:321:16
+ --> tests/unit_tests/core/workflow/context/test_execution_context.py:323:16
ERROR Object of class `BaseModel` has no attribute `base_url` [missing-attribute]
- --> tests/unit_tests/core/workflow/context/test_execution_context.py:322:16
+ --> tests/unit_tests/core/workflow/context/test_execution_context.py:324:16
ERROR Object of class `Flask` has no attribute `_get_current_object` [missing-attribute]
--> tests/unit_tests/core/workflow/context/test_flask_app_context.py:72:20
ERROR Object of class `IExecutionContext` has no attribute `_flask_app` [missing-attribute]
@@ -4016,6 +4332,14 @@
--> tests/unit_tests/core/workflow/generator/test_runner_missing.py:124:65
ERROR Argument `dict[str, list[dict[str, str | dict[str, str]]] | list[Unknown]]` is not assignable to parameter `graph` with type `GraphDict` in function `core.workflow.generator.runner.WorkflowGenerator._validate_structure` [bad-argument-type]
--> tests/unit_tests/core/workflow/generator/test_runner_missing.py:185:58
+ERROR Could not find name `NodeType` [unknown-name]
+ --> tests/unit_tests/core/workflow/graph_engine/test_mock_config.py:39:27
+ERROR Could not find name `NodeType` [unknown-name]
+ --> tests/unit_tests/core/workflow/graph_engine/test_mock_config.py:74:45
+ERROR Could not find name `NodeType` [unknown-name]
+ --> tests/unit_tests/core/workflow/graph_engine/test_mock_config.py:78:45
+ERROR Could not find name `NodeType` [unknown-name]
+ --> tests/unit_tests/core/workflow/graph_engine/test_mock_config.py:158:46
ERROR Cannot extend final class `DifyNodeFactory` [invalid-inheritance]
--> tests/unit_tests/core/workflow/graph_engine/test_mock_factory.py:38:23
ERROR Class member `MockNodeFactory.create_node` overrides a member in a parent class but is missing an `@override` decorator [missing-override-decorator]
@@ -4041,67 +4365,67 @@
ERROR Class member `MockLLMNode._run` overrides a member in a parent class but is missing an `@override` decorator [missing-override-decorator]
--> tests/unit_tests/core/workflow/graph_engine/test_mock_nodes.py:164:9
ERROR Class member `MockAgentNode.version` overrides a member in a parent class but is missing an `@override` decorator [missing-override-decorator]
- --> tests/unit_tests/core/workflow/graph_engine/test_mock_nodes.py:254:9
+ --> tests/unit_tests/core/workflow/graph_engine/test_mock_nodes.py:257:9
ERROR Class member `MockAgentNode._run` overrides a member in a parent class but is missing an `@override` decorator [missing-override-decorator]
- --> tests/unit_tests/core/workflow/graph_engine/test_mock_nodes.py:258:9
+ --> tests/unit_tests/core/workflow/graph_engine/test_mock_nodes.py:261:9
ERROR Class member `MockToolNode.version` overrides a member in a parent class but is missing an `@override` decorator [missing-override-decorator]
- --> tests/unit_tests/core/workflow/graph_engine/test_mock_nodes.py:306:9
+ --> tests/unit_tests/core/workflow/graph_engine/test_mock_nodes.py:309:9
ERROR Class member `MockToolNode._run` overrides a member in a parent class but is missing an `@override` decorator [missing-override-decorator]
- --> tests/unit_tests/core/workflow/graph_engine/test_mock_nodes.py:310:9
+ --> tests/unit_tests/core/workflow/graph_engine/test_mock_nodes.py:313:9
ERROR Class member `MockKnowledgeRetrievalNode.version` overrides parent class `KnowledgeRetrievalNode` in an inconsistent manner [bad-override]
- --> tests/unit_tests/core/workflow/graph_engine/test_mock_nodes.py:359:9
+ --> tests/unit_tests/core/workflow/graph_engine/test_mock_nodes.py:362:9
ERROR Class member `MockKnowledgeRetrievalNode.version` overrides a member in a parent class but is missing an `@override` decorator [missing-override-decorator]
- --> tests/unit_tests/core/workflow/graph_engine/test_mock_nodes.py:359:9
+ --> tests/unit_tests/core/workflow/graph_engine/test_mock_nodes.py:362:9
ERROR Class member `MockKnowledgeRetrievalNode._run` overrides parent class `KnowledgeRetrievalNode` in an inconsistent manner [bad-override]
- --> tests/unit_tests/core/workflow/graph_engine/test_mock_nodes.py:363:9
+ --> tests/unit_tests/core/workflow/graph_engine/test_mock_nodes.py:366:9
ERROR Class member `MockKnowledgeRetrievalNode._run` overrides a member in a parent class but is missing an `@override` decorator [missing-override-decorator]
- --> tests/unit_tests/core/workflow/graph_engine/test_mock_nodes.py:363:9
+ --> tests/unit_tests/core/workflow/graph_engine/test_mock_nodes.py:366:9
ERROR Class member `MockHttpRequestNode.version` overrides a member in a parent class but is missing an `@override` decorator [missing-override-decorator]
- --> tests/unit_tests/core/workflow/graph_engine/test_mock_nodes.py:416:9
+ --> tests/unit_tests/core/workflow/graph_engine/test_mock_nodes.py:419:9
ERROR Class member `MockHttpRequestNode._run` overrides parent class `HttpRequestNode` in an inconsistent manner [bad-override]
- --> tests/unit_tests/core/workflow/graph_engine/test_mock_nodes.py:420:9
+ --> tests/unit_tests/core/workflow/graph_engine/test_mock_nodes.py:423:9
ERROR Class member `MockHttpRequestNode._run` overrides a member in a parent class but is missing an `@override` decorator [missing-override-decorator]
- --> tests/unit_tests/core/workflow/graph_engine/test_mock_nodes.py:420:9
+ --> tests/unit_tests/core/workflow/graph_engine/test_mock_nodes.py:423:9
ERROR Class member `MockQuestionClassifierNode.version` overrides a member in a parent class but is missing an `@override` decorator [missing-override-decorator]
- --> tests/unit_tests/core/workflow/graph_engine/test_mock_nodes.py:469:9
+ --> tests/unit_tests/core/workflow/graph_engine/test_mock_nodes.py:472:9
ERROR Class member `MockQuestionClassifierNode._run` overrides parent class `QuestionClassifierNode` in an inconsistent manner [bad-override]
- --> tests/unit_tests/core/workflow/graph_engine/test_mock_nodes.py:473:9
+ --> tests/unit_tests/core/workflow/graph_engine/test_mock_nodes.py:476:9
ERROR Class member `MockQuestionClassifierNode._run` overrides a member in a parent class but is missing an `@override` decorator [missing-override-decorator]
- --> tests/unit_tests/core/workflow/graph_engine/test_mock_nodes.py:473:9
+ --> tests/unit_tests/core/workflow/graph_engine/test_mock_nodes.py:476:9
ERROR Class member `MockParameterExtractorNode.version` overrides a member in a parent class but is missing an `@override` decorator [missing-override-decorator]
- --> tests/unit_tests/core/workflow/graph_engine/test_mock_nodes.py:517:9
+ --> tests/unit_tests/core/workflow/graph_engine/test_mock_nodes.py:520:9
ERROR Class member `MockParameterExtractorNode._run` overrides parent class `ParameterExtractorNode` in an inconsistent manner [bad-override]
- --> tests/unit_tests/core/workflow/graph_engine/test_mock_nodes.py:521:9
+ --> tests/unit_tests/core/workflow/graph_engine/test_mock_nodes.py:524:9
ERROR Class member `MockParameterExtractorNode._run` overrides a member in a parent class but is missing an `@override` decorator [missing-override-decorator]
- --> tests/unit_tests/core/workflow/graph_engine/test_mock_nodes.py:521:9
+ --> tests/unit_tests/core/workflow/graph_engine/test_mock_nodes.py:524:9
ERROR Class member `MockDocumentExtractorNode.version` overrides a member in a parent class but is missing an `@override` decorator [missing-override-decorator]
- --> tests/unit_tests/core/workflow/graph_engine/test_mock_nodes.py:567:9
+ --> tests/unit_tests/core/workflow/graph_engine/test_mock_nodes.py:570:9
ERROR Class member `MockDocumentExtractorNode._run` overrides parent class `DocumentExtractorNode` in an inconsistent manner [bad-override]
- --> tests/unit_tests/core/workflow/graph_engine/test_mock_nodes.py:571:9
+ --> tests/unit_tests/core/workflow/graph_engine/test_mock_nodes.py:574:9
ERROR Class member `MockDocumentExtractorNode._run` overrides a member in a parent class but is missing an `@override` decorator [missing-override-decorator]
- --> tests/unit_tests/core/workflow/graph_engine/test_mock_nodes.py:571:9
+ --> tests/unit_tests/core/workflow/graph_engine/test_mock_nodes.py:574:9
ERROR Class member `MockIterationNode.version` overrides a member in a parent class but is missing an `@override` decorator [missing-override-decorator]
- --> tests/unit_tests/core/workflow/graph_engine/test_mock_nodes.py:622:9
+ --> tests/unit_tests/core/workflow/graph_engine/test_mock_nodes.py:625:9
ERROR Class member `MockLoopNode.version` overrides a member in a parent class but is missing an `@override` decorator [missing-override-decorator]
- --> tests/unit_tests/core/workflow/graph_engine/test_mock_nodes.py:631:9
+ --> tests/unit_tests/core/workflow/graph_engine/test_mock_nodes.py:634:9
ERROR Class member `MockTemplateTransformNode.version` overrides a member in a parent class but is missing an `@override` decorator [missing-override-decorator]
- --> tests/unit_tests/core/workflow/graph_engine/test_mock_nodes.py:640:9
+ --> tests/unit_tests/core/workflow/graph_engine/test_mock_nodes.py:643:9
ERROR Class member `MockTemplateTransformNode._run` overrides a member in a parent class but is missing an `@override` decorator [missing-override-decorator]
- --> tests/unit_tests/core/workflow/graph_engine/test_mock_nodes.py:644:9
+ --> tests/unit_tests/core/workflow/graph_engine/test_mock_nodes.py:647:9
ERROR Class member `MockCodeNode.version` overrides a member in a parent class but is missing an `@override` decorator [missing-override-decorator]
- --> tests/unit_tests/core/workflow/graph_engine/test_mock_nodes.py:726:9
+ --> tests/unit_tests/core/workflow/graph_engine/test_mock_nodes.py:729:9
ERROR Class member `MockCodeNode._run` overrides a member in a parent class but is missing an `@override` decorator [missing-override-decorator]
- --> tests/unit_tests/core/workflow/graph_engine/test_mock_nodes.py:730:9
+ --> tests/unit_tests/core/workflow/graph_engine/test_mock_nodes.py:733:9
ERROR Cannot set item in `dict[str, str]` [unsupported-operation]
- --> tests/unit_tests/core/workflow/graph_engine/test_mock_nodes.py:753:52
+ --> tests/unit_tests/core/workflow/graph_engine/test_mock_nodes.py:756:52
ERROR Cannot set item in `dict[str, str]` [unsupported-operation]
- --> tests/unit_tests/core/workflow/graph_engine/test_mock_nodes.py:755:52
+ --> tests/unit_tests/core/workflow/graph_engine/test_mock_nodes.py:758:52
ERROR Cannot set item in `dict[str, str]` [unsupported-operation]
- --> tests/unit_tests/core/workflow/graph_engine/test_mock_nodes.py:757:52
+ --> tests\n\n... (truncated) ... |
Pyrefly Type Coverage
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #44061 +/- ##
==========================================
+ Coverage 88.97% 88.99% +0.01%
==========================================
Files 5336 5353 +17
Lines 330700 333229 +2529
Branches 66048 66080 +32
==========================================
+ Hits 294245 296557 +2312
- Misses 31241 31477 +236
+ Partials 5214 5195 -19
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Stream29
left a comment
There was a problem hiding this comment.
Re-reviewed the CI-only follow-up 514ddd7 after the previous approval was dismissed on push. This commit only removes redundant process-global eager configuration from the two tests; Task.apply still exercises the real eager/autoretry path, and the production fix is unchanged. The two original Pyrefly diagnostics are reproduced before the change and gone afterward; Ruff and all 9 tests in the affected file pass in an isolated local harness. The new remote Python Style job, including full core type checks, has now passed. Remaining required CI and merge-queue checks must still complete normally; no bypass is requested.
* feat(agent): stream Agent V2 text output in plain runs (langgenius#43986) Co-authored-by: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com> * refactor(api): read provider configuration cache rows via pydantic (langgenius#44055) * refactor(web): use Select for the Studio app type filter (langgenius#44070) * refactor(web): model app settings with form primitives (langgenius#44073) * fix(dify-ui): show destructive colors on keyboard focus (langgenius#44079) * ci: require TypeBase for new models (langgenius#44087) Co-authored-by: Codex <codex@openai.com> Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> * ci: enable Ruff E721 (langgenius#44096) Co-authored-by: Codex <codex@openai.com> * ci: enable Ruff SIM210 (langgenius#44095) Co-authored-by: Codex <codex@openai.com> * fix(web): align API key dialog lifecycle and copy behavior (langgenius#44077) * test(dify-ui): wait for time picker visibility before axe scan (langgenius#44105) * ci: enable Ruff B006 (langgenius#44099) Co-authored-by: Codex <codex@openai.com> * ci: enable Ruff FURB152 (langgenius#44091) Co-authored-by: Codex <codex@openai.com> * ci: enable Ruff E711 (langgenius#44088) Co-authored-by: Codex <codex@openai.com> * fix(knowledge): only batch-enable segments whose indexing completed (langgenius#44017) * fix(nodejs-client): preserve SSE field value whitespace (langgenius#44083) * fix(api): stage hit-testing query log with flush instead of committing caller session (langgenius#44084) * fix(dify-agent): treat a confirmed-missing Home Snapshot as a success on Enterprise delete (langgenius#44085) Co-authored-by: D41910 <d41910@users.noreply.github.com> * fix(nodejs-client): override default headers case-insensitively (langgenius#44090) * fix(nodejs-client): allow empty keyword filters in list APIs (langgenius#44097) * fix(nodejs-client): replace stale user fields in native upload forms (langgenius#44120) * fix(api): accept MCP protocol version 2025-11-25 (langgenius#44066) * fix(api): compare datasource credentials as JSON on MySQL (langgenius#44039) * fix(structured_output): skip reasoning JSON when selecting output (langgenius#44005) Co-authored-by: crazywoola <427733928@qq.com> * ci: enable Ruff E722 (langgenius#44098) Co-authored-by: Codex <codex@openai.com> * ci: enable Ruff UP032 (langgenius#44092) Co-authored-by: Codex <codex@openai.com> * ci: enable Ruff B905 (langgenius#44094) Co-authored-by: Codex <codex@openai.com> * ci: enable Ruff SIM113 (langgenius#44102) Co-authored-by: Codex <codex@openai.com> * fix(deps): upgrade Next.js to 16.4.1 for October security fixes (langgenius#44127) * docs: record overlay ownership and focus lessons (langgenius#44126) * refactor(workflow): use route identity and Console Query for webhook URLs (langgenius#44135) * refactor(workflow): own preview chat requests with Console Query (langgenius#44136) * perf(rag): reduce knowledge retrieval post-processing overhead (langgenius#43665) * fix(api): fix typos in logger warning and docstrings (langgenius#44134) * refactor(api): enable strict typing for enterprise telemetry exporter tests (langgenius#44138) * refactor(api): enable strict typing for prompt transform tests (langgenius#44139) * ci: enable Ruff TID252 (langgenius#44108) Co-authored-by: Codex <codex@openai.com> * ci: enable Ruff B026 (langgenius#44100) Co-authored-by: Codex <codex@openai.com> * ci: enable Ruff SIM103 (langgenius#44110) Co-authored-by: Codex <codex@openai.com> * ci: enable Ruff FURB113 (langgenius#44109) Co-authored-by: Codex <codex@openai.com> * refactor(tools): remove redundant nested cast in MCP tool (langgenius#44132) * refactor(api): use Pydantic to validate crawl cache key (langgenius#44131) * fix(mcp): collect all tool discovery pages (langgenius#43842) * fix(deps): override fflate to 0.7.5 for CVE-2026-45820 (langgenius#44148) * refactor(web): let layouts own viewport height instead of root h-full chain (langgenius#44143) * refactor(web): centralize AppIcon data and Avatar rendering (langgenius#44149) * fix(agent): fail closed on Landlock errors and require local tokens (langgenius#44152) * chore(deps): bump mako from 1.3.12 to 1.4.2 in /api (langgenius#43607) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump multidict from 6.7.0 to 6.9.1 in /api (langgenius#43610) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump fsspec from 2026.3.0 to 2026.6.0 in /dify-agent (langgenius#43606) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump oauthlib from 3.3.1 to 4.0.0 in /api (langgenius#43257) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump pydantic-ai-slim from 2.31.0 to 2.53.0 in /api (langgenius#43725) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * ci: enable Ruff E712 (langgenius#44114) Co-authored-by: Codex <codex@openai.com> * refactor: migrate app tracing queries and harden monitoring configuration (langgenius#44150) * ci: enable Ruff SIM108 (langgenius#44113) Co-authored-by: Codex <codex@openai.com> * refactor(api): remove redundant casts in tencent trace unit tests (langgenius#44158) * fix(api): preserve timestamp ties in message pagination (langgenius#44023) Co-authored-by: mac <mac@macdeMacBook-Pro.local> * fix(web): keep the value selector of a Code node input when regenerating code (langgenius#44075) * fix(e2e): share sandbox auth token across managed runtimes (langgenius#44164) * chore: remove KnowledgeFS and New Knowledge from main (langgenius#44163) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * ci: enable Ruff SIM105 (langgenius#44112) Co-authored-by: Codex <codex@openai.com> * refactor(web): retire the app detail store in favour of the query cache (langgenius#44166) * fix(api): let a removed active member sign in with a re-invite (langgenius#43667) Co-authored-by: Matt Van Horn <455140+mvanhorn@users.noreply.github.com> Co-authored-by: Stream <Stream_2@qq.com> * refactor(web): clarify App modes and scope workflow editor resources (langgenius#44171) * chore: mark generated files as linguist-generated (langgenius#44180) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * feat(api): let agents build, configure and ship Dify apps over openapi (langgenius#43067) * ci: enable Ruff B007 (langgenius#44107) Co-authored-by: Codex <codex@openai.com> * ci: enable Ruff F821 (langgenius#44101) Co-authored-by: Codex <codex@openai.com> * ci: enable Ruff UP007 (langgenius#44106) Co-authored-by: Codex <codex@openai.com> Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> * ci: enable Ruff N806 (langgenius#44116) Co-authored-by: Codex <codex@openai.com> * fix: accumulate workflow elapsed time across resumptions (langgenius#44161) * refactor(web): migrate handwritten console API calls to the generated oRPC contract (langgenius#44169) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> * chore(deps): bump unstructured from 0.24.0 to 0.24.1 in /dify-agent (langgenius#44189) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * fix(web): normalize collapsible indicator rotation (langgenius#44193) * fix(workflow): generate template-compatible snippet node IDs (langgenius#43838) * fix(api): return protocol errors for unsupported MCP requests (langgenius#44197) * fix(api): align hosted moderation provider validation (langgenius#44200) * feat(api): add inner API for enterprise admin app list and detail (langgenius#44044) Co-authored-by: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> * fix(dify-ui): let portal order stack overlays so nested modals block clicks (langgenius#44214) * fix(nodejs-client): collect workflow text_chunk and apply message_replace in toText (langgenius#44177) * fix(rag): preserve newlines in recursive character fallback (langgenius#44179) * refactor(web): remove unnecessary type assertions with a migration-only tsslint rule (langgenius#44219) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * refactor: remove redundant TypeScript type aliases (langgenius#44225) * refactor(web): replace straightforward explicit any types (langgenius#44228) * refactor(dify-ui): give AlertDialog a header part and design defaults (langgenius#44223) Co-authored-by: Claude <noreply@anthropic.com> * refactor(web): remove unnecessary use prefixes (langgenius#44231) * fix(web): clear Storybook and file preview lint suppressions (langgenius#44233) * refactor(web): replace explicit any in test fixtures and mocks (langgenius#44235) * refactor(dify-ui): compose dialogs from the Design Kit anatomy (langgenius#44221) * refactor(web): exercise real frontend behavior in tests (langgenius#44243) * chore(web): prefer vinext for frontend development (langgenius#44246) * chore(contracts): upgrade @hey-api/openapi-ts to 0.99.0 (langgenius#44247) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * refactor(dify-ui): scroll dialog bodies and give AlertDialog a body (langgenius#44248) Signed-off-by: yyh <yuanyouhuilyz@gmail.com> Co-authored-by: Stephen Zhou <hi@hyoban.cc> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(web): align app and agent export feedback (langgenius#44251) * refactor(web): migrate Notion page preview to Console Query (langgenius#44252) * test(web): include untested sources in coverage (langgenius#44254) * test(web): replace low-value suites with behavioral coverage (langgenius#44260) * fix(api): preserve published triggers on draft sync (langgenius#44068) Co-authored-by: mac <mac@macdeMacBook-Pro.local> * fix: don't stringify list values for union-typed MCP tool parameters (langgenius#44182) Co-authored-by: Stream <Stream_2@qq.com> * fix(cli): observe SSE read failures while consumers process events (langgenius#43943) Co-authored-by: huyengiang101086-spec <270684046+huyengiang101086-spec@users.noreply.github.com> * fix(skills): preserve PPTX presentation slide order (langgenius#43893) Co-authored-by: LimbC-C <329404569+LimbC-C@users.noreply.github.com> * fix(dify): retry failed archive deletion instead of reporting success (langgenius#44061) Co-authored-by: Stream <Stream_2@qq.com> * refactor(api): enable strict typing for tasks unit tests (langgenius#44255) * refactor(api): enable strict typing for easy UI app config manager tests (langgenius#44244) * test(web): consolidate suites around real feature behavior (langgenius#44274) * fix(web): separate app dialog group and control labels (langgenius#44261) Co-authored-by: Stephen Zhou <38493346+hyoban@users.noreply.github.com> * fix(ops): bind tracing service accounts to the app workspace (langgenius#44208) * refactor(api): enable strict typing for libs unit tests (langgenius#44276) * refactor(ui): clarify dialog header close button anatomy (langgenius#44283) * fix(plugins): align provider overlays and background update feedback (langgenius#44284) * fix(web): merge parallel tool results into their own agent thoughts (langgenius#43843) Co-authored-by: Stream <Stream_2@qq.com> * test(web): exercise real workflow canvas controls and note actions (langgenius#44287) * test(web): cover node context menu clicks and drop hooks-store facade mocks (langgenius#44288) * fix(web): label the Notion page search field (langgenius#44290) * ci: enable Ruff B903 (langgenius#44117) Co-authored-by: Codex <codex@openai.com> * refactor(web): migrate Mermaid diagrams to Pele (langgenius#44293) * fix(tests): satisfy Ruff B903 for hit-test fake (langgenius#44299) Co-authored-by: mac <mac@macdeMacBook-Pro.local> * refactor(api): enable strict typing for configs unit tests (langgenius#44294) Co-authored-by: Asuka Minato <i@asukaminato.eu.org> * refactor(api): bring vector store provider sources under type checking (langgenius#44237) Co-authored-by: Asuka Minato <i@asukaminato.eu.org> * ci: enable Ruff PT011 (langgenius#44122) Co-authored-by: Codex <codex@openai.com> * ci: enable Ruff E402 (langgenius#44123) Co-authored-by: Codex <codex@openai.com> Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> * refactor: migrate Dataset to TypeBase (langgenius#40817) Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> Co-authored-by: Codex <codex@openai.com> * ci: enable Ruff F841 (langgenius#44115) Co-authored-by: Codex <codex@openai.com> Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> * fix: honor RTF Unicode fallback lengths in skill attachments (langgenius#43789) Co-authored-by: LimbC-C <329404569+LimbC-C@users.noreply.github.com> * chore(deps): bump patch and minor pnpm catalog dependencies (langgenius#44319) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * chore(deps): drop unused postcss-selector-parser overrides (langgenius#43292) * fix: preserve DOCX paragraph text in skill attachments (langgenius#43718) Co-authored-by: LimbC-C <329404569+LimbC-C@users.noreply.github.com> * feat(cli): let agents build Dify apps with difyctl and an embedded skill (langgenius#43819) * refactor(api): enable strict typing for easy UI dataset and prompt template tests (langgenius#44320) * fix(api): require a Tencent vector database name and type-check the provider (langgenius#44325) * fix(web): open command menu instantly with a lighter backdrop (langgenius#44330) * fix(cli): serialize token file updates (langgenius#44329) Co-authored-by: mac <mac@macdeMacBook-Pro.local> * fix(web): parse destructured and multi-line main signatures in Code node (langgenius#44046) Co-authored-by: Stream <Stream_2@qq.com> * refactor(web): simplify Mermaid preview layout and interactions (langgenius#44335) * fix(web): stabilize Logs loading and conversation dialogs (langgenius#44338) * fix(web): improve app access point accessibility (langgenius#44220) Co-authored-by: lyzno1 <92089059+lyzno1@users.noreply.github.com> * fix(vdb): restore TiDB on Qdrant full-text query filtering (langgenius#44339) * fix(web): remove redundant plugin permission success toast (langgenius#44342) * fix(web): handle default model form submission feedback (langgenius#44345) * fix(web): save the shown timezone on new schedule trigger nodes (langgenius#43532) * test(web): exercise variable assignment with real workflow stores (langgenius#44349) * fix(api): initialize default LLMs during onboarding (langgenius#44350) * fix: replace str(e) with generic messages in error responses (langgenius#43049) Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> * ci: enable Ruff B904 (langgenius#44121) Co-authored-by: Codex <codex@openai.com> Co-authored-by: hjlarry <hjlarry@163.com> * refactor(api): enable strict typing for tool encryption tests (langgenius#44348) * refactor(api): enable strict typing for data source auth tests (langgenius#44347) * refactor(workflow): adopt Graphon 0.8 execution orchestration (langgenius#40277) Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> * test(web): verify canvas updates and debounced variable edits (langgenius#44361) * refactor(api): enable strict typing for file fetcher, common controller and app factory tests (langgenius#44379) * refactor(api): enable strict typing for unstructured extractor tests (langgenius#44380) * fix(vdb): balance multi-keyword Qdrant results (langgenius#44352) Co-authored-by: mac <mac@macdeMacBook-Pro.local> * fix(cli): accept BOM-prefixed JSON input (langgenius#44386) Co-authored-by: mac <mac@macdeMacBook-Pro.local> * chore(deps): bump aiohttp from 3.14.3 to 3.14.4 in /api (langgenius#44387) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Yunlu Wen <yunlu.wen@dify.ai> * refactor(api): enable strict typing for remaining libs unit tests (langgenius#44388) * refactor(api): enable strict typing for storage unit tests (langgenius#44389) * feat: add reusable network access group APIs (langgenius#41025) Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> Co-authored-by: CodingOnStar <hanxujiang@dify.com> Co-authored-by: hjlarry <hjlarry@163.com> Co-authored-by: yyh <92089059+lyzno1@users.noreply.github.com> Co-authored-by: yyh <yuanyouhuilyz@gmail.com> * feat: confirm clearing default models and refresh values on open (langgenius#44354) Co-authored-by: yyh <yuanyouhuilyz@gmail.com> * fix(cli): change local YAML files only through a locked update (langgenius#44375) * chore(i18n): sync translations with en-US (langgenius#44397) Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com> * fix: retain model selector focus after clearing defaults (langgenius#44399) * fix(dataset): batch segment and document cleanup with retries (langgenius#38519) Co-authored-by: hjlarry <hjlarry@163.com> * test(web): exercise workflow actions against real stores (langgenius#44381) * fix(web): upgrade TanStack Hotkeys and isolate search commands (langgenius#44401) * fix(web): parse Python Code node parameters with commas (langgenius#44337) Co-authored-by: mac <mac@macdeMacBook-Pro.local> * refactor(tooling): centralize lint and format maintenance (langgenius#44404) * refactor(web): unify app metadata forms and dialog ownership (langgenius#44405) * refactor(tooling): migrate remaining sources to TypeScript (langgenius#44410) * fix(web): improve app deploy accessibility (langgenius#44378) Co-authored-by: yyh <yuanyouhuilyz@gmail.com> * fix(e2e): seed workspace defaults and refresh post-merge filters (langgenius#44412) * chore: add frontend code owner backups and refresh coverage (langgenius#44413) * fix(agent): finalize run as failed when run_started cannot be appended (langgenius#43959) * refactor(web): use generated oRPC query keys (langgenius#44415) * fix: keep archive deletion loading until completion (langgenius#44203) * refactor(web): remove redundant annotation list success toasts (langgenius#44031) * fix(web): apply log annotations to the displayed branch (langgenius#43238) * feat: optimize access token ui (langgenius#44422) * fix(agent): use Redis 6.0-compatible event replay (langgenius#44420) * test(api): isolate Celery initialization app state (langgenius#44433) * refactor(web): migrate console API helpers to generated contracts (langgenius#44430) * refactor(web): query installation bootstrap status (langgenius#44382) * fix(workflow): track human input forms by execution identity (langgenius#42819) * refactor(api): enable strict typing for rate limit test fixtures (langgenius#44391) * refactor(api): enable strict typing for core helper tests (langgenius#44390) * chore(web): guard handwritten requests with native lint rules (langgenius#44436) * fix(nodejs-client): reject streamed API errors in toText (langgenius#44199) Co-authored-by: Stream <Stream_2@qq.com> * fix(cli): load PowerShell module in rate-limit test (langgenius#44439) * fix(api): write built-in document metadata in a single format (langgenius#44218) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Stream <Stream_2@qq.com> * feat(workflow): execute workflow tools as nested containers (langgenius#42820) Co-authored-by: WH-2099 <wh2099@pm.me> * feat(workflow): expose authorized nested tool traces (langgenius#42821) Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> * feat(workflow): add nested tool trace drilldown (langgenius#42822) * fix(tracing): exclude called tool internals from external exports (langgenius#42823) * chore(web): replace deprecated third-party APIs (langgenius#44466) * fix(plugin): pin daemon dispatches to package identifiers (langgenius#44396) * fix(web): enforce schema depth limits through nested arrays (langgenius#44295) * feat: network access group add rbac check (langgenius#44464) * fix(api): validate builtin tool credentials outside the create lock (langgenius#44371) Co-authored-by: Stream <Stream_2@qq.com> * fix(trigger): stop leaking internal exception text from webhook 500 responses (langgenius#44395) Co-authored-by: Stream <Stream_2@qq.com> * fix(web): preserve Studio list filters across navigation (langgenius#44429) Co-authored-by: Stream <Stream_2@qq.com> * test(web): wait for goto-anything focus (langgenius#44454) Co-authored-by: mac <mac@macdeMacBook-Pro.local> * test(web): exercise workflow configuration and controls with real stores (langgenius#44471) * test(web): exercise workflow controls and access points through real owners (langgenius#44423) * fix(agent): attribute nested tool activity to its source (langgenius#42824) * fix(cli): respect cancellation during device authorization retries (langgenius#44315) Co-authored-by: huyengiang101086-spec <270684046+huyengiang101086-spec@users.noreply.github.com> * feat(cli): send a folder as one part per file (langgenius#44356) Co-authored-by: yunlu.wen <yunlu.wen@dify.ai> * fix(web): handle autofilled Web App login credentials (langgenius#44474) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(api): handle non-object JSON auth error bodies (langgenius#44470) * refactor: migrate agent models to TypeBase (langgenius#40816) Co-authored-by: Codex <codex@openai.com> * refactor(api): type-check vector store provider unit tests (langgenius#44458) * refactor(api): enable strict typing for utils unit tests (langgenius#44331) * test(web): replace node action mocks with real canvas behavior (langgenius#44495) * fix(web): enforce focus style ownership and simplify invite recipients (langgenius#44504) * fix: improve customization settings accessibility (langgenius#44492) * fix(web): label workspace default model selectors (langgenius#44500) * refactor(ui): split toast stories and align app toaster naming (langgenius#44510) * chore(weaviate): bump bundled Weaviate to 1.39.13 (CVE-2026-111943) (langgenius#44508) * chore: bump Node.js runtime to 24.22.1 (langgenius#44511) * feat(tracing): export Agent app and Workflow Agent execution trees (langgenius#44144) Co-authored-by: yyh <yuanyouhuilyz@gmail.com> * feat(tracing): configure Agent tracing and link workflow runs to traces (langgenius#44186) Co-authored-by: Yansong Zhang <916125788@qq.com> * fix(web): make document metadata panel scrollable (langgenius#43621) * test: split Build exit scenarios to reduce timeout flakiness (langgenius#44519) * chore(web): improve Billing settings accessibility (langgenius#44487) Co-authored-by: yyh <92089059+lyzno1@users.noreply.github.com> * fix(deps): upgrade certifi and pillow (langgenius#44524) * refactor(api): detach console app trigger management (langgenius#44457) * refactor(web): highlight markdown code blocks with @pierre/highlights (langgenius#44522) * fix(api): enforce cloud app quotas on DSL imports (langgenius#44525) * perf(api): skip saved prompts when loading chat history (langgenius#44521) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * chore: improve Members settings accessibility (langgenius#44484) * fix(web): preserve inline agent layout and clarify configure ownership (langgenius#44534) Co-authored-by: hjlarry <hjlarry@163.com> * fix: improve archived logs accessibility (langgenius#44535) Co-authored-by: yyh <yuanyouhuilyz@gmail.com> * fix: improve Preferences accessibility (langgenius#44539) * fix: improve IP Policies accessibility (langgenius#44548) * fix: preserve knowledge sidebar when adding files (langgenius#44552) * fix: improve sort control accessibility and type safety (langgenius#44564) * chore: type-check with tsrs (langgenius#44562) * fix(api): stop leaking Redis result connections from fire-and-forget groups (langgenius#44551) Co-authored-by: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com> * fix(api): upgrade NLTK to 3.10.4 (langgenius#44581) * feat(agent): edit config prompts through the sandbox CLI (langgenius#44561) * chore: port Document to TypeBase (langgenius#36084) Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> Co-authored-by: Codex <codex@openai.com> * feat: KnowledgeFS and New Knowledge (langgenius#44165) Co-authored-by: Jyong <76649700+JohnJyong@users.noreply.github.com> Co-authored-by: hjlarry <hjlarry@163.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> Co-authored-by: zhaohao1004 <zhaohao1004@gmail.com> Co-authored-by: yyh <yuanyouhuilyz@gmail.com> Co-authored-by: FFXN <lizy@dify.ai> * refactor: migrate CustomizedSnippet to TypeBase (langgenius#40818) Co-authored-by: Codex <codex@openai.com> * fix(php-sdk): preserve custom API base URL paths (langgenius#44569) * fix(api): combine UTF-16 surrogate pairs in RTF extraction (langgenius#44565) Co-authored-by: jayachandra2003 <jayachandravennam.jc@email.com> * chore(i18n): sync translations with en-US (langgenius#44566) Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com> * refactor(ui): align floating positioning with Base UI (langgenius#44588) * chore(i18n): sync translations with en-US (langgenius#44595) Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com> * chore(deps): bump certifi from 2026.4.22 to 2026.10.19 in /dify-agent (langgenius#44462) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * fix(web): avoid redundant document enable success toast (langgenius#44594) * test(web): replace workflow owner doubles with real canvas behavior (langgenius#44590) * chore(release): prepare version 1.18.0 (langgenius#44546) * Exclude generated Vercel deployment cache from source checks --------- Signed-off-by: dependabot[bot] <support@github.com> Signed-off-by: yyh <yuanyouhuilyz@gmail.com> Co-authored-by: Yunlu Wen <yunlu.wen@dify.ai> Co-authored-by: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-authored-by: gongfpp <1360187968@qq.com> Co-authored-by: yyh <92089059+lyzno1@users.noreply.github.com> Co-authored-by: Asuka Minato <i@asukaminato.eu.org> Co-authored-by: Codex <codex@openai.com> Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> Co-authored-by: D41910 <158550716+D41910@users.noreply.github.com> Co-authored-by: D41910 <d41910@users.noreply.github.com> Co-authored-by: leilei3167 <imleilei123@gmail.com> Co-authored-by: 非法操作 <hjlarry@163.com> Co-authored-by: Shreyansh Jain <shreyanshjain646@gmail.com> Co-authored-by: crazywoola <427733928@qq.com> Co-authored-by: 呆萌闷油瓶 <253605712@qq.com> Co-authored-by: Power <26699525@qq.com> Co-authored-by: Eddy ZHANG <eddy.zhang24@gmail.com> Co-authored-by: Lokesh Chauhan <lokesh0186@gmail.com> Co-authored-by: Xiyuan Chen <52963600+GareArc@users.noreply.github.com> Co-authored-by: 盐粒 Yanli <yanli@dify.ai> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Azusa010 <m3171470760@gmail.com> Co-authored-by: mika <spacexstarship01@outlook.com> Co-authored-by: mac <mac@macdeMacBook-Pro.local> Co-authored-by: Yueliup <127648758+Yueliup@users.noreply.github.com> Co-authored-by: Stephen Zhou <hi@hyoban.cc> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Matt Van Horn <mvanhorn@users.noreply.github.com> Co-authored-by: Matt Van Horn <455140+mvanhorn@users.noreply.github.com> Co-authored-by: Stream <Stream_2@qq.com> Co-authored-by: 林玮 (Jade Lin) <linw1995@icloud.com> Co-authored-by: xjh <87483213+xiajiahang@users.noreply.github.com> Co-authored-by: Temitope Kadri <147322025+TemitopeKadri@users.noreply.github.com> Co-authored-by: lorenzozane <w2898683706@gmail.com> Co-authored-by: Yann Roberto <165009858+shoyann@users.noreply.github.com> Co-authored-by: David Allada <davidanilallada@gmail.com> Co-authored-by: huyengiang101086-spec <huyengiang101086@gmail.com> Co-authored-by: huyengiang101086-spec <270684046+huyengiang101086-spec@users.noreply.github.com> Co-authored-by: LimbC-C <limbcc2333@gmail.com> Co-authored-by: LimbC-C <329404569+LimbC-C@users.noreply.github.com> Co-authored-by: CRYPTONIKAV <29835619+CRYPTONIKAV@users.noreply.github.com> Co-authored-by: Stephen Zhou <38493346+hyoban@users.noreply.github.com> Co-authored-by: Liu Ziming <liuziming.lzm@alibaba-inc.com> Co-authored-by: Metehan Biçer <metehanbicer006@gmail.com> Co-authored-by: mechmaster20 <srujan.gowni@iitgn.ac.in> Co-authored-by: Denis Ermakov <ide404@gmail.com> Co-authored-by: Wu Tianwei <30284043+WTW0313@users.noreply.github.com> Co-authored-by: Juhyuk choi <246447183+JHC56@users.noreply.github.com> Co-authored-by: -LAN- <laipz8200@outlook.com> Co-authored-by: zyssyz123 <916125788@qq.com> Co-authored-by: CodingOnStar <hanxujiang@dify.com> Co-authored-by: yyh <yuanyouhuilyz@gmail.com> Co-authored-by: Joel <iamjoel007@gmail.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com> Co-authored-by: Alexey Shabalin <a.shabalin@gmail.com> Co-authored-by: Codada <108800975+Redestiny@users.noreply.github.com> Co-authored-by: wangxiaolei <fatelei@gmail.com> Co-authored-by: 青阳寻雪 <142769065+lulalalual@users.noreply.github.com> Co-authored-by: Tianyu Cai <cai18633758993@gmail.com> Co-authored-by: WH-2099 <wh2099@pm.me> Co-authored-by: Miyar <14232275+gakugaku@users.noreply.github.com> Co-authored-by: xhdnoah <40939515+xhdnoah@users.noreply.github.com> Co-authored-by: Duda Nogueira <dudanogueira@gmail.com> Co-authored-by: zhsama <torvalds@linux.do> Co-authored-by: Mesrop Harutyunyan <104313591+mesrop2008@users.noreply.github.com> Co-authored-by: Takuya <83127305+Takuya-ops@users.noreply.github.com> Co-authored-by: Jyong <76649700+JohnJyong@users.noreply.github.com> Co-authored-by: zhaohao1004 <zhaohao1004@gmail.com> Co-authored-by: FFXN <lizy@dify.ai> Co-authored-by: Winoren <158550716+Winoren@users.noreply.github.com> Co-authored-by: Jaya Chandra Vennam <149901816+jayachandra2003@users.noreply.github.com> Co-authored-by: jayachandra2003 <jayachandravennam.jc@email.com> Co-authored-by: ZengLiangliang <zll21377105@126.com> Co-authored-by: Alec Whitters <alecwhitters@Alecs-MacBook-Pro-26.local>
Fixes #44059
What I changed
api/tasks/workflow_run_archive_deletion_tasks.py: the entry point now inspects the deleter result and raisesArchiveStorageErroronFAILED, so the declaredautoretry_for/retry_backoff/max_retriespolicy engages.COMPLETEDstill returns normally; lock contention still raises directly as before.api/tests/unit_tests/services/retention/workflow_run/test_archive_deletion.py: two eager-mode tests (FAILED → task failed +FAILEDpersisted; COMPLETED → success and bundle removed).Verification
SUCCESSwithNone, zero retries — the issue's probe), pass with it.ruff check+ruff formatclean.Honest limits