Commit Graph

10549 Commits

Author SHA1 Message Date
2aff0ada8f fix: centralize sandbox temp path management 2026-03-12 16:03:01 +08:00
1d1f09dc92 feat: add directory creation step for assets temp directory in AppAssetsInitializer 2026-03-12 15:56:24 +08:00
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
6fe221518e feat: enhance tool access management with ToolAccessDescription and update ToolAccessPolicy 2026-03-11 18:45:56 +08:00
8513fa2897 feat: add support for file outputs in LLMNode, including auto-collection and deduplication 2026-03-11 16:30:54 +08:00
f0c82f28cb fix: improve file preview in chat messages by yielding events in task pipeline 2026-03-11 16:30:54 +08:00
17c9b4dd85 fix: skills coming soon 2026-03-11 14:42:38 +08:00
dbc87dbd3b feat: update LLM node skills API to extract tool dependencies and change endpoint to POST 2026-03-11 14:41:33 +08:00
0776e16fdc refactor: async skill compile and context sharing 2026-03-11 14:41:33 +08:00
d61be086ed fix: upload local plugin 2026-03-11 13:38:10 +08:00
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
6ac730ec2e fix: ruff 2026-03-10 17:12:15 +08:00
9afdb490ff fix: update down_revision in migration and correct import statement in app_asset model 2026-03-10 17:12:15 +08:00
e9be6bf2ab feat: add AWS Code Interpreter sandbox provider and update sandbox type 2026-03-10 17:12:15 +08:00
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
53f76a20c2 refactor: redesign skill compilation and document assembly process 2026-03-10 17:12:14 +08:00
52dd4b82e6 fix: llm logs 2026-03-06 18:04:18 +08:00
e0794020f7 feat: extend NodeRunStreamChunkEvent with additional model metadata fields 2026-03-06 17:21:55 +08:00
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
1cb5ee918f feat: enhance model event handling with new identity and metrics fields 2026-03-05 14:08:37 +08:00
e26d8a63da feat: add marketplace template localization for multiple languages 2026-03-03 17:59:31 +08:00
14755d0474 fix: pass parameters correctly for LLMNode.invoke_llm (#32902) 2026-03-03 16:32:00 +08:00
9f7bea37e5 feat: add supports for "Open in Dify" from template details page in m… (#32852) 2026-03-03 13:09:12 +08:00
997d3ec80e chore: add create app loading 2026-03-03 10:06:56 +08:00
4f1e12ea04 fix: upload zip not show confirm 2026-03-02 18:47:36 +08:00
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
yyh
2e0661aa90 refactor(web): align MCP availability context migration
- move MCP availability context to block-selector/context and update imports

- preserve sandbox gating, parent-provider inheritance, and blockedBy semantics

- add context tests on top of refactor baseline cases

- regenerate and prune eslint suppressions
2026-02-23 22:46:31 +08:00
2dc86363e3 feat: enhance asset packaging to handle empty assets and direct storage uploads 2026-02-17 12:16:15 +08:00
d8f290de63 refactor: remove SSH installation check from agentbox command 2026-02-16 16:06:57 +08:00
a1d3acdc2d fix: update files_url to use FILES_API_URL in DifyCliConfig 2026-02-15 17:19:08 +08:00
48e694eafe fix: agentbox using nginx for traffic proxy 2026-02-15 11:31:22 +08:00
cb6445a977 feat: fallback handle for skill exception when draft not sync yet 2026-02-15 02:00:27 +08:00
dd8385abf1 feat: centralize command execution timeout constant for sandbox providers 1.14.0-rc1 2026-02-14 16:01:27 +08:00
5cfb3d70e1 feat: mentioned user email can directly open app 2026-02-14 15:08:20 +08:00
292bfceae6 feat(api): implement tool argument validation in Function Call strategy 2026-02-14 14:28:46 +08:00
4b6f1861ef fix: view vars artifacts md not support scroll and loading not in the center 2026-02-14 11:00:52 +08:00
5432bba0ca fix: increase COMMAND_TIMEOUT_SECONDS to 2 hours for better command execution handling 2026-02-14 10:55:29 +08:00
yyh
6415a0b799 refactor(web): remove sandbox provider literals from i18n 2026-02-13 19:04:51 +08:00
yyh
e2ce12f7a9 chore: update uv.lock 2026-02-13 19:00:08 +08:00
yyh
65e733dadd chore: ja-JP translations 2026-02-13 18:59:52 +08:00