Commit Graph

5704 Commits

Author SHA1 Message Date
Stream
8850a0c5c7
feat: hide output tools and improve JSON formatting for structured output 2026-02-04 15:42:55 +08:00
Stream
4466688e97
feat: hide output tools and improve JSON formatting for structured output 2026-02-04 15:12:50 +08:00
Sean Kenneth Doherty
778aabb485
refactor(api): replace reqparse with Pydantic models in trial.py (#31789)
Co-authored-by: Asuka Minato <i@asukaminato.eu.org>
2026-02-04 14:36:52 +08:00
hjlarry
dee3e026a6 chore: use AccountWithRole instead of account_with_role_fields 2026-02-04 14:11:32 +08:00
Harry
75d2148ef6 fix: add account_with_role_fields for enhanced user data representation 2026-02-04 13:54:04 +08:00
Harry
60a5d5c67c refactor: replace reqparse with Pydantic models in dsl and sandbox_providers 2026-02-04 13:23:07 +08:00
Harry
8c6139fa21 chore: update pnpm-lock and remove unused import after merge 2026-02-04 13:16:55 +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
Stream
7535b67423
fix: handle prompt template correctly to extract selectors for step run
idk why. This may cause further issues.
2026-02-04 07:23:02 +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
Stream
9172997f24
fix: emit StreamChunkEvent correctly for sandbox agent 2026-02-03 21:52:15 +08:00
Harry
b6b2af45a7 refactor: use jsonable_encoder for consistent JSON response formatting in SandboxFilesApi 2026-02-03 18:32:49 +08:00
QuantumGhost
8c3e77cd0c
chore: update version to 1.12.0 (#31878) 2026-02-03 18:08:15 +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
Stephen Zhou
b55c0ec4de
fix: revert "refactor: api/controllers/console/feature.py (test)" (#31850) 2026-02-03 12:26:47 +08:00
dependabot[bot]
8b50c0d920
chore(deps-dev): bump types-psutil from 7.0.0.20251116 to 7.2.2.20260130 in /api (#31814)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-03 09:59:29 +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
Asuka Minato
ce2c41bbf5
refactor: port api/controllers/console/datasets/datasets_document.py api/controllers/service_api/app/annotation.py api/core/app/app_config/easy_ui_based_app/agent/manager.py api/core/app/apps/pipeline/pipeline_generator.py api/core/workflow/nodes/knowledge_retrieval/knowledge_retrieval_node.py to match case (#31832) 2026-02-02 19:07:30 +09:00
Asuka Minato
920db69ef2
refactor: if to match (#31799) 2026-02-02 18:12:03 +09:00
Asuka Minato
ac222a4dd4
refactor: port api/controllers/console/app/audio.py api/controllers/console/app/message.py api/controllers/console/auth/data_source_oauth.py api/controllers/console/auth/forgot_password.py api/controllers/console/workspace/endpoint.py (#30680) 2026-02-02 18:03:07 +09:00
Stream
beba89cc0a
chore: better debug message 2026-02-02 16:39:50 +08:00
Asuka Minato
840a975fef
refactor: add test for api/controllers/console/workspace/tool_pr… (#29886)
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-02 14:54:16 +09:00
QuantumGhost
9fb72c151c
refactor: "chore: update version to 1.12.0" (#31817) 2026-02-02 11:18:18 +08: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
yyh
4f826b4641
refactor(typing): use enum types for workflow status fields (#31792) 2026-02-02 09:41:34 +08:00
Stream
6ea16837ff
fix: incorrect output tool runtime selection 2026-02-02 09:09:22 +08:00
Stream
987ea0f764
fix: type issues
Signed-off-by: Stream <Stream_2@qq.com>
2026-02-02 06:45:21 +08:00
Stream
303e1e3eb0
fix: align parameter list
Signed-off-by: Stream <Stream_2@qq.com>
2026-02-02 06:40:33 +08:00
Stream
85b9661b82
fix: align parameter list
Signed-off-by: Stream <Stream_2@qq.com>
2026-02-02 06:37:36 +08:00
Stream
5e808f6f31
fix: hide internal builtin providers from tool list 2026-02-01 22:46:55 +08:00
Asuka Minato
3216b67bfa
refactor: examples of use match case (#31312)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-02-01 19:25:54 +09:00
Asuka Minato
7828508b30
refactor: remove all reqparser (#29289)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
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: Stephen Zhou <38493346+hyoban@users.noreply.github.com>
2026-02-01 13:43:14 +09:00
Stream
726fc1851f
vibe: implement file structured output 2026-02-01 02:49:48 +08:00
Stream
b66db183c9
vibe: implement file structured output 2026-02-01 02:47:28 +08:00
Stream
03774a7bd0
fix: refix parameter for tool 2026-01-31 21:53:08 +08:00
盐粒 Yanli
b8cb5f5ea2
refactor(typing): Fixup typing A2 - workflow engine & nodes (#31723)
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Asuka Minato <i@asukaminato.eu.org>
2026-01-31 18:00:56 +09:00
Stream
d353feb172
fix: crash 2026-01-31 01:51:25 +08:00
Stream
db56fe546b
fix: crash 2026-01-31 01:21:53 +08:00
盐粒 Yanli
5bc99995fc
fix(api): align graph protocols for response streaming (#31777) 2026-01-31 01:57:36 +09:00
Stream
9ad49340bf
refactor: remove union types
Signed-off-by: Stream <Stream_2@qq.com>
2026-01-31 00:41:23 +08:00
Harry
a87560d667 fix: revert stupid changes 2026-01-30 23:56:24 +08:00
Harry
b67d0d8c45 refactor(sandbox): update sandbox service to use sandbox_id instead of workflow_execution_id
- Modified the SandboxService and related app generators to replace workflow_execution_id with sandbox_id for improved clarity and consistency in sandbox handling.
- Adjusted the AdvancedChatAppGenerator and WorkflowAppGenerator to align with the new parameter naming convention.
2026-01-30 22:45:28 +08:00
Harry
bb4dd85ae3 feat(sandbox): refactor sandbox file handling to include app_id
- Updated API routes to use app_id instead of sandbox_id for file operations, aligning with user-specific sandbox workspaces.
- Enhanced SandboxFileService and related classes to accommodate app_id in file listing and download functionalities.
- Refactored storage key generation for sandbox archives to include app_id, ensuring proper file organization.
- Adjusted frontend contracts and services to reflect the new app_id parameter in API calls.
2026-01-30 22:45:28 +08:00
Asuka Minato
a433d5ed36
refactor: port api/controllers/console/tag/tags.py to ov3 (#31767)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-01-30 22:40:14 +09:00
Asuka Minato
b58d9e030a
refactor: init_validate.py to v3 (#31457) 2026-01-30 22:39:02 +09:00
Asuka Minato
a4db322440
chore: update restx to 1.3.2 (#31229) 2026-01-30 21:24:49 +08:00
Stream
0265cc0403
fix: type check
Signed-off-by: Stream <Stream_2@qq.com>
2026-01-30 21:17:19 +08:00
zhsama
c1de8f75ca fix: Fix missing current_user variable in conversation variable API 2026-01-30 20:49:14 +08:00
lif
24b280a0ed
fix(i18n): improve Chinese translation of Max Tokens (#31771)
Signed-off-by: majiayu000 <1835304752@qq.com>
2026-01-30 20:19:35 +08:00
yyh
dbc32af932
Merge remote-tracking branch 'origin/main' into feat/support-agent-sandbox
# Conflicts:
#	api/app.py
#	api/controllers/console/app/generator.py
#	api/core/llm_generator/llm_generator.py
#	web/eslint-suppressions.json
#	web/pnpm-lock.yaml
#	web/tailwind-common-config.ts
2026-01-30 20:08:35 +08:00
QuantumGhost
90fe9abab7
revert: revert human input relevant code (#31766)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-01-30 19:18:49 +08:00
Asuka Minato
ba568a634d
refactor: api/controllers/console/remote_files.py to ov3 (#31466)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-01-30 19:32:20 +09:00
Cursx
f33d99ea01
refactor: api/controllers/console/feature.py (test) (#31562)
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>
2026-01-30 19:22:01 +09:00
QuantumGhost
f90fa2b186
fix(api): fix workflow state persistence issue (#31752)
Ensure workflow pause configuration is correctly set for all entrypoints.
2026-01-30 17:44:29 +08:00
Harry
40b58dfcde feat(storage): enhance AWS S3 client configuration for presigned URLs
- Updated the AWS S3 client initialization to enforce SigV4 for presigned URLs, ensuring consistent header signing behavior across S3-compatible providers.
- Introduced a dedicated configuration for the S3 client to manage addressing styles and signature versions more effectively.
2026-01-30 17:34:40 +08:00
Harry
3f5f893e6c feat: add exists method to sandbox sources for existence checks
- Implemented the `exists` method in `SandboxFileSource` and its subclasses to verify the availability of sandbox sources.
- Updated `SandboxFileService` to utilize the new `exists` method for improved error handling when listing files and downloading files.
- Removed the previous check for storage existence in `archive_source.py` and replaced it with the new method.
2026-01-30 17:34:40 +08:00
盐粒 Yanli
5a7dfd15b8
fix: Drain non-stream plugin chunk iterator (#31564) 2026-01-30 16:54:56 +08:00
Asuka Minato
89abea26f9
refactor: rm some dict api/controllers/console/app/generator.py api/core/llm_generator/llm_generator.py (#31709)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-01-30 17:37:20 +09:00
Jax
95d68437d1
fix(redis): Redis Cluster eval errors by adding hash tags to trigger debug keys (#31701) 2026-01-30 16:05:02 +08:00
Novice
27664ec37a
feat: pull variable add sandbox file support 2026-01-30 11:21:08 +08:00
FFXN
5a3ceb240e
feat: Summary index for knowledge. (#31719)
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-01-30 11:08:09 +08:00
QuantumGhost
4e7226dc39
chore: update version to 1.12.0 (#31726)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-01-30 11:07:44 +08:00
Stream
c577e2a5ec
Merge branch 'feat/structured-output-with-sandbox' into feat/support-agent-sandbox 2026-01-30 10:49:43 +08:00
Stream
cb4391f705
fix: provide json as text 2026-01-30 10:47:58 +08:00
Stream
0035587fed
fix: provide json as text
Signed-off-by: Stream <Stream_2@qq.com>
2026-01-30 10:45:14 +08:00
Stream
171551cfb3
fix: get AgentResult correctly 2026-01-30 10:42:29 +08:00
hjlarry
ac9985321e feat: send email when user mentioned in comment 2026-01-30 10:39:30 +08:00
QuantumGhost
03e3acfc71
feat(api): Human Input Node (backend part) (#31646)
The backend part of the human in the loop (HITL) feature and relevant architecture / workflow engine changes.

Signed-off-by: yihong0618 <zouzou0208@gmail.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: -LAN- <laipz8200@outlook.com>
Co-authored-by: 盐粒 Yanli <yanli@dify.ai>
Co-authored-by: CrabSAMA <40541269+CrabSAMA@users.noreply.github.com>
Co-authored-by: Stephen Zhou <38493346+hyoban@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: yihong <zouzou0208@gmail.com>
Co-authored-by: Joel <iamjoel007@gmail.com>
2026-01-30 10:18:49 +08:00
Stream
2008768cb9
fix: provides correct prompts, tools and terminal predicates
Signed-off-by: Stream <Stream_2@qq.com>
2026-01-30 08:44:26 +08:00
Stream
22b0a08a5f
fix: provides correct prompts, tools and terminal predicates
Signed-off-by: Stream <Stream_2@qq.com>
2026-01-30 08:15:42 +08:00
Stream
ec9ade62f5
fix: circular import 2026-01-30 07:11:20 +08:00
Stream
7926024569
feat: support structured output in sandbox and tool mode
Signed-off-by: Stream <Stream_2@qq.com>
2026-01-30 06:46:52 +08:00
Stream
869b43a95b
refactor: remove streaming structured output unused function
Signed-off-by: Stream <Stream_2@qq.com>
2026-01-30 03:47:22 +08:00
盐粒 Yanli
5bf0251554
chore(typing): reduce ty excludes for A1 (#31721)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-01-30 02:38:57 +08:00
Harry
d3fc457331 optimize: brand new cli api mechanism 2026-01-30 02:36:18 +08:00
Harry
cb12ada689 refactor all 2026-01-30 02:36:18 +08:00
Harry
806016244f refactor(storage): integrate SilentStorage for improved file handling
- Replaced direct storage references with SilentStorage in various components to enhance fallback mechanisms.
- Updated storage key formats for sandbox archives and files to improve clarity and consistency.
- Refactored related classes and methods to utilize the new SandboxFilePath structure.
- Adjusted unit tests to reflect changes in the StorageTicket model and its serialization methods.
2026-01-30 02:36:18 +08:00
Stream
edce6d4152
refactor: remove streaming structured output from invoke_llm_with_structured_output
Signed-off-by: Stream <Stream_2@qq.com>
2026-01-29 23:42:06 +08:00
Stream
749cebe60d
refactor: remove streaming structured output from invoke_llm_with_pydantic_model
Signed-off-by: Stream <Stream_2@qq.com>
2026-01-29 23:42:06 +08:00
Harry
6be800e14f refactor(storage): replace storage proxy with ticket-based URL system
- Removed the storage proxy controller and its associated endpoints for file download and upload.
- Updated the file controller to use the new storage ticket service for generating download and upload URLs.
- Modified the file presign storage to fallback to ticket-based URLs instead of signed proxy URLs.
- Enhanced unit tests to validate the new ticket generation and retrieval logic.
2026-01-29 23:39:24 +08:00
Harry
f52fb919d1 refactor(storage): remove signer, using general file storage
- Removed unused app asset download and upload endpoints, along with sandbox archive and file download endpoints.
- Updated imports in the file controller to reflect the removal of these endpoints.
- Simplified the generator.py file by consolidating the code context field definition.
- Enhanced the storage layer with a unified presign wrapper for better handling of presigned URLs.
2026-01-29 23:01:12 +08:00
Harry
4aea4071a8 fix: monkey patch
- Moved the import of Queue and Empty from the top of the file to within the QueueTransportReadCloser class.
- This change improves encapsulation and ensures that the imports are only available where needed.
2026-01-29 22:33:31 +08:00
Harry
f198540357 feat(bundle): manifest-driven import with sandbox upload
- Add BundleManifest with dsl_filename for 100% tree ID restoration
- Implement two-step import flow: prepare (get upload URL) + confirm
- Use sandbox for zip extraction and file upload via presigned URLs
- Store import session in Redis with 1h TTL
- Add SandboxUploadItem for symmetric download/upload API
- Remove legacy source_zip_extractor, inline logic in service
- Update frontend to use new prepare/confirm API flow
2026-01-29 22:33:31 +08:00
yyh
f1321765c6
fix: migrations 2026-01-29 21:43:00 +08:00
yyh
6ee9078349
Merge remote-tracking branch 'origin/main' into feat/support-agent-sandbox
# Conflicts:
#	api/.env.example
#	api/uv.lock
#	web/app/components/app/create-app-modal/index.tsx
#	web/app/components/app/create-from-dsl-modal/index.tsx
#	web/app/components/apps/app-card.tsx
#	web/pnpm-lock.yaml
2026-01-29 21:25:28 +08:00
yihong
8aeef36e2d
feat: use xdist to make make test faster (#30824)
Signed-off-by: yihong0618 <zouzou0208@gmail.com>
2026-01-29 18:17:40 +08:00
Novice
9d99675a1d
chore: enhance NestedNodeGraphService with additional node data fields 2026-01-29 17:46:43 +08:00
盐粒 Yanli
62f46fc55c
chore(ty): Bootstrap ty type checking for api (#31681) 2026-01-29 16:45:07 +08:00
-LAN-
2626e773d9
chore: Set plugin schema cache TTL to 1h (#31708) 2026-01-29 16:41:09 +08:00
-LAN-
0934b89da9
chore(import-linter): add a rule to make model_runtime isolate (#31706) 2026-01-29 15:06:40 +08:00
Asuka Minato
3bcfb4031a
refactor: ExporleBanner to TypeBase (#31698) 2026-01-29 15:34:14 +09:00
Nie Ronghua
ceb6914793
refactor(model): Refactor plugin model schema cache to be process-global to prevent redundant Daemon API calls (#31689)
Signed-off-by: -LAN- <laipz8200@outlook.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: -LAN- <laipz8200@outlook.com>
2026-01-29 14:31:15 +08:00
盐粒 Yanli
dbfc47e8b0
fix: SSRF in WordExtractor URL download (credit to @EaEa0001 ) (#31678)
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2026-01-29 14:01:21 +08:00
FFXN
c2473d85dc
feat: Add summary index for knowledge. (#31625)
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-01-29 13:47:35 +08:00
yyh
8a96f9f8df
Merge remote-tracking branch 'origin/main' into feat/support-agent-sandbox 2026-01-29 11:44:01 +08:00
eux
b48a10d7ec
feat(qdrant): implement full-text search with multi-keyword support (#31658) 2026-01-29 11:12:18 +08:00
fenglin
91532ef429
fix: add list type support for ToolInput constant value in tool node (#31276)
Co-authored-by: qiaofenglin <qiaofenglin@baidu.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2026-01-29 10:49:29 +08:00
Harry
0495dc5085 feat(skill): tool switcher for llm node
- Added an `enabled` field to `DifyCliToolConfig` and `ToolDependency` to manage tool activation status.
- Updated `DifyCliConfig` to handle tool dependencies more effectively, ensuring only enabled tools are processed.
- Refactored `SkillCompiler` to utilize `tool_id` for better identification of tools and improved handling of disabled tools.
- Introduced a new method `_extract_disabled_tools` in `LLMNode` to streamline the extraction of disabled tools from node data.
- Enhanced metadata parsing to account for tool enablement, improving overall tool management.
2026-01-29 01:21:18 +08:00