1.9.0
1.9.0 – Orchestrating Knowledge, Powering Workflows
🚀 Introduction
In Dify 1.9.0, we are introducing two major new capabilities: the Knowledge Pipeline and the Queue-based Graph Engine.
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.0or higher
- Dify version:
- How to Enable
- Enabled by default, no additional configuration required.
- Debug mode: set
DEBUG=trueto enable DebugLoggingLayer. - Execution limits:
WORKFLOW_MAX_EXECUTION_STEPS=500WORKFLOW_MAX_EXECUTION_TIME=1200WORKFLOW_CALL_MAX_DEPTH=10
- Worker configuration (optional):
WORKFLOW_MIN_WORKERS=1WORKFLOW_MAX_WORKERS=10WORKFLOW_SCALE_UP_THRESHOLD=3WORKFLOW_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
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=trueto view detailed logs. - Use DebugLoggingLayer to record events.
- Add custom monitoring via GraphEngineLayer.
- Enable
Future Plans
This 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:uv run flask transform-datasource-credentials
Docker Compose Deployments
- Back up your customized docker-compose YAML file (optional)
cd docker
cp docker-compose.yaml docker-compose.yaml.$(date +%s).bak
- Get the latest code from the main branch
git checkout 1.9.0
git pull origin 1.9.0
- Stop the service. Please execute in the docker directory
docker compose down
- Back up data
tar -cvf volumes-$(date +%s).tgz volumes
- Upgrade services
docker compose up -d
- Migrate data after the container starts
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:
git checkout 1.9.0
- Update Python dependencies:
cd api
uv sync
- Then, let's run the migration script:
uv run flask db upgrade
uv run flask transform-datasource-credentials
[!IMPORTANT] If you are currently using version
v2.0.0-beta.1orv2.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.
# in Dify envrionment :`v2.0.0-beta.1` or `v2.0.0-beta.2`
uv run flask db downgrade cf7c38a32b2d
# in Dify envrionment :`v1.9.0`
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 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://g
These notes run past the length kept in the archive. The rest is on the publisher’s page.