Name | Modified | Size | Downloads / Week |
---|---|---|---|
Parent folder | |||
1.9.0 - Orchestrating Knowledge, Powering Workflows source code.tar.gz | 2025-09-22 | 20.4 MB | |
1.9.0 - Orchestrating Knowledge, Powering Workflows source code.zip | 2025-09-22 | 24.4 MB | |
README.md | 2025-09-22 | 43.6 kB | |
Totals: 3 Items | 44.8 MB | 4 |
🚀 Introduction
In Dify 1.9.0, we are introducing two major new capabilities: the Knowledge Pipeline and the Queue-based Graph Engine.
This is a beta release, and we hope to explore these improvements together with you and gather your feedback. The Knowledge Pipeline provides a modularized and extensible workflow for knowledge ingestion and processing, while the Queue-based Graph Engine makes workflow execution more robust and controllable. We believe these will help you build and debug AI applications more smoothly, and we look forward to your experiences to help us continuously improve.
📚 Knowledge Pipeline
✨ Introduction
With the brand-new orchestration interface for knowledge pipelines, we introduce a fundamental architectural upgrade that reshapes how document processing are designed and executed, providing a more modular and flexible workflow that enables users to orchestrate every stage of the pipeline. Enhanced with a wide range of powerful plugins available in the marketplace, it empowers users to flexibly integrate diverse data sources and processing tools. Ultimately, this architecture enables building highly customized, domain-specific RAG solutions that meet enterprises’ growing demands for scalability, adaptability, and precision.
❓ Why Do We Need It?
Previously, Dify's RAG users still encounter persistent challenges in real-world adoption — from inaccurate knowledge retrieval and information loss to limited data integration and extensibility. Common pain points include: - 🔗 restricted integration of data sources - 🖼️ missing critical elements such as tables and images - ✂️ suboptimal chunking results
All of them lead to poor answer quality and hinder the model's overall performance.
In response, we reimagined RAG in Dify as an open and modular architecture, enabling developers, integrators, and domain experts to build document processing pipelines tailored to their specific requirements—from data ingestion to chunk storage and retrieval.
🛠️ Core Capabilities
🧩 Knowledge Pipeline Architecture
The Knowledge Pipeline is a visual, node-based orchestration system dedicated to document ingestion. It provides a customizable way to automate complex document processing, enabling fine-grained transformations and bridging raw content with structured, retrievable knowledge. Developers can build workflows step by step, like assembling puzzle pieces, making document handling easier to observe and adjust.
📑 Templates & Pipeline DSL
- ⚡ Start quickly with official templates
- 🔄 Customize and share pipelines by importing/exporting via DSL for easier reusability and collaboration
🔌 Customizable Data Sources & Tools
Each knowledge base can support multiple data sources. You can seamlessly integrate local files, online documents, cloud drives, and web crawlers through a plugin-based ingestion framework. Developers can extend the ecosystem with new data-source plugins, while marketplace processors handle specialized use cases like formulas, spreadsheets, and image parsing — ensuring accurate ingestion and structured representation.
🧾 New Chunking Strategies
In addition to General and Parent-Child modes, the new Q&A Processor plugin supports Q&A structures. This expands coverage for more use cases, balancing retrieval precision with contextual completeness.
🖼️ Image Extraction & Retrieval
Extract images from documents in multiple formats, store them as URLs in the knowledge base, and enable mixed text-image outputs to improve LLM-generated answers.
🧪 Test Run & Debugging Support
Before publishing a pipeline, you can: - ▶️ Execute a single step or node independently - 🔍 Inspect intermediate variables in detail - 👀 Preview string variables as Markdown in the variable inspector
This provides safe iteration and debugging at every stage.
🔄 One-Click Migration from Legacy Knowledge Bases
Seamlessly convert existing knowledge bases into the Knowledge Pipeline architecture with a single action, ensuring smooth transition and backward compatibility.
🌟 Why It Matters
The Knowledge Pipeline makes knowledge management more transparent, debuggable, and extensible. It is not the endpoint, but a foundation for future enhancements such as multimodal retrieval, human-in-the-loop collaboration, and enterprise-level data governance. We’re excited to see how you apply it and share your feedback.
⚙️ Queue-based Graph Engine
❓ Why Do We Need It?
Previously, designing workflows with parallel branches often led to: - 🌀 Difficulty managing branch states and reproducing errors - ❌ Insufficient debugging information - 🧱 Rigid execution logic lacking flexibility
These issues reduced the usability of complex workflows. To solve this, we redesigned the execution engine around queue scheduling, improving management of parallel tasks.
🛠️ Core Capabilities
📋 Queue Scheduling Model
All tasks enter a unified queue, where the scheduler manages dependencies and order. This reduces errors in parallel execution and makes topology more intuitive.
🎯 Flexible Execution Start Points
Execution can begin at any node, supporting partial runs, resumptions, and subgraph invocations.
🌊 Stream Processing Component
A new ResponseCoordinator handles streaming outputs from multiple nodes, such as token-by-token LLM generation or staged results from long-running tasks.
🕹️ Command Mechanism
With the CommandProcessor, workflows can be paused, resumed, or terminated during execution, enabling external control.
🧩 GraphEngineLayer
A new plugin layer that allows extending engine functionality without modifying core code. It can monitor states, send commands, and support custom monitoring.
Quickstart
- Prerequisites
- Dify version:
1.9.0
or higher - How to Enable
- Enabled by default, no additional configuration required.
- Debug mode: set
DEBUG=true
to enable DebugLoggingLayer. - Execution limits:
WORKFLOW_MAX_EXECUTION_STEPS=500
WORKFLOW_MAX_EXECUTION_TIME=1200
WORKFLOW_CALL_MAX_DEPTH=10
- Worker configuration (optional):
WORKFLOW_MIN_WORKERS=1
WORKFLOW_MAX_WORKERS=10
WORKFLOW_SCALE_UP_THRESHOLD=3
WORKFLOW_SCALE_DOWN_IDLE_TIME=30
- Applies to all workflows.
More Controllable Parallel Branches
Execution Flow:
Start ─→ Unified Task Queue ─→ WorkerPool Scheduling
├─→ Branch-1 Execution
└─→ Branch-2 Execution
↓
Aggregator
↓
End
Improvements:
1. All tasks enter a single queue, managed by the Dispatcher.
2. WorkerPool auto-scales based on load.
3. ResponseCoordinator manages streaming outputs, ensuring correct order.
Example: Command Mechanism
:::python
from core.workflow.graph_engine.manager import GraphEngineManager
# Send stop command
GraphEngineManager.send_stop_command(
task_id="workflow_task_123",
reason="Emergency stop: resource limit exceeded"
)
Note: pause/resume functionality will be supported in future versions.
Example: GraphEngineLayer
FAQ
-
Is this release focused on performance?\ No. The focus is on stability, clarity, and correctness of parallel branches. Performance improvements are a secondary benefit.
-
What events can be subscribed to?
-
Graph-level: GraphRunStartedEvent, GraphRunSucceededEvent, GraphRunFailedEvent, GraphRunAbortedEvent
- Node-level: NodeRunStartedEvent, NodeRunSucceededEvent, NodeRunFailedEvent, NodeRunRetryEvent
- Container nodes: IterationRunStartedEvent, IterationRunNextEvent, IterationRunSucceededEvent, LoopRunStartedEvent, LoopRunNextEvent, LoopRunSucceededEvent
-
Streaming output: NodeRunStreamChunkEvent
-
How can I debug workflow execution?
-
Enable
DEBUG=true
to view detailed logs. - Use DebugLoggingLayer to record events.
- Add custom monitoring via GraphEngineLayer.
Future Plans
This beta release is just the beginning. Upcoming improvements include:
- Debugging Tools: A visual interface to view execution states and variables in real time.
- Intelligent Scheduling: Optimize scheduling strategies using historical data.
- More Complete Command Support: Add Pause/Resume, breakpoint debugging.
- Human in the Loop: Support human intervention during execution.
- Subgraph Functionality: Enhance modularity and reusability.
- Multimodal Embedding: Support richer content types beyond text.
We look forward to your feedback and experiences to make the engine more practical.
Upgrade Guide
[!IMPORTANT]
After upgrading, you must run the following migration to transform existing datasource credentials. This step is required to ensure compatibility with the new version:bash uv run flask transform-datasource-credentials
Docker Compose Deployments
-
Back up your customized docker-compose YAML file (optional)
:::bash cd docker cp docker-compose.yaml docker-compose.yaml.$(date +%s).bak
-
Get the latest code from the main branch
:::bash git checkout 1.9.0 git pull origin 1.9.0
-
Stop the service. Please execute in the docker directory
:::bash docker compose down
-
Back up data
:::bash tar -cvf volumes-$(date +%s).tgz volumes
-
Upgrade services
:::bash docker compose up -d
-
Migrate data after the container starts
:::bash docker exec -it docker-api-1 uv run flask transform-datasource-credentials
Source Code Deployments
-
Stop the API server, Worker, and Web frontend Server.
-
Get the latest code from the release branch:
:::bash git checkout 1.9.0
-
Update Python dependencies:
:::bash cd api uv sync
-
Then, let's run the migration script:
:::bash uv run flask db upgrade uv run flask transform-datasource-credentials
[!IMPORTANT] If you are currently using version
v2.0.0-beta.1
orv2.0.0-beta.2
, you must run the following migration script to upgrade.[WARNING] This is a destructive operation that will result in data loss.
This migration script will permanently delete the following data: * All existing Knowledge Pipelines * All related Dataset Credentials
Please ensure you have backed up any necessary information before proceeding.
:::bash
uv run flask db downgrade cf7c38a32b2d
uv run flask db upgrade
uv run flask transform-datasource-credentials
- Finally, run the API server, Worker, and Web frontend Server again.
What's Changed
- fix: improve error logging for vector search operation in MyScale by @ZeroZ-lab in https://github.com/langgenius/dify/pull/25087
- Fix jsonschema compliance: use number instead of float by @hyongtao-code in https://github.com/langgenius/dify/pull/25049
- chore: Updated pnpm version to 10.15.1 by @17hz in https://github.com/langgenius/dify/pull/25065
- chore: comply to RFC 6750 and improve bearer token split by @NeatGuyCoding in https://github.com/langgenius/dify/pull/24955
- db internal server error by @xu15031483273 in https://github.com/langgenius/dify/pull/24947
- chore: enhance basedpyright-check script to support path arguments by @laipz8200 in https://github.com/langgenius/dify/pull/25108
- [Chore/Refactor] Improve type safety and resolve type checking issues by @laipz8200 in https://github.com/langgenius/dify/pull/25104
- make icon consistent in dropdown by @jubinsoni in https://github.com/langgenius/dify/pull/25109
- chore: improved trace info for generating conversation name by @IthacaDream in https://github.com/langgenius/dify/pull/25118
- Chore: remove dead code in class Graph by @hyongtao-code in https://github.com/langgenius/dify/pull/22791
- feat: add test containers based tests for workflow converter by @NeatGuyCoding in https://github.com/langgenius/dify/pull/25115
- fix: align text color in dark mode for config var type selector by @qiaofenlin in https://github.com/langgenius/dify/pull/25121
- fix: old custom model not display credential name by @hjlarry in https://github.com/langgenius/dify/pull/25112
- fix: TypeSelector component style by @17hz in https://github.com/langgenius/dify/pull/25124
- fix png jpeg export by @jubinsoni in https://github.com/langgenius/dify/pull/25110
- Minor fix: correct get_app_model mode for delete() by @hyongtao-code in https://github.com/langgenius/dify/pull/25082
- fix recommended apps reading from db logic by @TonloOO in https://github.com/langgenius/dify/pull/25071
- chore: Bump weaviate-client to latest v3 version by @DavideDelbianco in https://github.com/langgenius/dify/pull/25096
- fix: EndUser not bound to Session when plugin invokes callback by @IthacaDream in https://github.com/langgenius/dify/pull/25132
- feat(workflow): Allow paste node into nested block by @CrabSAMA in https://github.com/langgenius/dify/pull/24234
- feat: add TypeScript type safety for i18next with automated maintenance by @lyzno1 in https://github.com/langgenius/dify/pull/25152
- fix: update account profile by @IthacaDream in https://github.com/langgenius/dify/pull/25150
- fix: reset password by @IthacaDream in https://github.com/langgenius/dify/pull/25172
- Remove unused mypy script by @hyongtao-code in https://github.com/langgenius/dify/pull/25177
- [Chore/Refactor] Improve type checking configuration by @laipz8200 in https://github.com/langgenius/dify/pull/25185
- fix: Ensure the order of execution steps are correct when logging with Weave by W&B by @xprilion in https://github.com/langgenius/dify/pull/25183
- example regexp exec by @asukaminato0721 in https://github.com/langgenius/dify/pull/25200
- fix: Remove invalid key from firecrawl request payload. by @IMOKURI in https://github.com/langgenius/dify/pull/25190
- fix: chunk detail modal answer not wrap line by @lcedaw in https://github.com/langgenius/dify/pull/25203
- to RefObject by @asukaminato0721 in https://github.com/langgenius/dify/pull/25192
- Chore: clean some # type: ignore by @hyongtao-code in https://github.com/langgenius/dify/pull/25157
- refactor: improve plugin version validation to support full semantic versioning by @laipz8200 in https://github.com/langgenius/dify/pull/25161
- example of type button by @asukaminato0721 in https://github.com/langgenius/dify/pull/25224
- example of readonly by @asukaminato0721 in https://github.com/langgenius/dify/pull/25220
- fix: child chunk API 404 due to UUID type comparison by @kenwoodjw in https://github.com/langgenius/dify/pull/25234
- fix: loop node doesn't exit when it react the condition [#24717] by @coolfinish in https://github.com/langgenius/dify/pull/24844
- example of lazy by @asukaminato0721 in https://github.com/langgenius/dify/pull/25216
- example of remove useEffect by @asukaminato0721 in https://github.com/langgenius/dify/pull/25212
- add type annotations for Python SDK ChatClient Class by @EchterTimo in https://github.com/langgenius/dify/pull/24018
- feat: add reasoning format processing to LLMNode for <think> tag handling by @ultramancode in https://github.com/langgenius/dify/pull/23313
- Feature add test containers add document to index by @NeatGuyCoding in https://github.com/langgenius/dify/pull/25251
- add more dataclass by @asukaminato0721 in https://github.com/langgenius/dify/pull/25039
- remove bare list, dict, Sequence, None, Any by @asukaminato0721 in https://github.com/langgenius/dify/pull/25058
- feat(web): add Progressive Web App (PWA) support by @laipz8200 in https://github.com/langgenius/dify/pull/25274
- fix: standardize text color in install form to text-secondary by @laipz8200 in https://github.com/langgenius/dify/pull/25272
- chore: translate i18n files and update type definitions by @github-actions[bot] in https://github.com/langgenius/dify/pull/25260
- fix: resolve typing errors in configs module by @laipz8200 in https://github.com/langgenius/dify/pull/25268
- Feature add test containers batch clean document by @NeatGuyCoding in https://github.com/langgenius/dify/pull/25287
- example of no-unstable-context-value by @asukaminato0721 in https://github.com/langgenius/dify/pull/25279
- fix: a failed index to be marked as created by @NeatGuyCoding in https://github.com/langgenius/dify/pull/25290
- chore: ignore PWA generated files in version control by @laipz8200 in https://github.com/langgenius/dify/pull/25313
- fix: remove workflow file preview docs by @lyzno1 in https://github.com/langgenius/dify/pull/25318
- fix: update iteration node to use correct variable segment types by @laipz8200 in https://github.com/langgenius/dify/pull/25315
- Fix: correct queryKey in useBatchUpdateDocMetadata and add test case by @hyongtao-code in https://github.com/langgenius/dify/pull/25327
- fix: ensure consistent DSL export behavior across UI entry by @Kritoooo in https://github.com/langgenius/dify/pull/25317
- [Chore/Refactor] Improve type annotations in models module by @laipz8200 in https://github.com/langgenius/dify/pull/25281
- keep add and remove the same by @asukaminato0721 in https://github.com/langgenius/dify/pull/25277
- Refactor:upgrade react19 ref as props by @zyileven in https://github.com/langgenius/dify/pull/25225
- more assert by @asukaminato0721 in https://github.com/langgenius/dify/pull/24996
- fix: 'curr_message_tokens' where it is not associated with a value [#25307] by @qxo in https://github.com/langgenius/dify/pull/25308
- chore: translate i18n files and update type definitions by @github-actions[bot] in https://github.com/langgenius/dify/pull/25334
- Fix: Parameter Extractor Uses Correct Prompt for Prompt Mode in Chat Models by @ding113 in https://github.com/langgenius/dify/pull/24636
- add more typing by @asukaminato0721 in https://github.com/langgenius/dify/pull/24949
- chore: remove weird account login by @zalcit in https://github.com/langgenius/dify/pull/22247
- feat: add test containers based tests for clean dataset task by @NeatGuyCoding in https://github.com/langgenius/dify/pull/25341
- feat: add MCP server headers support [#22718] by @Cluas in https://github.com/langgenius/dify/pull/24760
- Minor fix: correct PrecessRule typo by @hyongtao-code in https://github.com/langgenius/dify/pull/25346
- chore: translate i18n files and update type definitions by @github-actions[bot] in https://github.com/langgenius/dify/pull/25349
- fix: ensure Performance Tracing button visible when no tracing provid… by @Kritoooo in https://github.com/langgenius/dify/pull/25351
- feat: email register refactor by @zyssyz123 in https://github.com/langgenius/dify/pull/25344
- Feature add test containers batch create segment to index by @NeatGuyCoding in https://github.com/langgenius/dify/pull/25306
- fix: Incorrect URL Parameter Parsing Causes user_id Retrieval Error by @joeyhacker in https://github.com/langgenius/dify/pull/25261
- feat: enable dsl export encrypt dataset id or not by @kenwoodjw in https://github.com/langgenius/dify/pull/25102
- Revert "feat: email register refactor" by @zyssyz123 in https://github.com/langgenius/dify/pull/25367
- refactor: update pyrightconfig.json to use ignore field for better type checking configuration by @laipz8200 in https://github.com/langgenius/dify/pull/25373
- Fix/disable no constant binary expression by @MatriQ in https://github.com/langgenius/dify/pull/25311
- Fix: use correct maxLength prop for verification code input by @hyongtao-code in https://github.com/langgenius/dify/pull/25371
- fix: Fixed the X-axis scroll bar issue in the LLM node settings panel by @hudenghui in https://github.com/langgenius/dify/pull/25357
- fix: tenant_id was not specific when retrieval end-user in plugin backwards invocation wraps by @Yeuoly in https://github.com/langgenius/dify/pull/25377
- minor fix: some translation mismatch by @NeatGuyCoding in https://github.com/langgenius/dify/pull/25386
- Support Anchor Scroll In The Output Node by @yinuu in https://github.com/langgenius/dify/pull/25364
- example of uuid by @asukaminato0721 in https://github.com/langgenius/dify/pull/25380
- feat: add test containers based tests for clean notion document task by @NeatGuyCoding in https://github.com/langgenius/dify/pull/25385
- fix(container-test): batch create segment position sort by @Nov1c444 in https://github.com/langgenius/dify/pull/25394
- Feat/credential policy by @GareArc in https://github.com/langgenius/dify/pull/25151
- fix: credential not allow to use in load balancing by @zxhlyh in https://github.com/langgenius/dify/pull/25401
- fix(mcp): current_user not being set in MCP requests by @Nov1c444 in https://github.com/langgenius/dify/pull/25393
- Fix flask response: 200 -> {}, 200 by @hyongtao-code in https://github.com/langgenius/dify/pull/25404
- feat: Add customized json schema validation by @WTW0313 in https://github.com/langgenius/dify/pull/25408
- Fix:About the error problem of creating an empty knowledge base interface in service_api by @ttz12345 in https://github.com/langgenius/dify/pull/25398
- feat: change history by supplementary node information by @AllesOderNicht in https://github.com/langgenius/dify/pull/25294
- fix: avatar is not updated after setted by @iamjoel in https://github.com/langgenius/dify/pull/25414
- Revert "example of remove useEffect" by @crazywoola in https://github.com/langgenius/dify/pull/25418
- add typing to all wraps by @asukaminato0721 in https://github.com/langgenius/dify/pull/25405
- Fix: judgement of open in explore by @JzoNgKVO in https://github.com/langgenius/dify/pull/25420
- Fix: Use --fix flag instead of --fix-only in autofix workflow by @laipz8200 in https://github.com/langgenius/dify/pull/25425
- Add lib test by @ZeroZ-lab in https://github.com/langgenius/dify/pull/25410
- refactor: update pyrightconfig to scan all API files by @laipz8200 in https://github.com/langgenius/dify/pull/25429
- fix(mcp): properly handle arrays containing both numbers and strings by @Nov1c444 in https://github.com/langgenius/dify/pull/25430
- Chore: thanks to bump-pydantic by @hyongtao-code in https://github.com/langgenius/dify/pull/25437
- Fix basedpyright type errors by @laipz8200 in https://github.com/langgenius/dify/pull/25435
- fix: imporve the condition for stopping the think timer. by @17hz in https://github.com/langgenius/dify/pull/25365
- add rule for strenum by @asukaminato0721 in https://github.com/langgenius/dify/pull/25445
- Fix: Add Password Validation to Account Creation by @newtonjose in https://github.com/langgenius/dify/pull/25382
- Feature add test containers create segment to index task by @NeatGuyCoding in https://github.com/langgenius/dify/pull/25450
- fix: inner_api get_user_tenant by @IthacaDream in https://github.com/langgenius/dify/pull/25462
- test: imporve by @ZeroZ-lab in https://github.com/langgenius/dify/pull/25461
- refactor: Migrate part of the console basic API module to Flask-RESTX by @liugddx in https://github.com/langgenius/dify/pull/24732
- update sql in batch by @asukaminato0721 in https://github.com/langgenius/dify/pull/24801
- fix: Remove sticky positioning from workflow component fields by @WTW0313 in https://github.com/langgenius/dify/pull/25470
- Fix 500 in dataset page. by @Eric-Guo in https://github.com/langgenius/dify/pull/25474
- Feat/enteprise cd by @GareArc in https://github.com/langgenius/dify/pull/25485
- Feat/enteprise cd by @GareArc in https://github.com/langgenius/dify/pull/25508
- chore: support Zendesk widget by @nite-knite in https://github.com/langgenius/dify/pull/25517
- security(api): fix privilege escalation vulnerability in model config and chat message APIs by @QuantumGhost in https://github.com/langgenius/dify/pull/25518
- feat: add test containers based tests for deal dataset vector index by @NeatGuyCoding in https://github.com/langgenius/dify/pull/25545
- fix: app name overflow by @JeeekXY in https://github.com/langgenius/dify/pull/25551
- Fix log time display bug by @liqigang63 in https://github.com/langgenius/dify/pull/25475
- test: remove print code by @ZeroZ-lab in https://github.com/langgenius/dify/pull/25481
- Fix: correct has_more pagination logic in get_conversational_variable by @hyongtao-code in https://github.com/langgenius/dify/pull/25484
- feat: add test containers based tests for delete segment from index task by @NeatGuyCoding in https://github.com/langgenius/dify/pull/25564
- fix: delete get upload file endpoint by @WTW0313 in https://github.com/langgenius/dify/pull/25543
- add autofix pnpm by @asukaminato0721 in https://github.com/langgenius/dify/pull/25557
- Fixes [#25530] by @zhuzeyu22 in https://github.com/langgenius/dify/pull/25531
- chore(deps): bump mermaid from 11.4.1 to 11.10.0 in /web by @dependabot[bot] in https://github.com/langgenius/dify/pull/25521
- Remove redundant parse_args call in WorkflowByIdApi.patch by @hyongtao-code in https://github.com/langgenius/dify/pull/25498
- use autospec=True in mock by @asukaminato0721 in https://github.com/langgenius/dify/pull/25497
- fix: single step system file error by @Nov1c444 in https://github.com/langgenius/dify/pull/25533
- fix(date-picker): handle string date to avoid crash by @JarsirLiu in https://github.com/langgenius/dify/pull/25522
- Fix/disable no unsafe optional chaining by @MatriQ in https://github.com/langgenius/dify/pull/25553
- fix: Support passing the default app mode when creating an app by @Kurumi1997 in https://github.com/langgenius/dify/pull/25142
- Force update search method to keyword_search by @ZombieBlue in https://github.com/langgenius/dify/pull/25464
- Feat/email register refactor by @zyssyz123 in https://github.com/langgenius/dify/pull/25369
- fix: login security issue frontend by @iamjoel in https://github.com/langgenius/dify/pull/25571
- refactor: centralize default end user session ID constant by @Yeuoly in https://github.com/langgenius/dify/pull/25416
- chore: translate i18n files and update type definitions by @github-actions[bot] in https://github.com/langgenius/dify/pull/25575
- fix: filter temporary edges from workflow draft sync by @JQSevenMiao in https://github.com/langgenius/dify/pull/25442
- refactor: update API routes and documentation for console endpoints by @liugddx in https://github.com/langgenius/dify/pull/25554
- fix segment deletion race condition by @kenwoodjw in https://github.com/langgenius/dify/pull/24408
- feat: add type integer to VarType by @jingfelix in https://github.com/langgenius/dify/pull/25500
- fix close button cannot be clicked when the browser page is zoomed out by @chengjoey in https://github.com/langgenius/dify/pull/25584
- fix: Cannot modify values when startNode has defaultValue by @17hz in https://github.com/langgenius/dify/pull/25595
- chore: adopt StrEnum and auto() for some string-typed enums by @Kritoooo in https://github.com/langgenius/dify/pull/25129
- feat(stress-test): add comprehensive stress testing suite using Locust by @laipz8200 in https://github.com/langgenius/dify/pull/25617
- Feature add test containers disable segment from index task by @NeatGuyCoding in https://github.com/langgenius/dify/pull/25631
- fix: Multiple UX improvements for GotoAnything command palette by @lyzno1 in https://github.com/langgenius/dify/pull/25637
- [Test] speed up Hypothesis strategies to avoid too_slow by @hyongtao-code in https://github.com/langgenius/dify/pull/25623
- feat: add circular scrolling to GotoAnything command menu by @lyzno1 in https://github.com/langgenius/dify/pull/25662
- fix: allow empty values in Variable Inspector by @yoichiojima-2 in https://github.com/langgenius/dify/pull/25644
- feat: add test containers based tests for disable segments from index task by @NeatGuyCoding in https://github.com/langgenius/dify/pull/25660
- feat: enhance Makefile with code quality commands and default help by @laipz8200 in https://github.com/langgenius/dify/pull/25655
- example for all by @asukaminato0721 in https://github.com/langgenius/dify/pull/25666
- chore: translate i18n files and update type definitions by @github-actions[bot] in https://github.com/langgenius/dify/pull/25645
- bugfix: The randomly generated email by Faker actually corresponded to an existing account in the test database, causing the test to fail. by @liugddx in https://github.com/langgenius/dify/pull/25646
- improve type hints using typing.Literal and add type annotations by @EchterTimo in https://github.com/langgenius/dify/pull/25641
- chore: bump pnpm version to v10.16.0 by @lyzno1 in https://github.com/langgenius/dify/pull/25640
- optimize _merge_splits function by using enumerate instead of manual index tracking by @ChasePassion in https://github.com/langgenius/dify/pull/25680
- [Chore/Refactor] use all to specify export member. by @ritoban23 in https://github.com/langgenius/dify/pull/25681
- feat: user message support generate prompt by @iamjoel in https://github.com/langgenius/dify/pull/25689
- refactor: update API routes and documentation for app and datasets endpoints by @liugddx in https://github.com/langgenius/dify/pull/25628
- dependabot by @asukaminato0721 in https://github.com/langgenius/dify/pull/25677
- chore(deps): bump transformers from 4.53.3 to 4.56.1 in /api by @dependabot[bot] in https://github.com/langgenius/dify/pull/25696
- chore(deps): bump clickzetta-connector-python from 0.8.102 to 0.8.104 in /api by @dependabot[bot] in https://github.com/langgenius/dify/pull/25697
- chore(deps-dev): bump sass from 1.89.2 to 1.92.1 in /web by @dependabot[bot] in https://github.com/langgenius/dify/pull/25698
- chore(deps): bump scheduler from 0.23.2 to 0.26.0 in /web by @dependabot[bot] in https://github.com/langgenius/dify/pull/25699
- chore(deps-dev): bump @next/bundle-analyzer from 15.5.0 to 15.5.3 in /web by @dependabot[bot] in https://github.com/langgenius/dify/pull/25704
- chore(deps): bump @lexical/text from 0.30.0 to 0.35.0 in /web by @dependabot[bot] in https://github.com/langgenius/dify/pull/25705
- chore: add ast-grep rule to convert Optional[T] to T | None by @laipz8200 in https://github.com/langgenius/dify/pull/25560
- fix: resolve devalue prototype pollution vulnerability by @laipz8200 in https://github.com/langgenius/dify/pull/25709
- Release/e-1.8.1 by @GarfieldDai in https://github.com/langgenius/dify/pull/25613
- fix(mcp): prevent masked headers from overwriting real values by @quicksandznzn in https://github.com/langgenius/dify/pull/25722
- fix(web): custom-tool output_schema.properties missing type by @chengjoey in https://github.com/langgenius/dify/pull/25731
- correct typos . by @zhanluxianshen in https://github.com/langgenius/dify/pull/25717
- chore: translate i18n files and update type definitions by @github-actions[bot] in https://github.com/langgenius/dify/pull/25713
- fix(tests): resolve order dependency in disable_segments_from_index_task tests by @laipz8200 in https://github.com/langgenius/dify/pull/25737
- Bugfix: When i change the loop variable, 'Loop Termination Condition' wi… by @minhuaF in https://github.com/langgenius/dify/pull/25695
- Feature: add test containers document indexing task by @NeatGuyCoding in https://github.com/langgenius/dify/pull/25684
- chat remove transparency from chat bubble in dark mode by @jubinsoni in https://github.com/langgenius/dify/pull/24921
- ruff check preview by @asukaminato0721 in https://github.com/langgenius/dify/pull/25653
- Enhance LLM model configuration validation to include active status c… by @GareArc in https://github.com/langgenius/dify/pull/25759
- refactor: remove Claude-specific references from documentation files by @laipz8200 in https://github.com/langgenius/dify/pull/25760
- Fix/lindorm vdb optimize by @AlwaysBluer in https://github.com/langgenius/dify/pull/25748
- Fix incorrect API endpoint routing from PR [#25628] by @laipz8200 in https://github.com/langgenius/dify/pull/25778
- fix: remove billing cache when add or delete app or member by @zyssyz123 in https://github.com/langgenius/dify/pull/25885
- feat: knowledge pipeline by @laipz8200 in https://github.com/langgenius/dify/pull/25360
- fix: handle None description in MCP tool transformation by @Nov1c444 in https://github.com/langgenius/dify/pull/25872
- feat(api/commands): add migrate-oss to migrate from Local/OpenDAL to … by @quicksandznzn in https://github.com/langgenius/dify/pull/25828
- chore: improve opendal storage and ensure closing file after reading files in
load_stream
method by @bowenliang123 in https://github.com/langgenius/dify/pull/25874 - chore: add missing template translations in ja-JP by @lyzno1 in https://github.com/langgenius/dify/pull/25892
- fix: update Python base image to use bullseye variant by @ZeroZ-lab in https://github.com/langgenius/dify/pull/25895
- fix: datasource pinned list by @zxhlyh in https://github.com/langgenius/dify/pull/25896
- fix: workflow logs list by @zxhlyh in https://github.com/langgenius/dify/pull/25903
- chore(workflows): remove redundant eslint command from style workflow by @17hz in https://github.com/langgenius/dify/pull/25900
- perf(web): optimize ESLint performance with concurrency flag and remove oxlint by @17hz in https://github.com/langgenius/dify/pull/25899
- chore: Update the value of sys.dialogue_count to start from 1. by @Nov1c444 in https://github.com/langgenius/dify/pull/25905
- refactor: simplify portal interactions and manage state in Configure component by @WTW0313 in https://github.com/langgenius/dify/pull/25906
- feat: make SQLALCHEMY_POOL_TIMEOUT configurable by @saurabhy27 in https://github.com/langgenius/dify/pull/25468
- fix: remote code execution in email endpoints by @wylswz in https://github.com/langgenius/dify/pull/25753
- fix: use invalid last run by @zxhlyh in https://github.com/langgenius/dify/pull/25911
- fix(api): fix single stepping variable loading by @QuantumGhost in https://github.com/langgenius/dify/pull/25908
- fix: workflow header style by @zxhlyh in https://github.com/langgenius/dify/pull/25922
- fix: Message => str by @crazywoola in https://github.com/langgenius/dify/pull/25876
- fix(datasets): retrieval_model null issue when updating dataset info by @quicksandznzn in https://github.com/langgenius/dify/pull/25907
- fix: rollback aliyun_trace icon by @hieheihei in https://github.com/langgenius/dify/pull/25921
- refactor: replace useInvalid with useInvalidCustomizedTemplateList by @WTW0313 in https://github.com/langgenius/dify/pull/25924
- fix(api): enhance data handling in RagPipelineDslService to filter credentials by @Mairuis in https://github.com/langgenius/dify/pull/25926
- refactor: replace print statements with proper logging by @laipz8200 in https://github.com/langgenius/dify/pull/25773
- fix(makefile): correct uv project path for lint target by @laipz8200 in https://github.com/langgenius/dify/pull/25818
- Fix: replace stdout prints with debug logging by @laipz8200 in https://github.com/langgenius/dify/pull/25931
- chore: update post_create_command.sh to use dynamic workspace root for aliases by @ZeroZ-lab in https://github.com/langgenius/dify/pull/25913
- Fix: enforce editor-only access to chat message logs by @laipz8200 in https://github.com/langgenius/dify/pull/25936
- Chore: correct inconsistent logging and typo by @hyongtao-code in https://github.com/langgenius/dify/pull/25945
- style: update GotoAnything component styling by @ZeroZ-lab in https://github.com/langgenius/dify/pull/25929
- fix: refresh datasource list after install datasource by @zxhlyh in https://github.com/langgenius/dify/pull/25949
- Refactor WorkflowService to handle missing default credentials gracef… by @GareArc in https://github.com/langgenius/dify/pull/25960
- fix: update details display to conditionally show creator information by @WTW0313 in https://github.com/langgenius/dify/pull/25952
- fix: enhance model parameter handling with advanced mode support and localization updates by @WTW0313 in https://github.com/langgenius/dify/pull/25963
- fix: undefined match the wrong output schema by @iamjoel in https://github.com/langgenius/dify/pull/25971
- Run import-linter within make lint by @laipz8200 in https://github.com/langgenius/dify/pull/25933
- chore: translate i18n files and update type definitions by @github-actions[bot] in https://github.com/langgenius/dify/pull/25964
- fix: ensure original response are maintained by yielding text messages in ApiTool (#23456) by @Yeuoly in https://github.com/langgenius/dify/pull/25973
- feat(goto-anything): add RAG pipeline node search by @ZeroZ-lab in https://github.com/langgenius/dify/pull/25948
- fix: resolve chat sidebar UI bugs for hover panel and dropdown menu by @lyzno1 in https://github.com/langgenius/dify/pull/25813
- Chore: remove dead code in
datasource.utils
by @hyongtao-code in https://github.com/langgenius/dify/pull/25984 - fix: Statistics, like workflows, do not include debug data. by @jiangbo721 in https://github.com/langgenius/dify/pull/25979
- chore(deps): bump authlib from 1.3.1 to 1.6.4 in /api by @dependabot[bot] in https://github.com/langgenius/dify/pull/26015
- chore(deps): bump negotiator from 0.6.4 to 1.0.0 in /web by @dependabot[bot] in https://github.com/langgenius/dify/pull/26012
- feat:support selecting different ftparser for OceanBase. by @longbingljw in https://github.com/langgenius/dify/pull/25970
- Fix: use data.type instead of type when checking datasource node by @hyongtao-code in https://github.com/langgenius/dify/pull/25965
- chore(deps-dev): bump eslint-plugin-storybook from 0.11.6 to 9.0.7 in /web by @dependabot[bot] in https://github.com/langgenius/dify/pull/26011
- Add Full-Text & Hybrid Search Support to Baidu Vector DB and Update SDK, Closes [#25982] by @WayneCao in https://github.com/langgenius/dify/pull/25983
- fix: pass operation name to onUpdate callback in StatusItem component by @WTW0313 in https://github.com/langgenius/dify/pull/26019
- chore(deps): bump abcjs from 6.5.1 to 6.5.2 in /web by @dependabot[bot] in https://github.com/langgenius/dify/pull/26018
- Fix: correct regex for file-preview URL re-signing by @hyongtao-code in https://github.com/langgenius/dify/pull/25620
- Align dev workflow branch triggers by @laipz8200 in https://github.com/langgenius/dify/pull/26029
- fix: workflow by @zyssyz123 in https://github.com/langgenius/dify/pull/26030
- chore(api): upgade Gevent to 25.9.1 by @QuantumGhost in https://github.com/langgenius/dify/pull/26026
- chore(deps): bump boto3-stubs from 1.40.29 to 1.40.35 in /api by @dependabot[bot] in https://github.com/langgenius/dify/pull/26014
- fix: comment out unused segmentation rule properties in RuleDetail component by @WTW0313 in https://github.com/langgenius/dify/pull/26031
- fix: Correctly map source_url to preview_url in file fields by @lei-jia-xing in https://github.com/langgenius/dify/pull/25957
- chore: remove mistakenly added trash file by @Stream29 in https://github.com/langgenius/dify/pull/26041
- chore(api): adjust monkey patching in gunicorn.conf.py by @QuantumGhost in https://github.com/langgenius/dify/pull/26056
- fix: iteration and loop node single step run by @Nov1c444 in https://github.com/langgenius/dify/pull/26036
- chore(api): bump version by @QuantumGhost in https://github.com/langgenius/dify/pull/25917
- fix: Ensure compatibility with old provider name when updating model credentials by @hjlarry in https://github.com/langgenius/dify/pull/26017
- fix preview url by @JohnJyong in https://github.com/langgenius/dify/pull/26059
New Contributors
- @xu15031483273 made their first contribution in https://github.com/langgenius/dify/pull/24947
- @CrabSAMA made their first contribution in https://github.com/langgenius/dify/pull/24234
- @xprilion made their first contribution in https://github.com/langgenius/dify/pull/25183
- @IMOKURI made their first contribution in https://github.com/langgenius/dify/pull/25190
- @coolfinish made their first contribution in https://github.com/langgenius/dify/pull/24844
- @EchterTimo made their first contribution in https://github.com/langgenius/dify/pull/24018
- @Kritoooo made their first contribution in https://github.com/langgenius/dify/pull/25317
- @qxo made their first contribution in https://github.com/langgenius/dify/pull/25308
- @ding113 made their first contribution in https://github.com/langgenius/dify/pull/24636
- @Cluas made their first contribution in https://github.com/langgenius/dify/pull/24760
- @joeyhacker made their first contribution in https://github.com/langgenius/dify/pull/25261
- @yinuu made their first contribution in https://github.com/langgenius/dify/pull/25364
- @ttz12345 made their first contribution in https://github.com/langgenius/dify/pull/25398
- @AllesOderNicht made their first contribution in https://github.com/langgenius/dify/pull/25294
- @newtonjose made their first contribution in https://github.com/langgenius/dify/pull/25382
- @JeeekXY made their first contribution in https://github.com/langgenius/dify/pull/25551
- @liqigang63 made their first contribution in https://github.com/langgenius/dify/pull/25475
- @JarsirLiu made their first contribution in https://github.com/langgenius/dify/pull/25522
- @Kurumi1997 made their first contribution in https://github.com/langgenius/dify/pull/25142
- @JQSevenMiao made their first contribution in https://github.com/langgenius/dify/pull/25442
- @chengjoey made their first contribution in https://github.com/langgenius/dify/pull/25584
- @yoichiojima-2 made their first contribution in https://github.com/langgenius/dify/pull/25644
- @ChasePassion made their first contribution in https://github.com/langgenius/dify/pull/25680
- @ritoban23 made their first contribution in https://github.com/langgenius/dify/pull/25681
- @minhuaF made their first contribution in https://github.com/langgenius/dify/pull/25695
- @saurabhy27 made their first contribution in https://github.com/langgenius/dify/pull/25468
- @longbingljw made their first contribution in https://github.com/langgenius/dify/pull/25970
- @lei-jia-xing made their first contribution in https://github.com/langgenius/dify/pull/25957
Full Changelog: https://github.com/langgenius/dify/compare/1.8.1...1.9.0