Novice
6b75188ddc
fix: resolve import migrations and test failures after segment 3 merge
...
- Migrate core.model_runtime -> dify_graph.model_runtime across 20+ files
- Migrate core.workflow.file -> dify_graph.file across 15+ files
- Migrate core.workflow.enums -> dify_graph.enums in service files
- Fix SandboxContext phantom import in dify_graph/context/__init__.py
- Fix core.app.workflow.node_factory -> core.workflow.node_factory
- Fix toast import paths (useToastContext from toast/context)
- Fix app-info.tsx import paths for relocated app-operations
- Fix 15 frontend test files for API changes, missing QueryClientProvider,
i18n key renames, and component behavior changes
Made-with: Cursor
2026-03-23 10:31:11 +08:00
Novice
94b01f6821
Merge commit '92bde350' into sandboxed-agent-rebase
...
Made-with: Cursor
# Conflicts:
# api/controllers/console/app/workflow_draft_variable.py
# api/core/agent/cot_agent_runner.py
# api/core/agent/cot_chat_agent_runner.py
# api/core/agent/cot_completion_agent_runner.py
# api/core/agent/fc_agent_runner.py
# api/core/app/apps/advanced_chat/app_generator.py
# api/core/app/apps/advanced_chat/app_runner.py
# api/core/app/apps/agent_chat/app_runner.py
# api/core/app/apps/workflow/app_generator.py
# api/core/app/apps/workflow/app_runner.py
# api/core/app/entities/app_invoke_entities.py
# api/core/app/entities/queue_entities.py
# api/core/llm_generator/output_parser/structured_output.py
# api/core/workflow/workflow_entry.py
# api/dify_graph/context/__init__.py
# api/dify_graph/entities/tool_entities.py
# api/dify_graph/file/file_manager.py
# api/dify_graph/graph_engine/response_coordinator/coordinator.py
# api/dify_graph/graph_events/node.py
# api/dify_graph/node_events/node.py
# api/dify_graph/nodes/agent/agent_node.py
# api/dify_graph/nodes/llm/entities.py
# api/dify_graph/nodes/llm/llm_utils.py
# api/dify_graph/nodes/llm/node.py
# api/dify_graph/nodes/question_classifier/question_classifier_node.py
# api/dify_graph/runtime/graph_runtime_state.py
# api/dify_graph/variables/segments.py
# api/factories/variable_factory.py
# api/services/variable_truncator.py
# api/tests/unit_tests/utils/structured_output_parser/test_structured_output_parser.py
# api/uv.lock
# web/app/components/app-sidebar/app-info.tsx
# web/app/components/app-sidebar/app-sidebar-dropdown.tsx
# web/app/components/app/create-app-modal/index.spec.tsx
# web/app/components/apps/__tests__/list.spec.tsx
# web/app/components/apps/app-card.tsx
# web/app/components/apps/list.tsx
# web/app/components/header/account-dropdown/compliance.tsx
# web/app/components/header/account-dropdown/index.tsx
# web/app/components/header/account-dropdown/support.tsx
# web/app/components/workflow-app/components/workflow-onboarding-modal/index.tsx
# web/app/components/workflow/panel/debug-and-preview/hooks.ts
# web/contract/console/apps.ts
# web/contract/router.ts
# web/eslint-suppressions.json
# web/next.config.ts
# web/pnpm-lock.yaml
2026-03-23 09:39:49 +08:00
Novice
cbdcdcc2b9
fix: resolve test failures after segment 2 merge
...
- Backend: fix deduct_llm_quota import path in llm node
- Backend: update core.variables → core.workflow.variables imports
- Frontend: update UpdateWorkflowNodesMapPayload in tests
- Frontend: fix various test expectations to match merged code
Made-with: Cursor
2026-03-23 09:18:26 +08:00
Novice
66e67caa2b
fix: update core.variables imports to core.workflow.variables after S2 merge
...
Made-with: Cursor
2026-03-23 09:05:37 +08:00
Novice
cccff6768a
Merge commit '9c339239' into sandboxed-agent-rebase
...
Made-with: Cursor
# Conflicts:
# api/README.md
# api/controllers/console/app/workflow_draft_variable.py
# api/core/agent/cot_agent_runner.py
# api/core/agent/fc_agent_runner.py
# api/core/app/apps/advanced_chat/app_runner.py
# api/core/plugin/backwards_invocation/model.py
# api/core/prompt/advanced_prompt_transform.py
# api/core/workflow/nodes/base/node.py
# api/core/workflow/nodes/llm/llm_utils.py
# api/core/workflow/nodes/llm/node.py
# api/core/workflow/nodes/parameter_extractor/parameter_extractor_node.py
# api/core/workflow/nodes/question_classifier/question_classifier_node.py
# api/core/workflow/runtime/graph_runtime_state.py
# api/extensions/storage/base_storage.py
# api/factories/variable_factory.py
# api/pyproject.toml
# api/services/variable_truncator.py
# api/uv.lock
# web/app/account/oauth/authorize/page.tsx
# web/app/components/app/configuration/config-var/config-modal/field.tsx
# web/app/components/base/alert.tsx
# web/app/components/base/chat/chat/answer/human-input-content/executed-action.tsx
# web/app/components/base/chat/chat/answer/more.tsx
# web/app/components/base/chat/chat/answer/operation.tsx
# web/app/components/base/chat/chat/answer/workflow-process.tsx
# web/app/components/base/chat/chat/citation/index.tsx
# web/app/components/base/chat/chat/citation/popup.tsx
# web/app/components/base/chat/chat/citation/progress-tooltip.tsx
# web/app/components/base/chat/chat/citation/tooltip.tsx
# web/app/components/base/chat/chat/question.tsx
# web/app/components/base/chat/embedded-chatbot/inputs-form/index.tsx
# web/app/components/base/chat/embedded-chatbot/inputs-form/view-form-dropdown.tsx
# web/app/components/base/markdown-blocks/form.tsx
# web/app/components/base/prompt-editor/plugins/hitl-input-block/component-ui.tsx
# web/app/components/base/tag-management/panel.tsx
# web/app/components/base/tag-management/trigger.tsx
# web/app/components/header/account-setting/index.tsx
# web/app/components/header/account-setting/members-page/transfer-ownership-modal/index.tsx
# web/app/components/header/account-setting/model-provider-page/provider-added-card/index.tsx
# web/app/signin/utils/post-login-redirect.ts
# web/eslint-suppressions.json
# web/package.json
# web/pnpm-lock.yaml
2026-03-23 09:00:45 +08:00
Novice
51c418f497
fix: update remaining core.file imports missed in previous commit
...
Made-with: Cursor
2026-03-23 08:39:48 +08:00
Novice
a883b74272
fix: update core.file imports to core.workflow.file after merge
...
The File class and related modules were moved from core.file to
core.workflow.file in the sandboxed-agent branch. This commit
updates all remaining references including test mock/patch paths,
Switch component defaultValue→value changes, and account setting
tab constant updates.
Made-with: Cursor
2026-03-19 18:05:55 +08:00
Novice
89b76d6c33
Merge commit '657eeb65' into sandboxed-agent-rebase
...
Made-with: Cursor
# Conflicts:
# api/core/agent/cot_chat_agent_runner.py
# api/core/agent/fc_agent_runner.py
# api/core/memory/token_buffer_memory.py
# api/core/variables/segments.py
# api/core/workflow/file/file_manager.py
# api/core/workflow/nodes/agent/agent_node.py
# api/core/workflow/nodes/llm/llm_utils.py
# api/core/workflow/nodes/parameter_extractor/parameter_extractor_node.py
# api/core/workflow/workflow_entry.py
# api/factories/variable_factory.py
# api/pyproject.toml
# api/services/variable_truncator.py
# api/uv.lock
# web/app/components/app/app-publisher/index.tsx
# web/app/components/app/overview/settings/index.tsx
# web/app/components/apps/app-card.tsx
# web/app/components/apps/index.tsx
# web/app/components/apps/list.tsx
# web/app/components/base/chat/chat-with-history/header-in-mobile.tsx
# web/app/components/base/features/new-feature-panel/conversation-opener/modal.tsx
# web/app/components/base/features/new-feature-panel/file-upload/setting-content.tsx
# web/app/components/base/features/new-feature-panel/moderation/moderation-setting-modal.tsx
# web/app/components/base/features/new-feature-panel/text-to-speech/param-config-content.tsx
# web/app/components/base/message-log-modal/index.tsx
# web/app/components/base/switch/index.tsx
# web/app/components/base/tab-slider-plain/index.tsx
# web/app/components/explore/try-app/app-info/index.tsx
# web/app/components/plugins/plugin-detail-panel/tool-selector/components/reasoning-config-form.tsx
# web/app/components/workflow/nodes/llm/components/json-schema-config-modal/visual-editor/edit-card/required-switch.tsx
# web/app/components/workflow/nodes/llm/panel.tsx
# web/contract/router.ts
# web/eslint-suppressions.json
# web/i18n/fa-IR/workflow.json
2026-03-19 17:38:56 +08:00
Novice
2ce7919e6d
test: update unit tests for system message handling and workflow collaboration serices
2026-03-19 17:19:56 +08:00
Harry
f0c6c0159c
refactor: a lot of optimization and enhancement
2026-03-12 18:23:16 +08:00
Harry
65e89520c0
refactor: unify download item types and eliminate extension-based branching
...
Merge AssetDownloadItem, AssetInlineItem into SandboxDownloadItem with
optional 'content' field. All consumers now follow a clean pipeline:
get items → accessor.resolve_items() → AppAssetService.to_download_items() → download
Key changes:
- SandboxDownloadItem gains content: bytes | None (entities.py)
- ZipSandbox.download_items() handles both inline (base64 heredoc) and
remote (curl) via a single pipeline — no structural branching
- AssetDownloadService.build_download_script() takes unified list
- CachedContentAccessor.resolve_items() batch-enriches items from DB
(extension-agnostic, no 'if md' checks needed)
- AppAssetService.to_download_items() converts AssetItem → SandboxDownloadItem
- DraftAppAssetsInitializer, package_and_upload, export_bundle simplified
- file_upload/node.py switched to SandboxDownloadItem
- Deleted AssetDownloadItem and AssetInlineItem classes
2026-03-10 17:12:15 +08:00
Harry
6ac730ec2e
fix: ruff
2026-03-10 17:12:15 +08:00
Harry
a8074f4f4a
feat: add DB inline content cache for app asset draft files
...
Introduce app_asset_contents table as a read-through cache over S3 for
text-like asset files (e.g. .md skill documents). This eliminates N
individual S3 fetches during SkillBuilder builds — bulk_load pulls all
content in a single SQL query with S3 fallback on miss.
Key components:
- CachedContentAccessor: DB-first read / dual-write / S3 fallback
- AssetContentService: static DB operations (get, get_many, upsert, delete)
- should_mirror(): single source of truth for extension-based policy
- Alembic migration for app_asset_contents table
Modified callers:
- SkillBuilder uses accessor.bulk_load() instead of per-node S3 reads
- AppAssetService.get/update_file_content route through accessor
- delete_node cleans both DB cache and S3
- draft_app_assets_initializer uses should_mirror() instead of hardcoded .md
2026-03-10 17:12:14 +08:00
Harry
53f76a20c2
refactor: redesign skill compilation and document assembly process
2026-03-10 17:12:14 +08:00
99
7432b58f82
refactor(dify_graph): introduce run_context and delegate child engine creation ( #32964 )
2026-03-05 14:31:28 +08:00
木之本澪
2b5ce196ad
test: migrate test_document_service_rename_document SQL tests to testcontainers ( #32542 )
...
Co-authored-by: KinomotoMio <200703522+KinomotoMio@users.noreply.github.com >
2026-03-05 10:07:29 +09:00
木之本澪
df3c66a8ac
test: migrate duplicate_document_indexing_task SQL tests to testcontainers ( #32540 )
...
Co-authored-by: KinomotoMio <200703522+KinomotoMio@users.noreply.github.com >
2026-03-05 02:35:24 +09:00
wangxiaolei
882b4c9ef6
refactor: document extract node decouple ssrf_proxy ( #32949 )
2026-03-04 16:01:43 +08:00
L1nSn0w
3aed24c507
fix(api): decouple enterprise default-workspace join from personal workspace creation ( #32938 )
2026-03-04 14:16:23 +08:00
QuantumGhost
e1e1f81bde
perf(api): utilize the message_workflow_run_id_idx while querying messages ( #32944 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-03-04 14:11:14 +08:00
Renzo
ad000c42b7
feat: replace db.session with db_session_with_containers ( #32942 )
2026-03-04 14:50:41 +09:00
wangxiaolei
2f4c740d46
feat: support redis xstream ( #32586 )
2026-03-04 13:18:55 +08:00
wangxiaolei
e14b09d4db
refactor: human input node decouple db ( #32900 )
2026-03-04 13:18:32 +08:00
木之本澪
6002fd09b4
test: migrate test_dataset_service_create_dataset SQL tests to testcontainers ( #32538 )
...
Co-authored-by: KinomotoMio <200703522+KinomotoMio@users.noreply.github.com >
2026-03-04 03:40:18 +09:00
木之本澪
65bf632ec0
test: migrate test_dataset_service_batch_update_document_status SQL tests to testcontainers ( #32537 )
...
Co-authored-by: KinomotoMio <200703522+KinomotoMio@users.noreply.github.com >
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-03-03 20:29:58 +09:00
99
c8688ec371
refactor(dify_graph): unify invoke and user enums source in workflow ( #32873 )
2026-03-03 15:05:20 +08:00
wangxiaolei
1b2234a19f
refactor: TemplateTransformNode decouple code executor ( #32879 )
2026-03-03 13:36:17 +08:00
-LAN-
4fd6b52808
refactor(api): move model_runtime into dify_graph ( #32858 )
2026-03-02 20:15:32 +08:00
-LAN-
c917838f9c
refactor: move workflow package to dify_graph ( #32844 )
2026-03-02 18:42:30 +08:00
wangxiaolei
707bf20c29
refactor: knowledge index node decouples business logic ( #32274 )
2026-03-02 17:54:33 +08:00
Varun Chawla
9ddbc1c0fb
fix: map all NodeType values to span kinds in Arize Phoenix tracing ( #32059 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Crazywoola <100913391+crazywoola@users.noreply.github.com >
2026-03-02 14:54:26 +08:00
wangxiaolei
cc127f5b62
fix: fix chat assistant response mode blocking is not work ( #32394 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-03-02 14:05:04 +08:00
edvatar
248202c220
fix: remove references to non-existent Document attributes in test ( #32654 )
...
Signed-off-by: edvatar <88481784+toroleapinc@users.noreply.github.com >
Co-authored-by: Asuka Minato <i@asukaminato.eu.org >
2026-03-02 10:14:56 +08:00
HanWenbo
691c9911c7
fix(ci): make pyrefly diff comments focus on diagnostics ( #32778 )
2026-03-02 10:11:23 +08:00
99
a01de98721
refactor(workflow): decouple start node external dependencies ( #32793 )
2026-03-02 02:01:41 +08:00
-LAN-
69b3e94630
refactor: inject workflow node memory via protocol ( #32784 )
2026-03-02 01:55:49 +08:00
-LAN-
ef2b5d6107
refactor(api): move llm quota deduction to app graph layer ( #32786 )
2026-03-01 23:25:36 +08:00
-LAN-
ffe77fecdf
revert(graph-engine): rollback stop-event unification ( #32789 )
2026-03-01 19:43:05 +08:00
weiguang li
b462a96fa0
fix: serialize data_source_info with json.dumps in Notion sync task ( #32747 )
2026-03-01 19:37:51 +08:00
-LAN-
53c62fde33
fix(api): enforce ownership check for conversation delete ( #32686 )
2026-03-01 17:53:37 +08:00
L1nSn0w
337161cdb9
feat(enterprise): auto-join newly registered accounts to the default workspace ( #32308 )
...
Co-authored-by: Yunlu Wen <yunlu.wen@dify.ai >
2026-03-01 16:53:09 +08:00
99
00e52796e6
refactor(workflow): remove code node helper imports ( #32759 )
...
Co-authored-by: -LAN- <laipz8200@outlook.com >
2026-03-01 16:31:45 +08:00
99
9e9e617e09
fix(workflow): decouple http request node external dependencies ( #32762 )
2026-03-01 15:42:57 +08:00
FFXN
a7789f2c91
fix: some Qwen3 models only support streaming output. ( #32766 )
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2026-03-01 15:42:44 +08:00
-LAN-
20fcc95db9
test(api): add autospec to MagicMock-based patch usage ( #32752 )
2026-03-01 04:30:45 +08:00
-LAN-
c034eb036c
refactor: inject memory interface into LLMNode ( #32754 )
...
Signed-off-by: -LAN- <laipz8200@outlook.com >
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2026-03-01 04:05:18 +08:00
-LAN-
1f0fca89a8
refactor(workflow): move variables package into core.workflow ( #32750 )
2026-03-01 03:15:09 +08:00
-LAN-
962df17a15
refactor: consolidate LLM runtime model state on ModelInstance ( #32746 )
...
Signed-off-by: -LAN- <laipz8200@outlook.com >
2026-03-01 02:29:32 +08:00
Harry
a0d1816a6e
feat: add mergeable skill bundles with incremental compilation
...
Refactor skill compilation around mergeable bundle patches so dynamic skill updates no longer require full rebuilds. Keep dependency closures accurate by recomputing affected nodes from direct dependency data.
2026-02-28 14:35:29 +08:00
木之本澪
33242697ce
test: migrate document_service_status SQL tests to testcontainers ( #32536 )
...
Co-authored-by: KinomotoMio <200703522+KinomotoMio@users.noreply.github.com >
2026-02-28 01:50:55 +09:00