🚀 v1.10.1新功能
基础设施与 DevOps适配
MySQL(PostgreSQL / MySQL / OceanBase 现已全面支持)
-
新增 DB_TYPE 配置项支持
-
MySQL JSON / LONGTEXT / UUID 类型及索引差异
-
更新 Alembic 迁移脚本以实现多数据库兼容
-
引入跨数据库 SQL 辅助工具,用于统计和日期处理使用 SQLAlchemy JSON 运算符
-
重写数据集元数据过滤器
-
新增 MySQL 迁移测试的 CI 工作流
-
这是 dify 历史上一次重要的后端升级 —— 多数据库支持现已成为一等公民。
性能与工作流编辑器优化
对工作流编辑器进行了重大性能升级,消除了昂贵的逐节点验证扫描,减少不必要的重渲染,响应速度从约 50 个节点时的卡顿提升至近 200 个节点仍保持流畅。
流水线与工作流引擎
引入一系列工作流编辑器改进,包括 UI 优化、稳定性修复,以及变量检查、媒体组件和节点交互等方面的体验提升。
🛠 修复与改进
运行时稳定性与工作流执行
-
修复高级聊天工作流可能无法停止的问题,避免进程卡死或残留。
-
修复草稿模式下运行“任意节点”触发的 500 错误,提升工作流调试可靠性。
-
修正循环/迭代评估期间的令牌计数过高问题(与计费令牌无关)。
-
修复工作流作为工具返回空 files 字段的问题,确保工具集成能获取正确的文件元数据。
-
解决 FileService 中的会话作用域错误,该错误可能导致文件删除行为不一致。
知识库
-
修复使用 weightedScore 检索选项时的 500 错误,恢复加权排序场景的稳定性。
开发者体验与 SDK
-
修复 Node.js SDK 路由和分块上传处理,确保通过 JavaScript 集成实现可靠的文件和数据提交。
修复 OpenAPI/Swagger 无法加载的问题,恢复开发者文档访问。
Web UI 与用户体验
-
修正 ExternalDataToolModal 的暗黑模式渲染,确保跨主题外观一致。
-
修复市场搜索触发行为和滚动位置,提升发现与导航体验。
-
修复打开对话流日志详情时的错误导航,提供更可预测的 UI 行为。
-
修复 README 展示面板的布局与渲染问题,确保内容呈现更整洁。
-
减少 useNodes 钩子中不必要的重渲染,提升前端整体性能。
插件与集成
-
更新插件验证逻辑以使用唯一标识符,提升插件安装和更新的正确性。
系统健壮性
-
防止 TriggerProviderIdentity 中出现可空标签,避免潜在运行时错误。
-
改进无效 Webhook 请求的错误信息,提供更清晰的诊断。
反馈与日志
-
修复点赞/点踩反馈未出现在日志中的问题,确保终端用户评分信号正确可视化。
国际化(i18n)
-
标准化触发器和计费事件的术语,提升翻译一致性。
-
修复执行相关翻译中的多个问题,更正缺失或格式错误的条目。
-
移除错误的“running”翻译条目。
-
重构国际化脚本并移除过时翻译键。
-
补充 UI 中缺失的翻译,提升语言覆盖率。
维护与开发者工具
-
添加前端自动化测试规则以增强基线可靠性。
-
升级系统库和 Python 依赖以维护安全性和兼容性。
-
更新 start-web 开发脚本以使用 pnpm dev,简化贡献者工作流。
升级指南
Docker Compose部署
-
重要提示
升级前的必要操作
从 1.10.1 版本开始,Dify API 镜像为提升安全性将以非 root 用户(UID 1001)运行。
若使用本地文件系统存储(社区部署默认配置),必须更新主机上挂载存储目录的所有权,否则容器将无法读写文件。
-
受影响的服务:
– api
– worker
-
受影响的主机目录:
./volumes/app/storage → 挂载至 /app/api/storage
-
重启新版本前必须执行的操作:
-
# 停止现有容器
docker compose down
# 更新主机上的目录所有权
sudo chown -R 1001:1001 ./volumes/app/storage
# 正常重启
docker compose up -d
-
完成此一次性迁移后,Dify 将在新的非 root 用户模型下正常运行。
-
1. 备份自定义的docker-compose YAML文件(可选)
cd docker
cp docker-compose.yaml docker-compose.yaml.$(date +%s).bak
-
2. 从main分支获取最新代码
git checkout 1.9.0
git pull origin 1.9.0
-
3. 停止服务(请在docker目录中执行)
docker compose down
-
4. 备份数据
tar -cvf volumes-$(date +%s).tgz volumes
-
5. 升级服务
docker compose up -d
源代码部署
-
1. 停止API服务器、Worker和Web前端服务器。 -
2. 从发布分支获取最新代码:
git checkout 1.10.0-rc1
-
3. 更新Python依赖:
cd api
uv sync
-
4. 运行迁移脚本:
uv run flask db upgrade
-
5. 重新运行API服务器、Worker和Web前端服务器。
变更内容
-
– 升级weave版本以修复配置失败问题
– 修复知识库流水线无法发布的问题
– 新增图标库示例
– 修复卡片视图渲染
– 为论坛添加图标
– 修复点击日志页面的日志面板导致整页崩溃
– 优化交互节点UI
– 修复BasePanel组件中currentTriggerPlugin检查
– 移除app – icon组件中未使用的style.module.css
– 修复已发布的Webhook无法接收输入
– 添加cnt脚本及示例
– 添加vdb – test工作流运行过滤器
– 补充站点与后端跨域时的环境配置文档
– 修复文档删除后数据集元数据计数错误
– 翻译国际化文件并更新类型定义
– 重构暂停/中止后的事件处理并优化API清晰度
– 修复TiFlash启动问题
– 回滚“添加vdb – test工作流运行过滤器”
– 修复工作流应用生成器中用户输入预处理
– 适配MySQL作为元数据库
– 实现触发器计费
– 重构Python SDK
– 修复应用页面搜索按钮垂直对齐
– 补充提供者配置模态框中分隔线的垂直类型
– 实现问题分类器节点的展开/折叠
– 为MCP提供者实现符合RFC的OAuth发现及动态范围选择
– 优化邮箱验证码登录体验
– 将TenantApi端点从GET改为POST
– 翻译国际化文件并更新类型定义
– 优化工作流画布平移与滚动行为
– 为文档列表和API添加显示状态过滤
– 修复复选框无法选中及优化文档列表/应用标注样式
– 移除冗余的重复导入
– 翻译国际化文件并更新类型定义
– 为后端单元测试添加make test快捷命令
– 移除冗余的数据集卡片组件及相关代码
– 修复Weave仪表板中工作流步骤时长显示
– 修复对话流与工作流间导入DSL时的节点兼容性验证
– 解决浏览器中CSRF令牌Cookie名称不匹配问题
– 修复文档服务显示状态测试断言中的表别名
– 延迟初始化音频播放器以修复无TTS消息时切换音频源的bug
– 为控制台认证控制器添加全面单元测试
– 移除StatusPanel内部的useStore以修复上下文问题
– 移除已弃用的UnsafeUnwrappedHeaders使用
– 为EditorConfig缩进规则添加.ts和.mjs文件
– 为触发器节点的Redis缓存键添加app_id确保唯一性
– 更新调试触发器的celery命令
– 集成合作伙伴栈
– 补充日语触发器事件翻译中缺失的助词
– 在HITL发布前移除TimeSliceLayer
– 修正监控并修复触发器计费速率限制
– 将API速率限制和触发器事件的 – 1视为无限制
– 修正触发器事件限制模态框措辞
– 调整EditMetadataBatchModal溢出样式以优化布局
– 支持Redis 7.0共享发布订阅
– 允许API访问升级至1.10.0前创建的对话
– 翻译国际化文件并更新类型定义
– 添加两个测试示例
– 为WebApp JWT认证添加session_id验证
– 禁用粘性滚动
– 为账户模型添加测试脚本
– 修复if – else条件比较中的数值类型转换问题
– 实现文档元数据的部分更新,支持新值与现有值合并
– 增强ORM类型定义
– 使用装饰器
– 清理if – else节点中的遗留条件数据以防止误判
– 增强ORM类型定义
– 修复SegmentType.is_valid()对GROUP类型抛出断言错误
– 修复代码编辑器抛出大量错误
– 支持节点在单步运行中引用多个结构化输出变量
– 完成数据集模型测试脚本
– 增强ORM类型定义
– 为已发布应用UI添加停止运行按钮
– 为数据集服务创建方法添加全面单元测试
– 集成MLflow追踪
– 翻译国际化文件并更新类型定义
– 翻译国际化文件并更新类型定义
– 调整命名空间api → console_ns
– 为可选工作流输入变量使用默认值
– 为数据集服务检索/列表方法添加全面单元测试
– 升级clickhouse – connect依赖至0.10.0
– 修复德语翻译
– 为middleware.env.example添加COMPOSE_PROFILES参数
– 完成应用模型测试脚本
– 增强ORM类型定义
– 不再使用db.session.get
– 修复插件自动更新显示问题
– 为所有公共页面添加有意义的
标题
– 移除错误的“running”翻译
– 优化工作流性能
– 修复API定义加载失败
– 修复Node.js SDK路由和分块处理
– 标准化计费翻译中触发器事件的术语
– 增强ORM类型定义
– 更新插件验证逻辑以使用唯一标识符
– 为工作流模型添加测试
– 修复执行相关翻译
– 防止循环/迭代导致的令牌计数过高
– 重构国际化脚本并移除多余键
– 补充缺失的翻译
– 修复对话流日志详情始终导航至第一页
– 更新ExternalDataToolModal以支持暗黑模式语义令牌
– 修复市场搜索触发和插件列表滚动
– 修复草稿模式运行任意节点触发500错误
– 避免TriggerProviderIdentity中出现可空标签
– 改进Web工作流体验
– Docker镜像默认使用非root用户
– 使用Flask – RESTX生成完整API文档
– 支持Weaviate分词配置
– 确保高级聊天工作流正确停止
– 修复README面板显示和样式问题
– 更新市场描述和图标
– 为SegmentService添加全面单元测试
– 为工具模型添加测试脚本
– 修复点赞/点踩反馈未显示在日志中
– 增强无效Webhook请求的提示信息
– 修复工作流作为工具时files字段返回空
– 添加前端自动化测试规则
– 升级系统库和Python依赖
– 修复FileService.delete_file中的会话作用域bug
– 在dev/start – web中使用pnpm dev
– 修复知识库选择weightedScore检索时的500错误
– 减少useNodes重渲染次数


