Novice
a28f22e59d
fix: resolve import errors and test failures after segment 4 merge
...
- Update BaseNodeData import path to dify_graph.entities.base_node_data
- Change NodeType.COMMAND/FILE_UPLOAD to BuiltinNodeTypes constants
- Fix system_oauth_encryption -> system_encryption rename in commands
- Remove tests for deleted agent runner modules
- Fix Avatar: named import + string size API in collaboration files
- Add missing skill feature deps: @monaco-editor/react, react-arborist,
@tanstack/react-virtual
- Fix frontend test mocks: add useUserProfile, useLeaderRestoreListener,
next/navigation mock, and nodeOutputVars to expected payload
Made-with: Cursor
2026-03-23 13:59:09 +08:00
Novice
5041d96bb1
Merge commit 'fb41b215' into sandboxed-agent-rebase
...
Made-with: Cursor
# Conflicts:
# .devcontainer/post_create_command.sh
# api/commands.py
# api/core/agent/cot_agent_runner.py
# api/core/agent/fc_agent_runner.py
# api/core/app/apps/workflow_app_runner.py
# api/core/app/entities/queue_entities.py
# api/core/app/entities/task_entities.py
# api/core/workflow/workflow_entry.py
# api/dify_graph/enums.py
# api/dify_graph/graph/graph.py
# api/dify_graph/graph_events/node.py
# api/dify_graph/model_runtime/entities/message_entities.py
# api/dify_graph/node_events/node.py
# api/dify_graph/nodes/agent/agent_node.py
# api/dify_graph/nodes/base/__init__.py
# api/dify_graph/nodes/base/entities.py
# api/dify_graph/nodes/base/node.py
# api/dify_graph/nodes/llm/entities.py
# api/dify_graph/nodes/llm/node.py
# api/dify_graph/nodes/tool/tool_node.py
# api/pyproject.toml
# api/uv.lock
# web/app/components/base/avatar/__tests__/index.spec.tsx
# web/app/components/base/avatar/index.tsx
# web/app/components/base/date-and-time-picker/time-picker/__tests__/index.spec.tsx
# web/app/components/base/file-uploader/file-from-link-or-local/index.tsx
# web/app/components/base/prompt-editor/index.tsx
# web/app/components/datasets/metadata/edit-metadata-batch/modal.tsx
# web/app/components/header/account-dropdown/index.spec.tsx
# web/app/components/share/text-generation/index.tsx
# web/app/components/workflow/block-selector/tool/action-item.tsx
# web/app/components/workflow/block-selector/trigger-plugin/action-item.tsx
# web/app/components/workflow/hooks/use-edges-interactions.ts
# web/app/components/workflow/hooks/use-nodes-interactions.ts
# web/app/components/workflow/index.tsx
# web/app/components/workflow/nodes/_base/components/editor/code-editor/index.tsx
# web/app/components/workflow/nodes/http/components/key-value/key-value-edit/index.tsx
# web/app/components/workflow/nodes/human-input/components/delivery-method/recipient/email-item.tsx
# web/app/components/workflow/nodes/loop/use-interactions.ts
# web/contract/router.ts
# web/env.ts
# web/eslint-suppressions.json
# web/package.json
# web/pnpm-lock.yaml
2026-03-23 10:52:06 +08:00
Novice
b15a9bea21
style: auto-format after segment 3 import migrations
...
Made-with: Cursor
2026-03-23 10:37:02 +08:00
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
fefbd84c67
chore: remove obsolete variable extraction design documentation
2026-03-19 10:07:47 +08:00
Novice
56ca40ab19
fix: enhance container architecture detection in DockerDaemonEnvironment
2026-03-18 15:30:18 +08:00
Novice
2e05068647
fix: update NoopSandboxStorage to return True for mount and unmount methods
2026-03-17 16:50:55 +08:00
-LAN-
fb41b215c8
refactor(api): move workflow knowledge nodes and trigger nodes ( #33445 )
2026-03-15 15:24:59 +08:00
99
1b6e695520
refactor(workflow): move agent node back to core workflow ( #33431 )
2026-03-14 22:33:13 +08:00
tmimmanuel
e64f4d6039
refactor: replace sa.String with EnumText in mapped_column for type s… ( #33332 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-14 13:38:27 +09:00
Harry
f0c6c0159c
refactor: a lot of optimization and enhancement
2026-03-12 18:23:16 +08:00
Harry
7bd6dd588e
refactor: remove keepalive thread and utilize E2B's native timeout management
2026-03-12 17:22:12 +08:00
Harry
e1510a64c9
fix: harden sandbox builder cleanup
2026-03-12 17:03:38 +08:00
Harry
0a4a85ada2
fix: remove early return in DraftAppAssetsInitializer if file tree is empty
2026-03-12 17:03:38 +08:00
Harry
d5a921e4df
fix: log storage key details when skill bundle is not found
2026-03-12 16:31:53 +08:00
Harry
2aff0ada8f
fix: centralize sandbox temp path management
2026-03-12 16:03:01 +08:00
Harry
1d1f09dc92
feat: add directory creation step for assets temp directory in AppAssetsInitializer
2026-03-12 15:56:24 +08:00
Rajat Agarwal
b170eabaf3
test: Unit test cases for core.tools module ( #32447 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Asuka Minato <i@asukaminato.eu.org >
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: wangxiaolei <fatelei@gmail.com >
Co-authored-by: akashseth-ifp <akash.seth@infocusp.com >
Co-authored-by: mahammadasim <135003320+mahammadasim@users.noreply.github.com >
2026-03-12 11:48:13 +08:00
mahammadasim
245f6b824d
test: add test for core extension, external_data_tool and llm generator ( #32468 )
2026-03-12 11:44:38 +08:00
Rajat Agarwal
07e19c0748
test: unit test cases for core.variables, core.plugin, core.prompt module ( #32637 )
2026-03-12 11:29:02 +08:00
Rajat Agarwal
0045e387f5
test: unit test cases for core.app.apps module ( #32482 )
2026-03-12 11:23:25 +08:00
盐粒 Yanli
989db0e584
refactor: Unify NodeConfigDict.data and BaseNodeData ( #32780 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2026-03-11 23:43:58 +08:00
Harry
76c02db094
fix: namespace sandbox temp paths by sandbox ID to prevent cross-session collisions
...
DifyCli and AppAssets used hardcoded absolute paths under /tmp/.dify/,
causing concurrent sandbox sessions on the same host (e.g. SSH provider)
to overwrite each other's config files and CLI binaries.
- Add Sandbox.id property (uuid4 hex) as a stable, path-safe identifier
independent of provider-specific environment IDs
- Convert DifyCli/AppAssets from static constants to per-sandbox instances
namespaced under /tmp/.dify/{sandbox.id}/
- Replace all vm.metadata.id references with sandbox.id
- Replace upload_file with heredoc-based pipeline step in session.py to
reduce round-trips
2026-03-11 19:19:17 +08:00
Harry
6fe221518e
feat: enhance tool access management with ToolAccessDescription and update ToolAccessPolicy
2026-03-11 18:45:56 +08:00
Novice
8513fa2897
feat: add support for file outputs in LLMNode, including auto-collection and deduplication
2026-03-11 16:30:54 +08:00
Novice
f0c82f28cb
fix: improve file preview in chat messages by yielding events in task pipeline
2026-03-11 16:30:54 +08:00
Harry
0776e16fdc
refactor: async skill compile and context sharing
2026-03-11 14:41:33 +08:00
wangxiaolei
d6721a1dd3
fix: use moderation modified inputs and query ( #33180 )
...
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-11 13:37:23 +08:00
zyssyz123
d67f04f63e
feat: source for plugin tasks ( #33244 )
...
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2026-03-11 11:56:33 +09:00
wangxiaolei
54637144c5
fix: fix parse mailto / http link in table cell ( #33224 )
...
Co-authored-by: Oz <oz-agent@warp.dev >
2026-03-11 10:02:33 +08:00
wangxiaolei
27f9cdedad
fix: fix failed test ( #33241 )
2026-03-11 09:37:19 +08:00
mahammadasim
1083f5c46a
test: add test for api core datasource ( #32414 )
...
Co-authored-by: rajatagarwal-oss <rajat.agarwal@infocusp.com >
2026-03-11 03:12:46 +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
e9be6bf2ab
feat: add AWS Code Interpreter sandbox provider and update sandbox type
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
sasha
322d3cd555
fix: nested spans and traces; ( #33049 )
...
Co-authored-by: aadereiko <aliaksandr@comet.com >
Co-authored-by: Boris Feld <boris@comet.com >
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
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-10 15:45:44 +08:00
wangxiaolei
db627e75f6
fix: fix request.metadata_model_config param check ( #33189 )
2026-03-10 15:09:35 +08:00
wangxiaolei
b9d05d3456
refactor: tool node decouple db ( #33166 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-03-10 01:47:15 +08:00
wangxiaolei
bbfa28e8a7
refactor: file saver decouple db engine and ssrf proxy ( #33076 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-03-09 16:09:44 +08:00
非法操作
654e41d47f
fix: workflow_as_tool not work with json input ( #32554 )
2026-03-09 13:54:54 +08:00
wangxiaolei
46098b2be6
refactor: use thread.Timer instead of time.sleep ( #33121 )
2026-03-09 09:38:16 +08:00