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 |
|
![autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>](/assets/img/avatar_default.png) 
|
0841b4c663
|
refactor(api): migrate tools, account, workflow and plugin services to SQLAlchemy 2.0 (#34966)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
|
2026-04-12 01:45:27 +00:00 |
|
 wangxiaoleiandGitHub
|
65d66768c1
|
fix: fix tool output duplicate (#34962)
|
2026-04-11 15:07:31 +00:00 |
|
 YBoyandGitHub
|
992ac38d0d
|
refactor(api): type ToolInvokeMeta.to_dict with TypedDict (#34942)
|
2026-04-11 00:37:10 +00:00 |
|
![autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>](/assets/img/avatar_default.png) 
|
8633b2f1f7
|
refactor(tools): replace redundant dict[str, str] with EmojiIconDict (#34786)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
|
2026-04-10 18:53:05 +08:00 |
|
![autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>](/assets/img/avatar_default.png) 
|
488fcd4f83
|
refactor(services): replace Union with | syntax in service layer (batch 2) (#34906)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
|
2026-04-10 07:05:31 +00:00 |
|
 corevibe555andGitHub
|
07c573e52f
|
refactor(api): replace Optional/Union with | syntax, remove dead AnyFunction (#34894)
|
2026-04-10 05:46:05 +00:00 |
|
 PulakeshandGitHub
|
d19f47b458
|
fix(api): replace assert isinstance with proper runtime type checks in message transformers (#34865)
|
2026-04-10 03:19:52 +00:00 |
|
![autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>](/assets/img/avatar_default.png) 
|
d042cbc62e
|
fix: fix remove_leading_symbols remove [ (#34832)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
|
2026-04-09 08:22:09 +00:00 |
|
 dataCenter430andGitHub
|
5f53748d07
|
refactor: convert ToolProviderType if/elif to match/case (#30001) (#34794)
|
2026-04-09 05:48:40 +00:00 |
|
![autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>](/assets/img/avatar_default.png) 
|
b5acc8e392
|
refactor: migrate session.query to select API in core tools (#34814)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
|
2026-04-09 05:44:49 +00:00 |
|
 Jake ArmstrongandGitHub
|
c19a822e1b
|
refactor: deduplicate DefaultRetrievalModelDict TypedDict into retrieval_service.py (#34758)
|
2026-04-09 04:13:04 +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 |
|
 dataCenter430andGitHub
|
fd2843b0fb
|
refactor: convert file-transfer-method-tools if/elif to match/case (#30001) (#34783)
|
2026-04-09 00:42:13 +00:00 |
|
 ![autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>](/assets/img/avatar_default.png) 
|
47b9d48f70
|
refactor: convert ToolProviderType if/elif to match/case (#30001) (#34768)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Asuka Minato <[email protected]>
|
2026-04-09 00:17:22 +00: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 |
|
 corevibe555andGitHub
|
c825d5dcf6
|
refactor(api): tighten types for Tenant.custom_config_dict and MCPToolProvider.headers (#34698)
|
2026-04-08 01:36:42 +00:00 |
|
 StatxcandGitHub
|
5aa2524d33
|
refactor(api): type I18nObject.to_dict with I18nObjectDict TypedDict (#34680)
|
2026-04-07 22:57:32 +00:00 |
|
 DreamandGitHub
|
89ce61cfea
|
refactor(api): replace json.loads with Pydantic validation in security and tools layers (#34380)
|
2026-04-07 12:11:51 +00:00 |
|
 ![autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>](/assets/img/avatar_default.png) 
|
364d7ebc40
|
refactor: core/tools, agent, callback_handler, encrypter, llm_generator, plugin, inner_api (#34205)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Asuka Minato <[email protected]>
|
2026-03-28 10:14:43 +00:00 |
|
![autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>](/assets/img/avatar_default.png) 
|
40591a7c50
|
refactor(api): use standalone graphon package (#34209)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
|
2026-03-27 21:05:32 +00:00 |
|
![autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>](/assets/img/avatar_default.png)  
|
66fab8722c
|
refactor: use EnumText for credential_type in TriggerSubscription (#34174)
Co-authored-by: Asuka Minato <[email protected]>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
|
2026-03-27 10:53:51 +00:00 |
|
 99andGitHub
|
52e7492cbc
|
refactor(api): rename dify_graph to graphon (#34095)
|
2026-03-25 21:58:56 +08:00 |
|
 ![autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>](/assets/img/avatar_default.png) 
|
56593f20b0
|
refactor(api): continue decoupling dify_graph from API concerns (#33580)
Signed-off-by: -LAN- <[email protected]>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: WH-2099 <[email protected]>
|
2026-03-25 20:32:24 +08:00 |
|
![autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>](/assets/img/avatar_default.png) 
|
d87263f7c3
|
refactor: select in console datasets document controller (#34029)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
|
2026-03-25 12:47:25 +09:00 |
|
 tmimmanuelandGitHub
|
2b6f761dfe
|
refactor: use EnumText for Conversation/Message invoke_from and from_source (#33901)
|
2026-03-23 16:03:35 +09:00 |
|
 tmimmanuelandGitHub
|
5b9cb55c45
|
refactor: use EnumText for MessageFeedback and MessageFile columns (#33738)
|
2026-03-20 01:13:26 +09:00 |
|
![autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>](/assets/img/avatar_default.png) 
|
485da15a4d
|
refactor(api): replace dict/Mapping with TypedDict in core/rag retrieval_service.py (#33615)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
|
2026-03-18 11:49:09 +09:00 |
|
 BitTobyandGitHub
|
0bc6c3a73e
|
refactor(api): replace dict/Mapping with TypedDict in core/tools (#33610)
|
2026-03-18 08:00:27 +09:00 |
|
 ![autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>](/assets/img/avatar_default.png) 
|
f795d24151
|
feat: Add Hologres as a VDB & FullText DB choice (#32830)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Crazywoola <[email protected]>
|
2026-03-15 20:55:02 +08:00 |
|
 -LAN-andGitHub
|
fb41b215c8
|
refactor(api): move workflow knowledge nodes and trigger nodes (#33445)
|
2026-03-15 15:24:59 +08:00 |
|
   ![autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>](/assets/img/avatar_default.png)  ![dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>](/assets/img/avatar_default.png) 
|
b170eabaf3
|
test: Unit test cases for core.tools module (#32447)
Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Asuka Minato <[email protected]>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: wangxiaolei <[email protected]>
Co-authored-by: akashseth-ifp <[email protected]>
Co-authored-by: mahammadasim <[email protected]>
|
2026-03-12 11:48:13 +08:00 |
|
![autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>](/assets/img/avatar_default.png) 
|
b9d05d3456
|
refactor: tool node decouple db (#33166)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
|
2026-03-10 01:47:15 +08:00 |
|
![autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>](/assets/img/avatar_default.png) 
|
bbfa28e8a7
|
refactor: file saver decouple db engine and ssrf proxy (#33076)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
|
2026-03-09 16:09:44 +08:00 |
|
 非法操作andGitHub
|
654e41d47f
|
fix: workflow_as_tool not work with json input (#32554)
|
2026-03-09 13:54:54 +08:00 |
|
 99andGitHub
|
c8688ec371
|
refactor(dify_graph): unify invoke and user enums source in workflow (#32873)
|
2026-03-03 15:05:20 +08:00 |
|
 -LAN-andGitHub
|
4fd6b52808
|
refactor(api): move model_runtime into dify_graph (#32858)
|
2026-03-02 20:15:32 +08:00 |
|
 -LAN-andGitHub
|
c917838f9c
|
refactor: move workflow package to dify_graph (#32844)
|
2026-03-02 18:42:30 +08:00 |
|
 ![copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>](/assets/img/avatar_default.png) 
|
baeea77c5b
|
fix: typo in WebScraper plugin description: "Scrapper" → "Scraper" (#32790)
Co-authored-by: copilot-swe-agent[bot] <[email protected]>
Co-authored-by: crazywoola <[email protected]>
|
2026-03-02 10:10:28 +08:00 |
|
 99andGitHub
|
a01de98721
|
refactor(workflow): decouple start node external dependencies (#32793)
|
2026-03-02 02:01:41 +08:00 |
|
 -LAN-andGitHub
|
a694533fc9
|
refactor(workflow): inject credential/model access ports into LLM nodes (#32569)
Signed-off-by: -LAN- <[email protected]>
|
2026-02-27 14:36:41 +08:00 |
|
![autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>](/assets/img/avatar_default.png) ![gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>](/assets/img/avatar_default.png) 
|
daa923278e
|
fix: type checking error in parser (#32510)
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>
|
2026-02-26 01:24:59 +09:00 |
|
 Tyson CungandGitHub
|
84533cbfe0
|
fix: resolve pyright bad-index errors in parser.py (#32507)
|
2026-02-24 17:29:17 +09:00 |
|
![autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>](/assets/img/avatar_default.png) 
|
7656d514b9
|
refactor(workflow-file): move core.file to core.workflow.file (#32252)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
|
2026-02-16 22:38:19 +08:00 |
|
 weiguang liandGitHub
|
14251b249d
|
fix(api): include file marker for workflow tool file outputs (#32114)
|
2026-02-10 16:51:12 +08:00 |
|
    
|
a1fc280102
|
feat: Human Input Node (#32060)
The frontend and backend implementation for the human input node.
Co-authored-by: twwu <[email protected]>
Co-authored-by: JzoNg <[email protected]>
Co-authored-by: yyh <[email protected]>
Co-authored-by: zhsama <[email protected]>
|
2026-02-09 14:57:23 +08:00 |
|
![autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>](/assets/img/avatar_default.png) 
|
483db22b97
|
feat: extract mcp tool usage (#31802)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
|
2026-02-09 09:52:14 +08:00 |
|
 ![gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>](/assets/img/avatar_default.png) ![autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>](/assets/img/avatar_default.png)  
|
7828508b30
|
refactor: remove all reqparser (#29289)
Co-authored-by: Copilot <[email protected]>
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 <[email protected]>
|
2026-02-01 13:43:14 +09:00 |
|
 ![autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>](/assets/img/avatar_default.png) ![gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>](/assets/img/avatar_default.png) 
|
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 <[email protected]>
|
2026-01-31 18:00:56 +09:00 |
|
![autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>](/assets/img/avatar_default.png) 
|
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 |
|