覆盖时间:2026-02-24 → 2026-03-03
数据来源:GitHub Issues / PRs / Releases · HN · Reddit r/LocalLLaMA
🚀 发版动态
| 版本 | 状态 | 时间 | 摘要 |
|---|---|---|---|
| v1.14.0-rc1 | Pre-release | ~2週前发布 | Agent × Skills、Skill Editor、Sandbox、协作 Beta — 本周无新版本 |
| v1.13.0 | ✅ 最新稳定版 | 约3週前 | Human-in-the-Loop + Celery 架构,当前推荐自部署版本 |
⚠️ 本周要点:1.14.0 稳定版仍未发布。RC1 期间暴露出 CORS bug(#32816),正式版发布节奏可能进一步推迟。
🐛 Bug 报告(本周新增)
| # | 标题 | 严重程度 | 状态 |
|---|---|---|---|
| #32816 | 1.14.0-rc1:Skill 创建 CORS 到 api:5001 失败,产生幽灵记录后编辑时 500 FileNotFoundError | 🔴 高 | Open (RC1 专属) |
| #32870 | Tongyi 插件 v0.1.30 空闲时 plugin_daemon CPU 占用 65%+ | 🟠 中 | Open |
| #32856 | Chatflow API 中 MessageEnd 事件丢失 | 🟠 中 | Open |
| #32850 | Workflow/Chatflow 恢复时 workflow_runs.started_at 字段被覆盖 | 🟠 中 | Open(PR #32851 修复中) |
| #32839 | v1.13.0:Chatflow 注释回复在输出响应后卡在 loading 状态 | 🟡 低 | Open |
| #32837 | 通过 API 上传文档后 /datasets 页面崩溃 | 🟡 低 | Open |
| #32864 | 输入包含图片时知识库检索结果为空 | 🟠 中 | Open |
| #32867 | Notion MCP 工具调用失败 | 🟡 低 | Open |
🔨 重构 / 架构进展
🌊 dify_graph 大迁移(本周主线)
背景:什么是 dify_graph?
dify_graph 是 Dify 后端正在构建的新一代图执行引擎包,目标是将所有与工作流/Agent 图执行相关的代码集中到一个结构清晰、边界明确的顶层包中,取代原来散落在 api/core/ 各子模块的组织方式。这一重构的驱动力有三:
- 可测试性 — 消除模块间对
dify_config(全局配置)的隐式依赖,改为显式注入,便于单元测试 - 可维护性 — 用
import-linter合约强制执行模块边界,防止循环依赖蔓延 - 为 Agent × Skills 铺路 — 1.14.0 引入的 Skill Editor、Sandbox、协作等功能需要更稳固的图执行基础
已完成的迁移(本周合并)
| PR | 迁移内容 | 规模 | 状态 |
|---|---|---|---|
| #32844 | api/core/workflow → api/dify_graph/workflow | L | ✅ 已合并 |
| #32858 | api/core/model_runtime → api/dify_graph/model_runtime | L | ✅ 已合并 |
#32858 的迁移影响面可见一斑:552 行新增 + 584 行删除,涉及后端数十个文件的 import 路径从 core.model_runtime → dify_graph.model_runtime。同时移除了已经冗余的 model-runtime-no-internal-imports import-linter 合约,更新了 .github/CODEOWNERS、api/.ruff.toml、api/.importlinter。
进行中的迁移
| PR | 内容 | 状态 |
|---|---|---|
| #32873 | 统一 workflow 中 invoke 和 user 枚举的来源 | Open (4/5 任务) |
| #32780 | 统一 NodeConfigDict.data 与 BaseNodeData(消除双重数据结构) | Draft (3/5 任务) |
#32780 是迁移中技术含量最高的部分——当前节点配置在 NodeConfigDict.data(TypedDict)和 BaseNodeData(Pydantic)两套数据结构之间存在重复,统一后可消除大量序列化/反序列化样板代码。
对插件开发者和贡献者的影响
- 插件开发者(目前) :RC1 的插件 SDK 尚未受影响,
dify_graph不是对外 API 的一部分 - 自托管贡献者:如果你 fork 了仓库并做了自定义修改,注意
core.model_runtime和core.workflow的 import 路径已失效,需更换为dify_graph.* - 时间线预判:按当前迁移节奏,
dify_graph整合预计在 1.14.0 正式版或 1.15.0 里程碑前基本成形
✅ HTTP 请求节点重构落地(Watch Item 关闭)
| PR | 标题 | 状态 |
|---|---|---|
| #32365 | refactor(workflow): inject http request node config through factories and defaults | ✅ 已合并 (上周) |
此 PR 将 HTTP 请求节点的配置(SSL 验证、超时、重试等)从直接读取全局 dify_config 改为通过工厂模式注入,引入 HttpRequestNodeConfig dataclass。这是 #26531(SSL 禁用不生效)问题的根本架构修复。
⚡ 性能优化
| PR | 标题 | 状态 |
|---|---|---|
| #32847 | perf: optimize dataset api query speed | ✅ 已合并 |
| #32851 | fix(api): fix workflow_runs.started_at overwritten while resuming | Open (LGTM, 待合并) |
🧪 测试 / 工程质量
本周测试 PR 密度持续高位(延续 W08 的测试冲刺):
| PR | 覆盖范围 | 规模 |
|---|---|---|
| #32859 | base UI 原始组件单元测试 | XXL |
| #32648 | api/services: retention、enterprise、plugin 测试 | XXL |
| #32512 | core token buffer memory + model runtime | XXL |
| #32577 | core helper folder 剩余单元测试 | XL |
💡 新功能请求 / 社区需求
| # | 标题 | 优先级感知 |
|---|---|---|
| #32831 | HITL 的 Service API 支持(hjlarry 提出,内部团队成员) | 🔥 高关注 |
| #32817 | Endpoint plugin 支持 handler 返回 HTTP 响应后的 async session 续期 | 🟡 中 |
| #32827 | 开发环境增加 Celery concurrency 配置(QuantumGhost 提出) | 🟡 中 |
| #32868 | Chat App 的 Description 在用户界面可见 | 🟡 中 |
| #32829 | Hologres 向量 + 全文检索数据库集成 | 🟡 中 |
📋 Good First Issues(本周新开)
适合新贡献者上手:
| # | 标题 |
|---|---|
| #32863 | [Refactor] migrate to TypedDict |
| #32860 | [Refactor] use db_session_with_containers in containers test |
| #32855 | [Refactor] add TypedDict related prompt to AGENTS.md |
📊 关注项追踪(Watch Items 更新)
| 项目 | 上周状态 | 本周进展 |
|---|---|---|
| 1.14.0 正式版发布进度 | RC1 发布中 | ❌ 未发布,RC1 暴露 CORS bug (#32816),推迟概率增加 |
| HTTP 请求节点重构 PR #32365 | Draft 审核中 | ✅ 已合并 — 配置 DI 注入完成,架构修复落地 |
| Human-in-the-Loop 用户反馈 | 1.13.0 发布后观察中 | 🆕 #32831 提出 HITL Service API 需求,社区关注上升 |
| 类型注解重构 good-first-issue 批次 | 进行中 | ➕ 本周新增 TypedDict 迁移三个 good-first-issue |
| workflow_runs.started_at 覆盖 Bug | N/A(新发现) | 🆕 #32850 新发现,PR #32851 修复中(已获 LGTM) |
🛡️ 1.14.0-rc1 部署踩坑指南
以下均基于 #32816 社区反馈整理。RC1 仅建议非生产环境使用。
坑一:Skill 创建时 CORS 错误(前端直调 http://api:5001)
现象:在浏览器控制台看到如下报错,Skill 创建 UI 提示失败:
Access to XMLHttpRequest at 'http://api:5001/files/storage-files/...' has been blocked by CORS policy
net::ERR_FAILED
根因:RC1 的文件上传逻辑将 FILES_URL 直接暴露给浏览器端,而默认值是 Docker 内部主机名 http://api:5001,浏览器无法访问。
修复:在 .env 中显式设置面向浏览器的外部 URL(替换为你的实际 IP 或域名):
CONSOLE_API_URL=http://your-external-ip-or-domain
APP_API_URL=http://your-external-ip-or-domain
FILES_URL=http://your-external-ip-or-domain:5001
INTERNAL_FILES_URL=http://api:5001 # 保持内部地址
# 同时放开 CORS
WEB_API_CORS_ALLOW_ORIGINS=*
CONSOLE_CORS_ALLOW_ORIGINS=*
同时确认 docker-compose.yaml 中 api 服务暴露了 5001 端口:
services:
api:
ports:
- "5001:5001"
⚠️ 即使按上述配置,部分用户报告仍失败(#32816 评论),说明 rc1 内还有其他代码路径未修复,官方正排查中。
坑二:Skill 创建失败后留下「幽灵记录」
现象:Skill 创建失败,但 Skill 列表中仍出现该条目;点击编辑触发 500 FileNotFoundError:
File "/app/api/services/app_asset_service.py", line 226, in get_file_content
return asset_storage.load_once(key)
File "/app/api/extensions/storage/opendal_storage.py", line 49, in load_once
raise FileNotFoundError: File not found
根因:Skill 创建时先写 DB 记录,再写 skill.md 文件;文件写入失败时 DB 事务未回滚。修复 PR(#31829、#31805)已存在但未合入 rc1。
临时处理:手动从数据库删除孤立记录(agent_skills 或对应表)。
坑三:点击 Skill 后报 WebSocket 配置错误
现象:点击已创建的 Skill,API 日志报:
The gevent-websocket server is not configured appropriately
根因:RC1 协作功能依赖 WebSocket,但默认 Docker Compose 未设置对应 Gunicorn worker 类。
临时修复:在 docker-compose.yaml 的 api service 中添加环境变量:
services:
api:
environment:
SERVER_WORKER_CLASS: geventwebsocket.gunicorn.workers.GeventWebSocketWorker
坑四:必须从 feat/support-agent-sandbox 分支部署
RC1 的所有 Agent/Skill 功能均在 feat/support-agent-sandbox 分支,不在 main。Docker Compose 升级步骤:
git checkout feat/support-agent-sandbox
cd docker && docker compose down
docker compose up -d
坑五:沿用 1.13.0 升级陷阱(仍有效)
从 1.12.x 升级时需确保 Celery 配置包含新增队列:
workflow_based_app_execution(HITL 恢复必须)api_token(如开启ENABLE_API_TOKEN_LAST_USED_UPDATE_TASK=true)
ℹ️ 升级提示
维持 v1.13.0 部署的用户:
- 注意新发现的
workflow_runs.started_at覆盖 bug(#32850),影响 HITL 恢复后的时间戳记录精度 - PR #32851 修复已获 LGTM,预计下个 patch 版本或 RC2 中包含
尝鲜 v1.14.0-rc1 的用户:
- 参考上方「部署踩坑指南」逐项检查
- 仅建议用于非生产环境评估