From 92ec1ac27ab31a75bfd741870982a7a9914de4b0 Mon Sep 17 00:00:00 2001 From: Tonlo <123lzs123@gmail.com> Date: Wed, 15 Oct 2025 09:40:33 +0800 Subject: [PATCH 1/6] Fix/remove logo in withoutbrand template (#26882) --- .../without-brand/invite_member_mail_template_en-US.html | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/api/templates/without-brand/invite_member_mail_template_en-US.html b/api/templates/without-brand/invite_member_mail_template_en-US.html index fc7f3679ba..b78a6a0760 100644 --- a/api/templates/without-brand/invite_member_mail_template_en-US.html +++ b/api/templates/without-brand/invite_member_mail_template_en-US.html @@ -75,10 +75,7 @@
-
- - Dify Logo -
+

Dear {{ to }},

{{ inviter_name }} is pleased to invite you to join our workspace on {{application_title}}, a platform specifically designed for LLM application development. On {{application_title}}, you can explore, create, and collaborate to build and operate AI applications.

From 49df9ceaf369f3393178f984855705710997e38d Mon Sep 17 00:00:00 2001 From: NeatGuyCoding <15627489+NeatGuyCoding@users.noreply.github.com> Date: Wed, 15 Oct 2025 09:41:12 +0800 Subject: [PATCH 2/6] minor fix: test cases for alibabacloud mysql and chinese translations (#26902) Signed-off-by: NeatGuyCoding <15627489+NeatGuyCoding@users.noreply.github.com> Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- .../test_alibabacloud_mysql_vector.py | 37 ++++++++++++------- web/i18n/zh-Hans/common.ts | 2 +- 2 files changed, 25 insertions(+), 14 deletions(-) diff --git a/api/tests/unit_tests/core/rag/datasource/vdb/alibabacloud_mysql/test_alibabacloud_mysql_vector.py b/api/tests/unit_tests/core/rag/datasource/vdb/alibabacloud_mysql/test_alibabacloud_mysql_vector.py index 44fe272c8c..8ccd739e64 100644 --- a/api/tests/unit_tests/core/rag/datasource/vdb/alibabacloud_mysql/test_alibabacloud_mysql_vector.py +++ b/api/tests/unit_tests/core/rag/datasource/vdb/alibabacloud_mysql/test_alibabacloud_mysql_vector.py @@ -110,19 +110,6 @@ class TestAlibabaCloudMySQLVector(unittest.TestCase): assert mock_cursor.execute.call_count >= 3 # CREATE TABLE + 2 indexes mock_redis.set.assert_called_once() - def test_config_validation(self): - """Test configuration validation.""" - # Test missing required fields - with pytest.raises(ValueError): - AlibabaCloudMySQLVectorConfig( - host="", # Empty host should raise error - port=3306, - user="test", - password="test", - database="test", - max_connection=5, - ) - @patch( "core.rag.datasource.vdb.alibabacloud_mysql.alibabacloud_mysql_vector.mysql.connector.pooling.MySQLConnectionPool" ) @@ -718,5 +705,29 @@ class TestAlibabaCloudMySQLVector(unittest.TestCase): mock_cursor.fetchone.side_effect = [{"VERSION()": "8.0.36"}, {"vector_support": True}] +@pytest.mark.parametrize( + "invalid_config_override", + [ + {"host": ""}, # Test empty host + {"port": 0}, # Test invalid port + {"max_connection": 0}, # Test invalid max_connection + ], +) +def test_config_validation_parametrized(invalid_config_override): + """Test configuration validation for various invalid inputs using parametrize.""" + config = { + "host": "localhost", + "port": 3306, + "user": "test", + "password": "test", + "database": "test", + "max_connection": 5, + } + config.update(invalid_config_override) + + with pytest.raises(ValueError): + AlibabaCloudMySQLVectorConfig(**config) + + if __name__ == "__main__": unittest.main() diff --git a/web/i18n/zh-Hans/common.ts b/web/i18n/zh-Hans/common.ts index e73ac4cc6b..98ffb49782 100644 --- a/web/i18n/zh-Hans/common.ts +++ b/web/i18n/zh-Hans/common.ts @@ -20,7 +20,7 @@ const translation = { save: '保存', yes: '是', no: '否', - deleteConfirmTitle: '删除?', + deleteConfirmTitle: '删除?', confirmAction: '请确认您的操作。', saveAndEnable: '保存并启用', edit: '编辑', From 556b631c5414161a5639359ff99119a6e1eb4734 Mon Sep 17 00:00:00 2001 From: -LAN- Date: Wed, 15 Oct 2025 09:42:22 +0800 Subject: [PATCH 3/6] Normalize null metadata handling in tool entities (#26890) --- api/core/tools/entities/tool_entities.py | 10 +++++++ .../core/tools/test_tool_entities.py | 29 +++++++++++++++++++ 2 files changed, 39 insertions(+) create mode 100644 api/tests/unit_tests/core/tools/test_tool_entities.py diff --git a/api/core/tools/entities/tool_entities.py b/api/core/tools/entities/tool_entities.py index 62e3aa8b5d..15a4f0aafd 100644 --- a/api/core/tools/entities/tool_entities.py +++ b/api/core/tools/entities/tool_entities.py @@ -189,6 +189,11 @@ class ToolInvokeMessage(BaseModel): data: Mapping[str, Any] = Field(..., description="Detailed log data") metadata: Mapping[str, Any] = Field(default_factory=dict, description="The metadata of the log") + @field_validator("metadata", mode="before") + @classmethod + def _normalize_metadata(cls, value: Mapping[str, Any] | None) -> Mapping[str, Any]: + return value or {} + class RetrieverResourceMessage(BaseModel): retriever_resources: list[RetrievalSourceMetadata] = Field(..., description="retriever resources") context: str = Field(..., description="context") @@ -376,6 +381,11 @@ class ToolEntity(BaseModel): def set_parameters(cls, v, validation_info: ValidationInfo) -> list[ToolParameter]: return v or [] + @field_validator("output_schema", mode="before") + @classmethod + def _normalize_output_schema(cls, value: Mapping[str, object] | None) -> Mapping[str, object]: + return value or {} + class OAuthSchema(BaseModel): client_schema: list[ProviderConfig] = Field( diff --git a/api/tests/unit_tests/core/tools/test_tool_entities.py b/api/tests/unit_tests/core/tools/test_tool_entities.py new file mode 100644 index 0000000000..a5b7e8a9a3 --- /dev/null +++ b/api/tests/unit_tests/core/tools/test_tool_entities.py @@ -0,0 +1,29 @@ +from core.tools.entities.common_entities import I18nObject +from core.tools.entities.tool_entities import ToolEntity, ToolIdentity, ToolInvokeMessage + + +def _make_identity() -> ToolIdentity: + return ToolIdentity( + author="author", + name="tool", + label=I18nObject(en_US="Label"), + provider="builtin", + ) + + +def test_log_message_metadata_none_defaults_to_empty_dict(): + log_message = ToolInvokeMessage.LogMessage( + id="log-1", + label="Log entry", + status=ToolInvokeMessage.LogMessage.LogStatus.START, + data={}, + metadata=None, + ) + + assert log_message.metadata == {} + + +def test_tool_entity_output_schema_none_defaults_to_empty_dict(): + entity = ToolEntity(identity=_make_identity(), output_schema=None) + + assert entity.output_schema == {} From 1b537f904a2fc8fa9e07fe490ea7722c8064fbef Mon Sep 17 00:00:00 2001 From: Yusuke Yamada Date: Wed, 15 Oct 2025 10:43:10 +0900 Subject: [PATCH 4/6] fix: replace CodeGroup's POST /meta with GET /site (#26886) --- web/app/components/develop/template/template.en.mdx | 4 ++-- web/app/components/develop/template/template.ja.mdx | 4 ++-- web/app/components/develop/template/template.zh.mdx | 4 ++-- web/app/components/develop/template/template_chat.en.mdx | 4 ++-- web/app/components/develop/template/template_chat.ja.mdx | 4 ++-- web/app/components/develop/template/template_chat.zh.mdx | 4 ++-- web/app/components/develop/template/template_workflow.en.mdx | 4 ++-- web/app/components/develop/template/template_workflow.ja.mdx | 4 ++-- web/app/components/develop/template/template_workflow.zh.mdx | 4 ++-- 9 files changed, 18 insertions(+), 18 deletions(-) diff --git a/web/app/components/develop/template/template.en.mdx b/web/app/components/develop/template/template.en.mdx index 38208bb7e0..8cb5f07ae8 100755 --- a/web/app/components/develop/template/template.en.mdx +++ b/web/app/components/develop/template/template.en.mdx @@ -767,8 +767,8 @@ The text generation application offers non-session support and is ideal for tran diff --git a/web/app/components/develop/template/template.ja.mdx b/web/app/components/develop/template/template.ja.mdx index 892197bf56..9df4421865 100755 --- a/web/app/components/develop/template/template.ja.mdx +++ b/web/app/components/develop/template/template.ja.mdx @@ -764,8 +764,8 @@ import { Row, Col, Properties, Property, Heading, SubProperty, Paragraph } from diff --git a/web/app/components/develop/template/template.zh.mdx b/web/app/components/develop/template/template.zh.mdx index 8d85e9685f..8436b51ce4 100755 --- a/web/app/components/develop/template/template.zh.mdx +++ b/web/app/components/develop/template/template.zh.mdx @@ -728,8 +728,8 @@ import { Row, Col, Properties, Property, Heading, SubProperty } from '../md.tsx' diff --git a/web/app/components/develop/template/template_chat.en.mdx b/web/app/components/develop/template/template_chat.en.mdx index 3c664a3d3f..df31177127 100644 --- a/web/app/components/develop/template/template_chat.en.mdx +++ b/web/app/components/develop/template/template_chat.en.mdx @@ -1599,8 +1599,8 @@ Chat applications support session persistence, allowing previous chat history to diff --git a/web/app/components/develop/template/template_chat.ja.mdx b/web/app/components/develop/template/template_chat.ja.mdx index 69f48d0216..eafa653cad 100644 --- a/web/app/components/develop/template/template_chat.ja.mdx +++ b/web/app/components/develop/template/template_chat.ja.mdx @@ -1586,8 +1586,8 @@ import { Row, Col, Properties, Property, Heading, SubProperty, Paragraph } from diff --git a/web/app/components/develop/template/template_chat.zh.mdx b/web/app/components/develop/template/template_chat.zh.mdx index 2273290d03..fc3fd6d0d2 100644 --- a/web/app/components/develop/template/template_chat.zh.mdx +++ b/web/app/components/develop/template/template_chat.zh.mdx @@ -1579,8 +1579,8 @@ import { Row, Col, Properties, Property, Heading, SubProperty } from '../md.tsx' diff --git a/web/app/components/develop/template/template_workflow.en.mdx b/web/app/components/develop/template/template_workflow.en.mdx index f286773685..a820516e88 100644 --- a/web/app/components/develop/template/template_workflow.en.mdx +++ b/web/app/components/develop/template/template_workflow.en.mdx @@ -1025,8 +1025,8 @@ Workflow applications offers non-session support and is ideal for translation, a diff --git a/web/app/components/develop/template/template_workflow.ja.mdx b/web/app/components/develop/template/template_workflow.ja.mdx index 3b1a8e1c36..ff809b8a9c 100644 --- a/web/app/components/develop/template/template_workflow.ja.mdx +++ b/web/app/components/develop/template/template_workflow.ja.mdx @@ -1021,8 +1021,8 @@ import { Row, Col, Properties, Property, Heading, SubProperty, Paragraph } from diff --git a/web/app/components/develop/template/template_workflow.zh.mdx b/web/app/components/develop/template/template_workflow.zh.mdx index 8b47e88293..0e2b19df83 100644 --- a/web/app/components/develop/template/template_workflow.zh.mdx +++ b/web/app/components/develop/template/template_workflow.zh.mdx @@ -1012,8 +1012,8 @@ Workflow 应用无会话支持,适合用于翻译/文章写作/总结 AI 等 From 513911930711bb66521a85b4ef89e50069e94eca Mon Sep 17 00:00:00 2001 From: lyzno1 <92089059+lyzno1@users.noreply.github.com> Date: Wed, 15 Oct 2025 09:55:05 +0800 Subject: [PATCH 5/6] chore: bump pnpm version (#26905) Signed-off-by: lyzno1 --- web/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/package.json b/web/package.json index 6ce808291e..562938d5b3 100644 --- a/web/package.json +++ b/web/package.json @@ -2,7 +2,7 @@ "name": "dify-web", "version": "1.9.1", "private": true, - "packageManager": "pnpm@10.18.2", + "packageManager": "pnpm@10.18.3+sha512.bbd16e6d7286fd7e01f6b3c0b3c932cda2965c06a908328f74663f10a9aea51f1129eea615134bf992831b009eabe167ecb7008b597f40ff9bc75946aadfb08d", "engines": { "node": ">=v22.11.0" }, From f906e70f6b80457b0d41e18381b35cdfff5932e5 Mon Sep 17 00:00:00 2001 From: Novice Date: Wed, 15 Oct 2025 09:55:39 +0800 Subject: [PATCH 6/6] chore: remove redundant dependencies (#26907) --- api/pyproject.toml | 1 - api/uv.lock | 4 +--- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/api/pyproject.toml b/api/pyproject.toml index 1fb5747edc..62af88a1b2 100644 --- a/api/pyproject.toml +++ b/api/pyproject.toml @@ -86,7 +86,6 @@ dependencies = [ "sendgrid~=6.12.3", "flask-restx~=1.3.0", "packaging~=23.2", - "weaviate-client==4.17.0", ] # Before adding new dependency, consider place it in # alphabet order (a-z) and suitable group. diff --git a/api/uv.lock b/api/uv.lock index 7914cd6b65..96aee8a97b 100644 --- a/api/uv.lock +++ b/api/uv.lock @@ -1,5 +1,5 @@ version = 1 -revision = 3 +revision = 2 requires-python = ">=3.11, <3.13" resolution-markers = [ "python_full_version >= '3.12.4' and platform_python_implementation != 'PyPy' and sys_platform == 'linux'", @@ -1372,7 +1372,6 @@ dependencies = [ { name = "transformers" }, { name = "unstructured", extra = ["docx", "epub", "md", "ppt", "pptx"] }, { name = "weave" }, - { name = "weaviate-client" }, { name = "webvtt-py" }, { name = "yarl" }, ] @@ -1562,7 +1561,6 @@ requires-dist = [ { name = "transformers", specifier = "~=4.56.1" }, { name = "unstructured", extras = ["docx", "epub", "md", "ppt", "pptx"], specifier = "~=0.16.1" }, { name = "weave", specifier = "~=0.51.0" }, - { name = "weaviate-client", specifier = "==4.17.0" }, { name = "webvtt-py", specifier = "~=0.5.1" }, { name = "yarl", specifier = "~=1.18.3" }, ]