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
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
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
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
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
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
hjlarry
5cfb3d70e1
feat: mentioned user email can directly open app
2026-02-14 15:08:20 +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
Varun Chawla
f233e2036f
fix: metadata batch edit silently fails due to split transactions and swallowed exceptions ( #32041 )
2026-02-12 12:59:59 +08:00
Junyan Chin
2bf767d5f7
feat: add Creators Platform helper for DSL upload and OAuth redirect (Vibe Kanban) ( #32232 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-11 21:10:48 +08:00
twwu
26ace0da95
Merge branch 'main' into feat/support-agent-sandbox
2026-02-11 17:50:35 +08:00
hj24
7e0bccbbf0
fix: update index to optimize message clean performance ( #32238 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-02-11 16:07:52 +08:00
yyh
29406dbc46
Merge remote-tracking branch 'origin/main' into feat/support-agent-sandbox
...
# Conflicts:
# api/core/app/task_pipeline/easy_ui_based_generate_task_pipeline.py
2026-02-11 12:44:05 +08:00
QuantumGhost
704ee40caa
fix(api): excessive high CPU usage caused by RedisClientWrapper ( #32212 )
...
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2026-02-11 09:49:29 +08:00
Harry
102310f5b9
feat: add FILES_API_URL for storage file ticket API endpoints
2026-02-10 15:36:40 +08:00
zyssyz123
9c0b01ef20
fix: When the user is a non-sandbox user and has a paid balance, the … ( #32173 )
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-02-10 15:36:40 +08:00
zyssyz123
7dabc03a08
fix: When the user is a non-sandbox user and has a paid balance, the … ( #32173 )
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-02-10 12:08:23 +08:00
yyh
78acba7a35
Merge remote-tracking branch 'origin/main' into feat/support-agent-sandbox
2026-02-10 11:07:45 +08:00
Dream
1a050c9f86
fix(api): clean up orphaned pending accounts on member removal ( #32151 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-02-10 10:17:27 +08:00
yyh
db0c527ce8
Merge remote-tracking branch 'origin/main' into feat/support-agent-sandbox
2026-02-09 18:43:04 +08:00
Vlad D
fa763216d0
fix(api): register knowledge pipeline service API routes ( #32097 )
...
Co-authored-by: Crazywoola <100913391+crazywoola@users.noreply.github.com >
Co-authored-by: FFXN <31929997+FFXN@users.noreply.github.com >
2026-02-09 17:43:36 +08:00
Harry
83c260ee4c
Merge remote-tracking branch 'origin/main' into feat/support-agent-sandbox
2026-02-09 17:00:56 +08:00
盐粒 Yanli
a303560b98
feat: Service API - add end-user lookup endpoint ( #32015 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-02-09 15:39:16 +08:00
QuantumGhost
a1fc280102
feat: Human Input Node ( #32060 )
...
The frontend and backend implementation for the human input node.
Co-authored-by: twwu <twwu@dify.ai >
Co-authored-by: JzoNg <jzongcode@gmail.com >
Co-authored-by: yyh <92089059+lyzno1@users.noreply.github.com >
Co-authored-by: zhsama <torvalds@linux.do >
2026-02-09 14:57:23 +08:00
盐粒 Yanli
5b06203ef5
feat: Service API - add end-user lookup endpoint ( #32015 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-02-09 14:01:22 +08:00
yyh
7d2e630fc8
Merge remote-tracking branch 'origin/main' into feat/support-agent-sandbox
2026-02-08 13:27:02 +08:00
kongwenyan
4bd80683a4
refactor: remove unnecessary type: async_workflow_service.py ( #32081 )
2026-02-08 03:26:30 +09:00
yyh
d23a94982d
Merge remote-tracking branch 'origin/main' into feat/support-agent-sandbox
2026-02-08 01:30:21 +08:00
hjlarry
865b221ce6
fix: make sure restart server not get ghost online user
2026-02-07 09:48:07 +08:00
hjlarry
bb9ae66f81
fix: ensure leader online to accept graph change
2026-02-07 09:34:13 +08:00
Jyong
4430a1b3da
fix: batch delete document db session block ( #32062 )
2026-02-06 18:02:14 +08:00
Harry
c61129590d
fix: improve download filename handling in S3 storage and asset service
2026-02-06 16:32:55 +08:00
zyssyz123
2c9430313d
fix: redis for api token ( #31861 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: hj24 <mambahj24@gmail.com >
2026-02-06 16:25:27 +08:00
Harry
469fda8327
refactor: optimize unique name assignment for batch upload nodes using a stack
2026-02-05 15:15:37 +08:00
Harry
a750d87ae4
feat: ensure unique names for asset nodes during creation and batch upload
2026-02-05 15:15:37 +08:00
yyh
61cfbd1c8d
Merge remote-tracking branch 'origin/main' into feat/support-agent-sandbox
2026-02-05 10:51:28 +08:00
Xiyuan Chen
c56ad8e323
feat: account delete cleanup ( #31519 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-02-04 17:59:41 -08:00
Stream
e0082dbf18
revert: add tools for output in agent mode
...
feat: hide output tools and improve JSON formatting for structured output
feat: hide output tools and improve JSON formatting for structured output
fix: handle prompt template correctly to extract selectors for step run
fix: emit StreamChunkEvent correctly for sandbox agent
chore: better debug message
fix: incorrect output tool runtime selection
fix: type issues
fix: align parameter list
fix: align parameter list
fix: hide internal builtin providers from tool list
vibe: implement file structured output
vibe: implement file structured output
fix: refix parameter for tool
fix: crash
fix: crash
refactor: remove union types
fix: type check
Merge branch 'feat/structured-output-with-sandbox' into feat/support-agent-sandbox
fix: provide json as text
fix: provide json as text
fix: get AgentResult correctly
fix: provides correct prompts, tools and terminal predicates
fix: provides correct prompts, tools and terminal predicates
fix: circular import
feat: support structured output in sandbox and tool mode
2026-02-04 21:43:53 +08:00
Harry
c111079624
Merge remote-tracking branch 'origin/main' into feat/support-agent-sandbox
...
# Conflicts:
# api/core/file/file_manager.py
# api/core/workflow/graph_engine/response_coordinator/coordinator.py
# api/core/workflow/nodes/llm/node.py
# api/core/workflow/nodes/tool/tool_node.py
# api/pyproject.toml
# web/package.json
# web/pnpm-lock.yaml
2026-02-04 13:15:49 +08:00
Asuka Minato
f5d6c250ed
fix: "refactor: port api/controllers/console/tag/tags.py to ov3" ( #31887 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-02-03 22:18:53 +08:00
Harry
10f5d9e7ad
fix: stream never ruff
2026-02-03 14:42:30 +08:00
Harry
49befa6d3f
feat: enhance download URL generation with optional filename parameter
...
Added support for an optional `download_filename` parameter in the `get_download_url` and `get_download_urls` methods across various storage classes. This allows users to specify a custom filename for downloads, improving user experience by enabling better file naming during downloads. Updated related methods and tests to accommodate this new functionality.
2026-02-03 14:40:14 +08:00
Asuka Minato
47f8de3f8e
refactor: port api/controllers/console/app/annotation.py api/controllers/console/explore/trial.py api/controllers/console/workspace/account.py api/controllers/console/workspace/members.py api/controllers/service_api/app/annotation.py to basemodel ( #31833 )
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2026-02-03 09:59:00 +08:00
Asuka Minato
491fa9923b
refactor: port api/controllers/console/datasets/data_source.py /datasets/metadata.py /service_api/dataset/metadata.py /nodes/agent/agent_node.py api/core/workflow/nodes/datasource/datasource_node.py api/services/dataset_service.py to match case ( #31836 )
2026-02-02 21:03:16 +09:00
FFXN
41177757e6
fix: summary index bug ( #31810 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Jyong <76649700+JohnJyong@users.noreply.github.com >
Co-authored-by: zxhlyh <jasonapring2015@outlook.com >
Co-authored-by: Yansong Zhang <916125788@qq.com >
Co-authored-by: hj24 <mambahj24@gmail.com >
Co-authored-by: CodingOnStar <hanxujiang@dify.ai >
Co-authored-by: CodingOnStar <hanxujiang@dify.com >
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2026-02-02 09:45:17 +08:00