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
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
Novice
40b0d7c898
feat: implement app runtime upgrade feature to clone and convert classic runtime apps to sandboxed mode
2026-03-17 13:54:16 +08:00
Harry
f0c6c0159c
refactor: a lot of optimization and enhancement
2026-03-12 18:23:16 +08:00
zxhlyh
4a64362193
fix: import DSL -> import App
2026-03-12 17:29:42 +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
zxhlyh
ed9f36dd1f
fix: import DSL -> import App
2026-03-12 16:53:05 +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
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
zxhlyh
17c9b4dd85
fix: skills coming soon
2026-03-11 14:42:38 +08:00
Harry
dbc87dbd3b
feat: update LLM node skills API to extract tool dependencies and change endpoint to POST
2026-03-11 14:41:33 +08:00
Harry
0776e16fdc
refactor: async skill compile and context sharing
2026-03-11 14:41:33 +08:00
zxhlyh
d61be086ed
fix: upload local plugin
2026-03-11 13:38:10 +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
9afdb490ff
fix: update down_revision in migration and correct import statement in app_asset model
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
zxhlyh
52dd4b82e6
fix: llm logs
2026-03-06 18:04:18 +08:00
Novice
e0794020f7
feat: extend NodeRunStreamChunkEvent with additional model metadata fields
2026-03-06 17:21:55 +08:00
yevanmore
480f0e95bc
fix(chat): copy agent answer with llm tracing blocks ( #32931 )
...
Co-authored-by: Chen Yefan <cyefan2@gmail.com>
2026-03-06 00:39:44 +08:00
Novice
1cb5ee918f
feat: enhance model event handling with new identity and metrics fields
2026-03-05 14:08:37 +08:00
RockChinQ
e26d8a63da
feat: add marketplace template localization for multiple languages
2026-03-03 17:59:31 +08:00
Stream
14755d0474
fix: pass parameters correctly for LLMNode.invoke_llm ( #32902 )
2026-03-03 16:32:00 +08:00
Junyan Chin
9f7bea37e5
feat: add supports for "Open in Dify" from template details page in m… ( #32852 )
2026-03-03 13:09:12 +08:00
Joel
997d3ec80e
chore: add create app loading
2026-03-03 10:06:56 +08:00
Joel
4f1e12ea04
fix: upload zip not show confirm
2026-03-02 18:47:36 +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
yyh
865321abb4
fix: use css icons
2026-02-27 17:39:55 +08:00
yyh
574ad6c214
refactor(web): use oRPC key() for query invalidation
2026-02-27 17:28:15 +08:00
yyh
9ff9942af1
refactor(web): move sandbox tree builder to workflow artifacts utils
2026-02-27 17:16:03 +08:00
yyh
f70d89e80b
refactor(web): remove useSandboxFilesTree and derive hasFiles in components
...
Migrate ArtifactsSection to queryOptions + useQuery composition and derive\nfile tree/hasFiles locally from flat data. Remove the now-unused\nuseSandboxFilesTree helper and update related tests to mock the new\nqueryOptions-based flow.
2026-02-27 12:42:40 +08:00
yyh
0bdd21bc17
refactor(web): replace query option tunneling with queryOptions factories
...
Extract sandboxFilesTreeOptions and buildTreeFromFlatList from
useSandboxFilesTree so callers that need custom TanStack Query behavior
(e.g. refetchInterval) can compose at the call site instead of tunneling
options through the hook. Remove the thin useGetSandboxProviderList
wrapper in favor of inline oRPC queryOptions in the component.
Also remove redundant .input(type<unknown>()) from three no-input GET
contracts—oc already defaults TInputSchema to Schema<unknown, unknown>.
2026-02-27 11:58:16 +08:00
yyh
60b02e6d2b
refactor(web): destructure mutation result to narrow useCallback dependencies
2026-02-25 21:04:20 +08:00
yyh
ce95f1e5cb
refactor(web): remove unused refetch from sandbox files tree hook
2026-02-25 01:07:52 +08:00
yyh
d60a43164f
refactor(web): use skipToken for optional query inputs
2026-02-25 00:56:38 +08:00
yyh
bad48e5deb
refactor(web): replace query hooks with queryOptions factories ( #32520 )
2026-02-25 00:31:25 +08:00
yyh
f13f5a8882
fix(web): truncate long parent paths in skill file-tree search results
2026-02-24 23:50:28 +08:00