Impact Score: 5/10
Dify: v1.9.1 โ 1,000 Contributors, Infinite Gratitude
Source available โ automated, not human-reviewed
Component: dify ยท Channel: stable. Automated analysis, not a compatibility certification. How this works.
Analysis updated: 2026-11-01.
โก Executive Summary (TL;DR)
Dify 1.9.1. Source highlight: Congratulations on having our 1000th contributor!
Who Does This Impact? (Role-Based Analysis)
๐ป Software Engineers & Devs
Check the source notes against the package and APIs you use before upgrading.
๐ Product & Engineering Leads
Use the documented changes to assess relevance to your product; release frequency alone is not a quality measure.
โ๏ธ DevOps & Security
Verify the target version, runtime requirements and rollback procedure in the official documentation.
โจ New Features & Capabilities (6)
- **Infrastructure & DevOps**:
- Next.js upgraded to 15.5, now leveraging Turbopack in development for a faster, more modern build pipeline by @17hz in #24346.
- Provided `X-Dify-Version` headers in marketplace API access for better traceability by @RockChinQ in #26210.
- Security reporting improvements, with new sec report workflow added by @crazywoola in #26313.
- **Pipelines & Engines**:
- Built-in pipeline templates now support language configuration, unlocking multilingual deployments by @WTW0313 in #26124.
โก Performance & Enhancements (3)
- improve: pooling httpx clients for requests to code sandbox and ssrf
- perf: provide X-Dify-Version for marketplace api access
- perf: distribute concurrent plugin auto upgrade tasks
๐ง Bug Fixes & Patches (6)
- **Debugging & Logging**:
- Fixed NodeRunRetryEvent debug logging not working properly in Graph Engine by @quicksandznzn in #26085.
- Fixed LLM node losing Flask context during parallel iterations, ensuring stable concurrent runs by @quicksandznzn in #26098.
- Fixed agent-strategy prompt generator error by @quicksandznzn in #26278.
- **Search & Parsing**:
- Fixed `full_text_search` name reliability by @JohnJyong in #26104.
๐ View Raw Release Notes (Original Developer Log)
## Congratulations on having our 1000th contributor!
<img width="319" height="168" alt="image" src="https://github.com/user-attachments/assets/10a7a78a-a49e-4886-a1fc-f44e233f76d3" />
## ๐ New Features
- **Infrastructure & DevOps**:
- Next.js upgraded to 15.5, now leveraging Turbopack in development for a faster, more modern build pipeline by @17hz in #24346.
- Provided `X-Dify-Version` headers in marketplace API access for better traceability by @RockChinQ in #26210.
- Security reporting improvements, with new sec report workflow added by @crazywoola in #26313.
- **Pipelines & Engines**:
- Built-in pipeline templates now support language configuration, unlocking multilingual deployments by @WTW0313 in #26124.
- Graph engine now blocks response nodes during streaming to avoid unintended outputs by @laipz8200 in #26364 / #26377.
- **Community & Documentation**:
- Streamlined `AGENTS.md` contribution guidelines by @laipz8200 in #26308.
- Updated Graph Engine README docs for clarity by @hjlarry in #26337.
## ๐ Fixes & Improvements
- **Debugging & Logging**:
- Fixed NodeRunRetryEvent debug logging not working properly in Graph Engine by @quicksandznzn in #26085.
- Fixed LLM node losing Flask context during parallel iterations, ensuring stable concurrent runs by @quicksandznzn in #26098.
- Fixed agent-strategy prompt generator error by @quicksandznzn in #26278.
- **Search & Parsing**:
- Fixed `full_text_search` name reliability by @JohnJyong in #26104.
- Corrected value extraction handling in IME composition for search input fields by @yangzheli in #26147.
- OceanBase parser selection explanation clarified by @longbingljw in #26071.
- **Pipeline & Workflow**:
- Fixed workflow variable splitting logic (requires โฅ2 parts) by @zhanluxianshen in #26355.
- Fixed tool node attribute `tool_node_version` judgment error causing compatibility issues by @goofy-z in #26274.
- Fixed iteration conversation variables not syncing correctly by @laipz8200 in #26368.
- Fixed Knowledge Base node crash when `retrieval_model` is null by @quicksandznzn in #26397.
- Fixed workflow node mutation issues, preventing props from being incorrectly altered by @hyongtao-code in #26266.
- Removed restrictions on adding workflow nodes by @zxhlyh in #26218.
- **File Handling**:
- Fixed remote filename handling so `Content-Disposition: inline` becomes `inline` instead of incorrect parsing by @sorphwer in #25877.
- Synced FileUploader context with props to fix inconsistent file parameters in cached variable view by @Woo0ood in #26199.
- Fixed variable not found error (#26144) by @sqewad in #26155.
- Fixed db connection error in `embed_documents()` by @AkisAya in #26196.
- Fixed model list refresh when credentials change by @zxhlyh in #26421.
- Fixed retrieval configuration handling and missing `vector_setting` in dataset components by @WTW0313 in #26361 / #26380.
- Fixed ChatClient `audio_to_text` `files` keyword bug by @EchterTimo in #26317.
- Added missing import `IO` in client.py by @EchterTimo in #26389.
- Removed `FILES_URL` in default .yaml settings by @JoJohanse in #26410.
- **Performance & Networking**:
- Improved pooling of `httpx` clients for requests to code sandbox and SSRF protection by @Blackoutta in #26052.
- Distributed plugin auto-upgrade tasks with concurrency control by @RockChinQ in #26282.
- Switched plugin auto-upgrade cache to Redis for reliability by @RockChinQ in #26356.
- Fixed plugin detail panel not showing when >100 plugins are installed by @JzoNgKVO in #26405.
- Debounce reference fix for performance stability by @crazywoola in #26433.
- **UI/UX & Display**:
- Fixed lingering display-related issues (translations, UI consistency) by @hjlarry in #26335.
- Fixed broken CSS animations under Turbopack by naming unnamed animations in CSS modules by @lyzno1 in #26408.
- Fixed verification code input using wrong `maxLength` prop by @hyongtao-code in #26244.
- Fixed array-only filtering in List Operator picker, removed file-children fallback, aligned child types by @Woo0ood in #26240.
- Fixed translation inconsistencies in ja-JP: โใใฌใใธใใผในโ vs. โใใฌใใธใฎๅๅใจใขใคใณใณโ by @mshr-h in #26243 and @NeatGuyCoding in #26270.
- Improved โtime from nowโ i18n support by @hjlarry in #26328.
- Standardized dataset-pipeline i18n terminology by @lyzno1 in #26353.
- **Code & Components**:
- Refactored component exports for consistency by @ZeroZ-lab in #26033.
- Refactored router to apply `ns.route` style by @laipz8200 in #26339.
- Refactored lint scripts to remove duplication and simplify naming by @lyzno1 in #26259.
- Applied `@console_ns.route` decorators to RAG pipeline controllers (internal refactor) by @Copilot in #26348.
- Added missing `type="button"` attributes in components by @Copilot in #26249.
---
## Upgrade Guide
### Docker Compose Deployments
1. Back up your customized docker-compose YAML file (optional)
```bash
cd docker
cp docker-compose.yaml docker-compose.yaml.$(date +%s).bak
```
2. Get the latest code from the main branch
```bash
git checkout main
git pull origin main
```
3. Stop the service. Please execute in the docker directory
```bash
docker compose down
```
4. Back up data
```bash
tar -cvf volumes-$(date +%s).tgz volumes
```
5. Upgrade services
```bash
docker compose up -d
```
### Source Code Deployments
1. Stop the API server, Worker, and Web frontend Server.
2. Get the latest code from the release branch:
```bash
git checkout 1.9.1
```
3. Update Python dependencies:
```bash
cd api
uv sync
```
4. Then, let's run the migration script:
```bash
uv run flask db upgrade
```
5. Finally, run the API server, Worker, and Web frontend Server again.
---
## What's Changed
* fix(api): graph engine debug logging NodeRunRetryEvent not effective by @quicksandznzn in https://github.com/langgenius/dify/pull/26085
* fix full_text_search name by @JohnJyong in https://github.com/langgenius/dify/pull/26104
* bump nextjs to 15.5 and turbopack for development mode by @17hz in https://github.com/langgenius/dify/pull/24346
* chore: refactor component exports for consistency by @ZeroZ-lab in https://github.com/langgenius/dify/pull/26033
* fix:add some explanation for oceanbase parser selection by @longbingljw in https://github.com/langgenius/dify/pull/26071
* feat(pipeline): add language support to built-in pipeline templates and update related components by @WTW0313 in https://github.com/langgenius/dify/pull/26124
* ci: Add hotfix/** branches to build-push workflow triggers by @QuantumGhost in https://github.com/langgenius/dify/pull/26129
* fix(api): Fix variable truncation for `list[File]` value in output mapping by @QuantumGhost in https://github.com/langgenius/dify/pull/26133
* one example of Session by @asukaminato0721 in https://github.com/langgenius/dify/pull/24135
* fix(api):LLM node losing Flask context during parallel iterations by @quicksandznzn in https://github.com/langgenius/dify/pull/26098
* fix(search-input): ensure proper value extraction in composition end handler by @yangzheli in https://github.com/langgenius/dify/pull/26147
* delete end_user check by @JohnJyong in https://github.com/langgenius/dify/pull/26187
* improve: pooling httpx clients for requests to code sandbox and ssrf by @Blackoutta in https://github.com/langgenius/dify/pull/26052
* fix: remote filename will be 'inline' if Content-Disposition: inline by @sorphwer in https://github.com/langgenius/dify/pull/25877
* perf: provide X-Dify-Version for marketplace api access by @RockChinQ in https://github.com/langgenius/dify/pull/26210
* Chore/remove add node restrict of workflow by @zxhlyh in https://github.com/langgenius/dify/pull/26218
* Fix array-only filtering in List Operator picker; remove file children fallback and align child types. by @Woo0ood in https://github.com/langgenius/dify/pull/26240
* fix: sync FileUploader context with props to fix inconsistent file parameter state in โView cached variablesโ. by @Woo0ood in https://github.com/langgenius/dify/pull/26199
* fix: add echarts and zrender to transpilePackages for ESM compatibility by @lyzno1 in https://github.com/langgenius/dify/pull/26208
* chore: fix inaccurate translation in ja-JP by @mshr-h in https://github.com/langgenius/dify/pull/26243
* aliyun_trace: unify the span attribute & compatible CMS 2.0 endpoint by @hieheihei in https://github.com/langgenius/dify/pull/26194
* fix(api): resolve error in agentโstrategy prompt generator by @quicksandznzn in https://github.com/langgenius/dify/pull/26278
* minor: fix translation with the key value uses ใใใฌใใธใฎๅๅใจใขใคใณใณใ while the rest of the file uses ใใใฌใใธใใผในใ by @NeatGuyCoding in https://github.com/langgenius/dify/pull/26270
* refactor(web): simplify lint scripts, remove duplicates and standardize naming by @lyzno1 in https://github.com/langgenius/dify/pull/26259
* fmt first by @asukaminato0721 in https://github.com/langgenius/dify/pull/26221
* fix: resolve UUID parsing error for default user session lookup by @Cluas in https://github.com/langgenius/dify/pull/26109
* Fix: avoid mutating node props by @hyongtao-code in https://github.com/langgenius/dify/pull/26266
* update gen_ai semconv for aliyun trace by @hieheihei in https://github.com/langgenius/dify/pull/26288
* chore: streamline AGENTS.md guidance by @laipz8200 in https://github.com/langgenius/dify/pull/26308
* rm assigned but unused by @asukaminato0721 in https://github.com/langgenius/dify/pull/25639
* Chore/add sec report by @crazywoola in https://github.com/langgenius/dify/pull/26313
* Fix ChatClient.audio_to_text files keyword to make it work by @EchterTimo in https://github.com/langgenius/dify/pull/26317
* perf: distribute concurrent plugin auto upgrade tasks by @RockChinQ in https://github.com/langgenius/dify/pull/26282
* fix compatibility problem caused by tool node attribute 'tool_node_version' judgement error by @goofy-z in https://github.com/langgenius/dify/pull/26274
* refactor(router): apply ns.route style by @laipz8200 in https://github.com/langgenius/dify/pull/26339
* fix: some display-related issues by @hjlarry in https://github.com/langgenius/dify/pull/26335
* chore: time from now i18n support by @hjlarry in https://github.com/langgenius/dify/pull/26328
* doc: fix graph engine readme by @hjlarry in https://github.com/langgenius/dify/pull/26337
* [Chore/Refactor] Add missing 'type' attribute on 'button' components by @Copilot in https://github.com/langgenius/dify/pull/26249
* Fix: use correct maxLength prop for verification code input by @hyongtao-code in https://github.com/langgenius/dify/pull/26244
* fix db connection error in embed_documents() by @AkisAya in https://github.com/langgenius/dify/pull/26196
* refactor: standardize dataset-pipeline i18n terminology consistency by @lyzno1 in https://github.com/langgenius/dify/pull/26353
* fix workflow variable split judge. by @zhanluxianshen in https://github.com/langgenius/dify/pull/26355
* fix(graph_engine): block response nodes during streaming by @laipz8200 in https://github.com/langgenius/dify/pull/26364
* test(graph_engine): block response nodes during streaming by @laipz8200 in https://github.com/langgenius/dify/pull/26377
* [Chore/Refactor] Apply @console_ns.route decorators to RAG pipeline controllers by @Copilot in https://github.com/langgenius/dify/pull/26348
* Fix: Knowledge Base node crash when retrieval_model is null by @quicksandznzn in https://github.com/langgenius/dify/pull/26397
* fix: switch plugin auto upgrade cache to redis by @RockChinQ in https://github.com/langgenius/dify/pull/26356
* Fix plugin detail panel not show when installed plugins more than 100 by @JzoNgKVO in https://github.com/langgenius/dify/pull/26405
* fix(turbopack): fix animation issues with unnamed animations in CSS modules by @lyzno1 in https://github.com/langgenius/dify/pull/26408
* chore(deps): bump oracledb from 3.0.0 to 3.3.0 in /api by @dependabot[bot] in https://github.com/langgenius/dify/pull/26396
* chore(deps): bump cos-python-sdk-v5 from 1.9.30 to 1.9.38 in /api by @dependabot[bot] in https://github.com/langgenius/dify/pull/26395
* chore(deps-dev): bump @testing-library/jest-dom from 6.6.3 to 6.8.0 in /web by @dependabot[bot] in https://github.com/langgenius/dify/pull/26393
* chore(deps-dev): bump @eslint/js from 9.31.0 to 9.36.0 in /web by @dependabot[bot] in https://github.com/langgenius/dify/pull/26392
* Add missing import "IO" in client.py by @EchterTimo in https://github.com/langgenius/dify/pull/26389
* fix: model list refresh when change credential by @zxhlyh in https://github.com/langgenius/dify/pull/26421
* Fixes#26332 Remove FILES_URL in default .yaml settings by @JoJohanse in https://github.com/langgenius/dify/pull/26410
* fix: Fix retrieval configuration handling in dataset components by @WTW0313 in https://github.com/langgenius/dify/pull/26361
* Fix typing errors in dataset API by @asukaminato0721 in https://github.com/langgenius/dify/pull/26424
* fix: Fix vector_setting not found error by @WTW0313 in https://github.com/langgenius/dify/pull/26380
* fix: debounce ref by @crazywoola in https://github.com/langgenius/dify/pull/26433
* fix: variable not found #26144 by @sqewad in https://github.com/langgenius/dify/pull/26155
* fix(workflow): sync iteration conversation variables by @laipz8200 in https://github.com/langgenius/dify/pull/26368
* Fix: Remove core/tools from pyrightconfig.json and fix type errors by @asukaminato0721 in https://github.com/langgenius/dify/pull/26413
* feat(sdk): enhance Python SDK with 27 new Service API endpoints by @lyzno1 in https://github.com/langgenius/dify/pull/26401
* feat(typing): Remove "libs" from pyright exclude and fix typing errors by @asukaminato0721 in https://github.com/langgenius/dify/pull/26423
* Bump release references to 1.9.1 by @laipz8200 in https://github.com/langgenius/dify/pull/26453
## New Contributors
* @Blackoutta made their first contribution in https://github.com/langgenius/dify/pull/26052
* @mshr-h made their first contribution in https://github.com/langgenius/dify/pull/26243
* @Copilot made their first contribution in https://github.com/langgenius/dify/pull/26249
* @JoJohanse made their first contribution in https://github.com/langgenius/dify/pull/26410
* @sqewad made their first contribution in https://github.com/langgenius/dify/pull/26155
**Full Changelog**: https://github.com/langgenius/dify/compare/1.9.0...1.9.1