Commit Graph
5804 Commits
Author SHA1 Message Date
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
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
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 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
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
Novice e0794020f7 feat: extend NodeRunStreamChunkEvent with additional model metadata fields 2026-03-06 17:21:55 +08:00
Novice 1cb5ee918f feat: enhance model event handling with new identity and metrics fields 2026-03-05 14:08:37 +08:00
StreamandGitHub 14755d0474 fix: pass parameters correctly for LLMNode.invoke_llm (#32902) 2026-03-03 16:32:00 +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
Harry 2dc86363e3 feat: enhance asset packaging to handle empty assets and direct storage uploads 2026-02-17 12:16:15 +08:00
Harry a1d3acdc2d fix: update files_url to use FILES_API_URL in DifyCliConfig 2026-02-15 17:19:08 +08:00
Harry 48e694eafe fix: agentbox using nginx for traffic proxy 2026-02-15 11:31:22 +08:00
Harry cb6445a977 feat: fallback handle for skill exception when draft not sync yet 2026-02-15 02:00:27 +08:00
Harry dd8385abf1 feat: centralize command execution timeout constant for sandbox providers 2026-02-14 16:01:27 +08:00
hjlarry 5cfb3d70e1 feat: mentioned user email can directly open app 2026-02-14 15:08:20 +08:00
Novice 292bfceae6 feat(api): implement tool argument validation in Function Call strategy 2026-02-14 14:28:46 +08:00
Harry 5432bba0ca fix: increase COMMAND_TIMEOUT_SECONDS to 2 hours for better command execution handling 2026-02-14 10:55:29 +08:00
yyh e2ce12f7a9 chore: update uv.lock 2026-02-13 19:00:08 +08:00
Harry 2d8b6dff7d chore: update version to 1.14.0-rc1 2026-02-13 18:17:57 +08:00
Harry cc1085ebd4 fix(session): enable all tools by default in SandboxBashSession 2026-02-13 17:53:55 +08:00
yyh ada3a6d4a2 fix(api): pin setuptools<81 and refresh uv.lock to fix OTel pkg_resources startup error 2026-02-13 16:17:07 +08:00
Harry 047f499f95 feat: add SSH config retrieval for sandbox provider setup 2026-02-13 16:11:27 +08:00
yyh e730124740 Merge remote-tracking branch 'origin/main' into feat/support-agent-sandbox
# Conflicts:
#	api/uv.lock
#	web/app/components/apps/__tests__/app-card.spec.tsx
#	web/app/components/apps/__tests__/list.spec.tsx
#	web/app/components/datasets/create/__tests__/index.spec.tsx
#	web/app/components/datasets/metadata/metadata-dataset/__tests__/dataset-metadata-drawer.spec.tsx
#	web/app/components/plugins/readme-panel/__tests__/index.spec.tsx
#	web/app/components/rag-pipeline/__tests__/index.spec.tsx
#	web/app/components/rag-pipeline/hooks/__tests__/index.spec.ts
#	web/eslint-suppressions.json
2026-02-13 15:17:52 +08:00
Conner MoGitHubautofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
16df9851a2 feat(api): optimize OceanBase vector store performance and configurability (#32263)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-02-13 09:48:55 +08:00
c0ffb6db2a feat: support config max size of plugin generated files (#30887)
Co-authored-by: Copilot <[email protected]>
2026-02-13 09:48:27 +08:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
0118b45cff chore(deps): bump pillow from 12.0.0 to 12.1.1 in /api (#32250)
Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-13 04:47:19 +09:00
40078108de fix: publish-to-marketplace exports YAML for classic apps instead of ZIP (#32284)
Co-authored-by: Claude Opus 4.6 <[email protected]>
2026-02-12 20:31:40 +08:00
Novice c0b47bd318 fix: update final turn reminder to specify output file location 2026-02-12 14:22:15 +08:00
Varun ChawlaandGitHub f233e2036f fix: metadata batch edit silently fails due to split transactions and swallowed exceptions (#32041) 2026-02-12 12:59:59 +08:00
Novice d953982536 refactor: streamline output building in LLMNode with new _build_outputs method 2026-02-12 11:28:53 +08:00
Junyan Qin aa92f0dd32 fix: loop migrations 2026-02-11 21:46:45 +08:00
2bf767d5f7 feat: add Creators Platform helper for DSL upload and OAuth redirect (Vibe Kanban) (#32232)
Co-authored-by: Claude Opus 4.6 <[email protected]>
2026-02-11 21:10:48 +08:00
RunzheGitHub章润喆Claude Opus 4.5Copilothjlarryautofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>hj24
32350f7a04 feat(api): add scheduled cleanup task for specific workflow logs (#31843)
Co-authored-by: 章润喆 <[email protected]>
Co-authored-by: Claude Opus 4.5 <[email protected]>
Co-authored-by: Copilot <[email protected]>
Co-authored-by: hjlarry <[email protected]>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: hj24 <[email protected]>
2026-02-11 20:54:36 +08:00
twwu e16a3ef396 Merge branch 'feat/support-agent-sandbox' of https://github.com/langgenius/dify into feat/support-agent-sandbox 2026-02-11 17:52:16 +08:00
twwu 26ace0da95 Merge branch 'main' into feat/support-agent-sandbox 2026-02-11 17:50:35 +08:00