zyssyz123
3e0578a1c6
Merge branch 'main' into feat/new-agent-node
2026-04-13 13:43:47 +08:00
Jake Armstrong
5a446f8200
refactor(api): deduplicate dataset controller schemas into controller_schemas.py ( #34756 )
2026-04-13 05:33:20 +00:00
Jake Armstrong
9121f24181
refactor(api): deduplicate TextToAudioPayload and MessageListQuery into controller_schemas.py ( #34757 )
2026-04-13 05:27:35 +00:00
NVIDIAN
e37aaa482d
refactor: migrate apikey from marshal_with/api.model to Pydantic BaseModel ( #34932 )
...
Co-authored-by: ai-hpc <ai-hpc@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-04-13 05:18:42 +00:00
NVIDIAN
a3170f744c
refactor: migrate app site from marshal_with/api.model to Pydantic BaseModel ( #34933 )
...
Co-authored-by: ai-hpc <ai-hpc@users.noreply.github.com>
2026-04-13 05:18:16 +00:00
NVIDIAN
ced3780787
refactor: migrate mcp_server from marshal_with/api.model to Pydantic BaseModel ( #34935 )
...
Co-authored-by: ai-hpc <ai-hpc@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-04-13 05:13:53 +00:00
NVIDIAN
6faf26683c
refactor: remove marshal_with and inline api.model from app_import ( #34934 )
...
Co-authored-by: ai-hpc <ai-hpc@users.noreply.github.com>
2026-04-13 05:13:15 +00:00
Yansong Zhang
c03b25a940
merge: resolve conflicts with origin/main
...
Conflicts resolved:
- workflow_app_runner.py: adopt main's DifyGraphInitContext pattern
- token_buffer_memory.py: adopt main's match/case, add AppMode.AGENT
- app_dsl_service.py: adopt main's match/case, add AppMode.AGENT
Made-with: Cursor
2026-04-13 12:52:56 +08:00
wdeveloper16
8436470fcb
refactor: replace bare dict with TypedDicts in annotation_service ( #34998 )
2026-04-13 03:46:33 +00:00
Ygor Leal
b5259a3a85
refactor(api): enable reportUntypedFunctionDecorator in pyright config ( #26412 ) ( #35031 )
2026-04-13 03:28:23 +00:00
Yansong Zhang
90cce7693f
revert: remove all sandbox and skill related code
...
Remove ~12,900 lines of sandbox/skill code that was ported from
feat/support-agent-sandbox. This reverts to direct tool execution
(the original behavior before sandbox integration).
Removed:
- core/sandbox/ (SandboxBuilder, bash tools, providers, initializers)
- core/skill/ (SkillManager, assembler, entities)
- core/virtual_environment/ (5 provider implementations)
- core/zip_sandbox/ (archive operations)
- core/app_assets/ (asset management)
- core/app_bundle/ (bundle management)
- controllers/cli_api/ (DifyCli callback endpoints)
- services/sandbox/ (provider service)
- services/skill_service, app_asset_service, app_bundle_service
- models/sandbox.py, app_asset.py
- bin/dify-cli-* (3 platform binaries)
- web sandbox-provider-page and service
- SandboxLayer, _resolve_sandbox_context, _invoke_tool_in_sandbox
- CliApiConfig, DIFY_SANDBOX_CONTEXT_KEY
- sandbox-related migrations
Preserved: All Agent V2 core functionality (agent-v2 node, strategy
engine, transparent upgrade, LLM remapping, memory, context, tools
via direct execution).
Made-with: Cursor
2026-04-13 10:42:36 +08:00
YBoy
6bacf7f953
refactor(api): type _serialize_full_content with FullContentDict TypedDict ( #35000 )
2026-04-13 00:51:26 +00:00
wdeveloper16
33bc58c9c2
refactor(api): migrate controllers to SQLAlchemy 2.0 select() API ( #34960 )
...
Co-authored-by: Asuka Minato <i@asukaminato.eu.org>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-04-11 15:30:19 +00:00
NVIDIAN
9069c01f9c
refactor: replace inline api.model with register_schema_models in billing ( #34928 )
...
Co-authored-by: ai-hpc <ai-hpc@users.noreply.github.com>
2026-04-11 04:01:03 +00:00
NVIDIAN
5ec387b644
refactor: replace inline api.model with Pydantic BaseModel in model_config ( #34930 )
...
Co-authored-by: ai-hpc <ai-hpc@users.noreply.github.com>
2026-04-11 00:53:13 +00:00
wangxiaolei
bcd738d2e6
fix: fix orm_exc.DetachedInstanceError ( #34904 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-04-10 07:13:59 +00:00
-LAN-
b90fe73c96
fix(api): prevent cross-tenant external API use-check disclosure ( #34744 )
2026-04-10 03:23:32 +00:00
Yansong Zhang
10bb276e97
fix(api): complete Docker sandbox tool execution pipeline
...
- Add linux/arm64 dify-cli binary for Docker containers
- Add DIFY_PORT config field for Docker socat forwarding
- Fix InvokeFrom.AGENT (doesn't exist) → InvokeFrom.DEBUGGER
in CLI API fetch/tools/batch endpoint
Full pipeline verified: Docker container → dify init → dify execute
→ CLI API callback → plugin invocation → result returned to stdout.
Made-with: Cursor
2026-04-10 11:06:54 +08:00
NVIDIAN
4d57f04a26
refactor: migrate console human_input_form from reqparse to PydanticBaseModel ( #34858 )
...
Co-authored-by: ai-hpc <ai-hpc@users.noreply.github.com>
2026-04-09 15:38:47 +00:00
NVIDIAN
ab3b305682
refactor: migrate web human_input_form from reqparse to Pydantic BaseModel ( #34859 )
...
Co-authored-by: ai-hpc <ai-hpc@users.noreply.github.com>
2026-04-09 15:38:16 +00:00
NVIDIAN
b8858708be
chore: remove commented-out reqparse code from rag_pipeline_workflow ( #34860 )
...
Co-authored-by: ai-hpc <ai-hpc@users.noreply.github.com>
2026-04-09 15:37:39 +00:00
aliworksx08
4c05316a7b
refactor(api): deduplicate DSL shared entities into dsl_entities.py ( #34762 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-04-09 06:04:18 +00:00
dataCenter430
3ea88dfc7f
refactor: convert appMode controllers if/elif to match/case ( #30001 ) ( #34789 )
2026-04-09 02:27:19 +00:00
Yansong Zhang
44491e427c
feat(api): enable all sandbox/skill controller routes and resolve dependencies (P0)
...
Resolve the full dependency chain to enable all previously disabled controllers:
Enabled routes:
- sandbox_files: sandbox file browser API
- sandbox_providers: sandbox provider management API
- app_asset: app asset management API
- skills: skill extraction API
- CLI API blueprint: DifyCli callback endpoints (/cli/api/*)
Dependencies extracted (64 files, ~8000 lines):
- models/sandbox.py, models/app_asset.py: DB models
- core/zip_sandbox/: zip-based sandbox execution
- core/session/: CLI API session management
- core/memory/: base memory + node token buffer
- core/helper/creators.py: helper utilities
- core/llm_generator/: context models, output models, utils
- core/workflow/nodes/command/: command node type
- core/workflow/nodes/file_upload/: file upload node type
- core/app/entities/: app_asset_entities, app_bundle_entities, llm_generation_entities
- services/: asset_content, skill, workflow_collaboration, workflow_comment
- controllers/console/app/error.py: AppAsset error classes
- core/tools/utils/system_encryption.py
Import fixes:
- dify_graph.enums -> graphon.enums in skill_service.py
- get_signed_file_url_for_plugin -> get_signed_file_url in cli_api.py
All 5 controllers verified: import OK, Flask starts successfully.
46 existing tests still pass.
Made-with: Cursor
2026-04-09 09:36:16 +08:00
dataCenter430
1c7cf44af4
refactor: convert SegmentType controllers if/elif to match/case ( #30001 ) ( #34784 )
2026-04-09 01:11:47 +00:00
dataCenter430
ce68f2cdc6
refactor: convert webapp auth type if/elif to match/case ( #30001 ) ( #34782 )
2026-04-09 00:16:44 +00:00
dataCenter430
a8fa552b3a
refactor: convert importStatus if/elif to match/case ( #30001 ) ( #34780 )
2026-04-09 00:04:47 +00:00
Jake Armstrong
bd257777a0
refactor(api): deduplicate workflow controller schemas into controller_schemas.py ( #34755 )
2026-04-08 23:49:04 +00:00
Yansong Zhang
0c7e7e0c4e
feat(api): port Sandbox + VirtualEnvironment + Skill system from feat/support-agent-sandbox (Phase 5-6)
...
Port the complete infrastructure for agent sandbox execution and skill system:
Sandbox & Virtual Environment (core/sandbox/, core/virtual_environment/):
- Sandbox entity with lifecycle management (ready/failed/cancelled states)
- SandboxBuilder with fluent API for configuring providers
- 5 VM providers: Local, SSH, Docker, E2B, AWS CodeInterpreter
- VirtualEnvironment base with command execution, file transfer, transport layers
- Channel transport: pipe, queue, socket implementations
- Bash session management and DifyCli binary integration
- Storage: archive storage, file storage, noop storage, presign storage
- Initializers: DifyCli, AppAssets, DraftAppAssets, Skills
- Inspector: file browser, archive/runtime source, script utils
- Security: encryption utils, debug helpers
Skill & App Assets (core/skill/, core/app_assets/, core/app_bundle/):
- Skill entity and manager
- App asset accessor, builder pipeline (file, skill builders)
- App bundle source zip extractor
- Storage and converter utilities
API Endpoints:
- CLI API blueprint (controllers/cli_api/) for sandbox callback
- Sandbox provider management (workspace/sandbox_providers)
- Sandbox file browser (console/sandbox_files)
- App asset management (console/app/app_asset)
- Skill management (console/app/skills)
- Storage file endpoints (controllers/files/storage_files)
Services:
- Sandbox service, provider service, file service
- App asset service, app bundle service
Config:
- CliApiConfig, CreatorsPlatformConfig, CollaborationConfig
- FILES_API_URL for sandbox file access
Note: Controller route registration temporarily commented out (marked TODO)
pending resolution of deep dependency chains (socketio, workflow_comment,
command node, etc.). Core sandbox modules are fully ported and syntax-validated.
110 files changed, 10,549 insertions.
Made-with: Cursor
2026-04-08 17:39:02 +08:00
Yansong Zhang
bebafaa346
fix(api): allow AGENT mode in console chat, message, and debug endpoints
...
Add AppMode.AGENT to mode checks discovered during E2E testing:
- Console chat-messages endpoint (ChatApi)
- Console chat stop endpoint (ChatMessageStopApi)
- Console message list and detail endpoints
- Advanced-chat debug run endpoints (5 in workflow.py)
- Advanced-chat workflow run endpoints (2 in workflow_run.py)
Made-with: Cursor
2026-04-08 13:27:42 +08:00
corevibe555
4d4265f531
refactor(api): deduplicate Pydantic models across fields and controllers ( #34718 )
2026-04-08 05:20:00 +00:00
Yansong Zhang
8f3a3ea03e
feat(api): enable Agent mode in workflow/service APIs and add default config (Phase 7)
...
Ensure new Agent apps (AppMode.AGENT) can access all workflow-related
APIs and Service API chat endpoints:
- Add AppMode.AGENT to 13 workflow controller mode checks
- Add AppMode.AGENT to 4 workflow_run controller mode checks
- Add AppMode.AGENT to workflow_draft_variable controller
- Add AppMode.AGENT to Service API chat, conversation, message endpoints
- Add AgentV2Node.get_default_config() with prompt templates and strategy defaults
- 46 unit tests all passing (8 new Phase 7 tests)
Old agent/agent-chat paths remain completely unchanged.
Made-with: Cursor
2026-04-08 12:41:37 +08:00
Yansong Zhang
96641a93f6
feat(api): add Agent V2 node and new Agent app type (Phase 1-3)
...
Introduce a new unified Agent V2 workflow node that combines LLM capabilities
with agent tool-calling loops, along with a new AppMode.AGENT for standalone
agent apps backed by single-node workflows.
Phase 1 — Agent Patterns:
- Add core/agent/patterns/ module (AgentPattern, FunctionCallStrategy,
ReActStrategy, StrategyFactory) ported from feat/support-agent-sandbox
- Add ExecutionContext, AgentLog, AgentResult entities
- Add Tool.to_prompt_message_tool() for LLM-consumable tool conversion
Phase 2 — Agent V2 Workflow Node:
- Add core/workflow/nodes/agent_v2/ (AgentV2Node, AgentV2NodeData,
AgentV2ToolManager, AgentV2EventAdapter)
- Register agent-v2 node type in DifyNodeFactory
- No-tools path: single LLM call (LLM Node equivalent)
- Tools path: FC/ReAct loop via StrategyFactory
Phase 3 — Agent App Type:
- Add AppMode.AGENT to model enum
- Add WorkflowGraphFactory for auto-generating start->agent_v2->answer graphs
- AppService.create_app() creates workflow draft for AGENT mode
- AppGenerateService.generate() routes AGENT to AdvancedChatAppGenerator
- Console API and DSL import/export support AGENT mode
- Default app template for AGENT mode
Old agent/agent-chat/LLM node paths are fully preserved.
38 unit tests all passing.
Made-with: Cursor
2026-04-08 12:31:23 +08:00
corevibe555
0ba66ab155
refactor(api): deduplicate shared controller request schemas into controller_schemas.py ( #34700 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-04-08 03:10:04 +00:00
carlos4s
ae9fcc2969
refactor: use sessionmaker in controllers, events, models, and tasks 1 ( #34693 )
2026-04-07 23:47:20 +00:00
corevibe555
624db69f12
refactor(api): remove duplicated RAG entities from services layer ( #34689 )
2026-04-07 23:36:59 +00:00
corevibe555
f8f7b0ec1a
refactor(api): deduplicate shared auth request payloads into auth_entities.py ( #34694 )
2026-04-07 22:51:11 +00:00
YBoy
485fc2c416
refactor(api): type Tenant custom config with TypedDict and tighten MCP headers type ( #34670 )
2026-04-07 13:18:19 +00:00
corevibe555
c2af415450
refactor(api): Extract shared ResponseModel ( #34633 )
2026-04-07 13:05:38 +00:00
Pulakesh
bceb0eee9b
refactor(api): migrate dict returns to TypedDicts in billing service ( #34649 )
2026-04-07 05:56:02 +00:00
YBoy
f67a811f7f
refactor: replace dict params with BaseModel payloads in TagService ( #34422 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-04-07 04:20:02 +00:00
aliworksx08
396b39dff9
refactor: migrate session.query to select API in console controllers ( #34607 )
2026-04-07 04:19:30 +00:00
YBoy
89e23456f0
refactor(api): type invitation detail with InvitationDetailDict TypedDict ( #34613 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-04-07 01:03:31 +00:00
Jake Armstrong
a39173c227
refactor(api): type notification response with NotificationResponseDict TypedDict ( #34616 )
2026-04-07 01:03:18 +00:00
Jake Armstrong
9081c46565
refactor(api): type upload file serialization with UploadFileDict TypedDict ( #34589 )
2026-04-06 11:34:52 +00:00
YBoy
9a6222f245
refactor(api): type webhook data extraction with RawWebhookDataDict TypedDict ( #34486 )
2026-04-03 02:24:17 +00:00
wangxiaolei
4cc5401d7e
fix: fix import dsl failed ( #34492 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-04-03 02:08:21 +00:00
Tim Ren
985b41c40b
fix(security): add tenant_id validation to prevent IDOR in data source binding ( #34456 )
...
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 13:17:02 +00:00
99
318a3d0308
refactor(api): tighten login and wrapper typing ( #34447 )
2026-04-02 09:36:58 +00:00
Sedo
43c48ba4d7
fix: add tenant/dataset ownership checks to prevent IDOR vulnerabilities ( #34436 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-04-02 05:45:20 +00:00