WH-2099
b4c0fb9463
refactor(workflow-file): phase2 replace remaining imports and remove core.file
...
Complete phase 2 of the file module migration by replacing the remaining repository-wide legacy imports and deleting the temporary core.file compatibility package introduced in phase 1.
What this commit changes
- Replace legacy core.file.* imports with core.workflow.file.* across:
- controllers
- core app/agent/datasource/prompt/rag/tools/variables
- factories, fields, libs, models, services
- otel parser integration points
- unit and integration tests that referenced legacy paths
- Migrate residual runtime usages in app/task pipeline paths that still referenced core.file symbols.
- Update tests and model serialization helpers that relied on old module paths.
- Remove the compatibility bridge package entirely:
- delete core/file/__init__.py
- delete core/file/constants.py
- delete core/file/enums.py
- delete core/file/file_manager.py
- delete core/file/helpers.py
- delete core/file/models.py
- delete core/file/tool_file_parser.py
Verification
- No Python references to core.file remain ( -> empty).
- Targeted regression tests for migrated file primitives and factory/type flows passed:
- tests/unit_tests/core/test_file.py
- tests/unit_tests/factories/test_variable_factory.py
- tests/unit_tests/services/test_variable_truncator.py
Result
- The repository now uses core.workflow.file as the single canonical file namespace.
- The migration is fully split into two commits: phase 1 compatibility + phase 2 full cutover.
2026-02-12 15:34:20 +08:00
WH-2099
c56d650e83
refactor(workflow-file): phase1 migrate workflow file deps with compatibility bridge
...
Implement phase 1 of the file module migration by moving workflow-facing file primitives to core.workflow.file while keeping core.file as a temporary compatibility layer.
What this commit changes
- Add core.workflow.file package (constants/enums/models/helpers/file_manager/tool_file_parser).
- Add protocol-based runtime binding in core.workflow.file.runtime and core.workflow.file.protocols.
- Add application adapter core.app.workflow.file_runtime and bind runtime in extensions.ext_storage.init_app.
- Bind runtime in tests via tests/conftest.py.
- Migrate workflow-only imports from core.file.* to core.workflow.file.* across workflow runtime/nodes/entry/encoder and workflow node factory.
- Update workflow unit tests to patch/import the new workflow file namespace.
- Remove workflow-external-imports ignore_imports entries related to core.file from .importlinter.
Compatibility guarantee for phase split
- Keep core.file import path available in this phase by replacing core/file/*.py with forwarding bridge modules that re-export core.workflow.file symbols.
- Preserve runtime behavior and isinstance(File) identity consistency while non-workflow modules are still on legacy import paths.
Notes
- This commit intentionally does not remove core.file. Full repository replacement and bridge removal are handled in phase 2.
2026-02-12 15:34:19 +08:00
Varun Chawla
f233e2036f
fix: metadata batch edit silently fails due to split transactions and swallowed exceptions ( #32041 )
2026-02-12 12:59:59 +08:00
Runzhe
32350f7a04
feat(api): add scheduled cleanup task for specific workflow logs ( #31843 )
...
Co-authored-by: 章润喆 <zhangrunzhe@zhangrunzhedeMacBook-Air.local >
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com >
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
Co-authored-by: hjlarry <hjlarry@163.com >
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: hj24 <mambahj24@gmail.com >
2026-02-11 20:54:36 +08:00
wangxiaolei
2f87ecc0ce
fix: fix use fastopenapi lead user is anonymouse ( #32236 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-02-11 15:53:51 +08:00
wangxiaolei
0310f631ee
fix: fix get_message_event_type return wrong message type ( #32019 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-02-11 10:57:27 +08:00
QuantumGhost
704ee40caa
fix(api): excessive high CPU usage caused by RedisClientWrapper ( #32212 )
...
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2026-02-11 09:49:29 +08:00
weiguang li
697b57631a
fix(console): keep conversation updated_at unchanged when marking read ( #32133 )
2026-02-10 17:56:38 +08:00
weiguang li
14251b249d
fix(api): include file marker for workflow tool file outputs ( #32114 )
2026-02-10 16:51:12 +08:00
Dream
1a050c9f86
fix(api): clean up orphaned pending accounts on member removal ( #32151 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-02-10 10:17:27 +08:00
Vlad D
4ac461d882
fix(api): serialize pipeline file-upload created_at ( #32098 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-02-09 17:50:29 +08:00
Vlad D
fa763216d0
fix(api): register knowledge pipeline service API routes ( #32097 )
...
Co-authored-by: Crazywoola <100913391+crazywoola@users.noreply.github.com >
Co-authored-by: FFXN <31929997+FFXN@users.noreply.github.com >
2026-02-09 17:43:36 +08:00
wangxiaolei
d546210040
refactor: document_indexing_sync_task split db session ( #32129 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-02-09 17:12:16 +08:00
QuantumGhost
a1fc280102
feat: Human Input Node ( #32060 )
...
The frontend and backend implementation for the human input node.
Co-authored-by: twwu <twwu@dify.ai >
Co-authored-by: JzoNg <jzongcode@gmail.com >
Co-authored-by: yyh <92089059+lyzno1@users.noreply.github.com >
Co-authored-by: zhsama <torvalds@linux.do >
2026-02-09 14:57:23 +08:00
盐粒 Yanli
5b06203ef5
feat: Service API - add end-user lookup endpoint ( #32015 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-02-09 14:01:22 +08:00
wangxiaolei
3348b89436
refactor: decouple database operations from knowledge retrieval nodes ( #31981 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-02-09 13:56:55 +08:00
wangxiaolei
483db22b97
feat: extract mcp tool usage ( #31802 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-02-09 09:52:14 +08:00
wangxiaolei
aa800d838d
refactor: partition Celery task sessions into smaller, discrete execu… ( #32085 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-02-08 21:01:54 +08:00
zyssyz123
2c9430313d
fix: redis for api token ( #31861 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: hj24 <mambahj24@gmail.com >
2026-02-06 16:25:27 +08:00
QuantumGhost
4971e11734
perf: use batch delete method instead of single delete ( #32036 )
...
Co-authored-by: fatelei <fatelei@gmail.com >
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: FFXN <lizy@dify.ai >
2026-02-06 15:12:32 +08:00
wangxiaolei
a297b06aac
fix: fix tool type is miss ( #32042 )
2026-02-06 14:38:15 +08:00
wangxiaolei
b24e6edada
fix: fix agent node tool type is not right ( #32008 )
...
Infer real tool type via querying relevant database tables.
The root cause for incorrect `type` field is still not clear.
2026-02-06 11:24:39 +08:00
99
45164ce33e
refactor: strip external imports in workflow template transform ( #32017 )
2026-02-06 10:37:26 +08:00
wangxiaolei
b886b3f6c8
fix: fix miss use db.session ( #31971 )
2026-02-05 14:42:34 +08:00
Xiyuan Chen
c56ad8e323
feat: account delete cleanup ( #31519 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-02-04 17:59:41 -08:00
wangxiaolei
0dfa59b1db
fix: fix delete_draft_variables_batch cycle forever ( #31934 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-02-04 19:10:27 +08:00
Asuka Minato
f5d6c250ed
fix: "refactor: port api/controllers/console/tag/tags.py to ov3" ( #31887 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-02-03 22:18:53 +08:00
Stephen Zhou
b55c0ec4de
fix: revert "refactor: api/controllers/console/feature.py (test)" ( #31850 )
2026-02-03 12:26:47 +08:00
Asuka Minato
840a975fef
refactor: add test for api/controllers/console/workspace/tool_pr… ( #29886 )
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-02-02 14:54:16 +09:00
Asuka Minato
7828508b30
refactor: remove all reqparser ( #29289 )
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: Stephen Zhou <38493346+hyoban@users.noreply.github.com >
2026-02-01 13:43:14 +09:00
盐粒 Yanli
b8cb5f5ea2
refactor(typing): Fixup typing A2 - workflow engine & nodes ( #31723 )
...
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Asuka Minato <i@asukaminato.eu.org >
2026-01-31 18:00:56 +09:00
Asuka Minato
a433d5ed36
refactor: port api/controllers/console/tag/tags.py to ov3 ( #31767 )
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2026-01-30 22:40:14 +09:00
Asuka Minato
b58d9e030a
refactor: init_validate.py to v3 ( #31457 )
2026-01-30 22:39:02 +09:00
QuantumGhost
90fe9abab7
revert: revert human input relevant code ( #31766 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-01-30 19:18:49 +08:00
Asuka Minato
ba568a634d
refactor: api/controllers/console/remote_files.py to ov3 ( #31466 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-01-30 19:32:20 +09:00
Cursx
f33d99ea01
refactor: api/controllers/console/feature.py (test) ( #31562 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2026-01-30 19:22:01 +09:00
QuantumGhost
f90fa2b186
fix(api): fix workflow state persistence issue ( #31752 )
...
Ensure workflow pause configuration is correctly set for all entrypoints.
2026-01-30 17:44:29 +08:00
盐粒 Yanli
5a7dfd15b8
fix: Drain non-stream plugin chunk iterator ( #31564 )
2026-01-30 16:54:56 +08:00
QuantumGhost
03e3acfc71
feat(api): Human Input Node (backend part) ( #31646 )
...
The backend part of the human in the loop (HITL) feature and relevant architecture / workflow engine changes.
Signed-off-by: yihong0618 <zouzou0208@gmail.com >
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: -LAN- <laipz8200@outlook.com >
Co-authored-by: 盐粒 Yanli <yanli@dify.ai >
Co-authored-by: CrabSAMA <40541269+CrabSAMA@users.noreply.github.com >
Co-authored-by: Stephen Zhou <38493346+hyoban@users.noreply.github.com >
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
Co-authored-by: yihong <zouzou0208@gmail.com >
Co-authored-by: Joel <iamjoel007@gmail.com >
2026-01-30 10:18:49 +08:00
yihong
8aeef36e2d
feat: use xdist to make make test faster ( #30824 )
...
Signed-off-by: yihong0618 <zouzou0208@gmail.com >
2026-01-29 18:17:40 +08:00
盐粒 Yanli
dbfc47e8b0
fix: SSRF in WordExtractor URL download (credit to @EaEa0001 ) ( #31678 )
...
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2026-01-29 14:01:21 +08:00
FFXN
c2473d85dc
feat: Add summary index for knowledge. ( #31625 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Jyong <76649700+JohnJyong@users.noreply.github.com >
Co-authored-by: zxhlyh <jasonapring2015@outlook.com >
Co-authored-by: Yansong Zhang <916125788@qq.com >
Co-authored-by: hj24 <mambahj24@gmail.com >
Co-authored-by: CodingOnStar <hanxujiang@dify.ai >
Co-authored-by: CodingOnStar <hanxujiang@dify.com >
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2026-01-29 13:47:35 +08:00
eux
b48a10d7ec
feat(qdrant): implement full-text search with multi-keyword support ( #31658 )
2026-01-29 11:12:18 +08:00
-LAN-
24ebe2f5c6
refactor(graph_engine): Add a Config class for graph engine. ( #31663 )
...
Signed-off-by: -LAN- <laipz8200@outlook.com >
2026-01-28 19:57:55 +08:00
-LAN-
3d414678e3
fix(graph_engine): Cannot run single iteration or loop node ( #31470 )
...
Signed-off-by: -LAN- <laipz8200@outlook.com >
Co-authored-by: Yeuoly <45712896+Yeuoly@users.noreply.github.com >
2026-01-28 01:05:59 +08:00
-LAN-
d76ad15fca
refactor(graph_engine): move observability layer and persistence laye… ( #31620 )
2026-01-28 00:54:21 +08:00
heyszt
eca26a9b9b
feat: Enhances OpenTelemetry node parsers ( #30706 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-01-27 15:30:21 +08:00
hj24
b4eef76c14
fix: billing account deletion ( #31556 )
2026-01-27 11:18:23 +08:00
wangxiaolei
e48419937b
feat: chatflow support multimodal ( #31293 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-01-27 00:24:48 +08:00
Asuka Minato
eba5eac3fa
refactor: api/controllers/console/setup.py to ov3 ( #31465 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-01-26 15:04:33 +08:00