Dify 1.8.0stable Released Aug 27, 2025
Impact Score: 5/10

Dify: v1.8.0 - Async workflows meet multi-model management with OAuth-powered integrations.

Source available β€” automated, not human-reviewed

Component: dify Β· Channel: stable. Automated analysis, not a compatibility certification. How this works.

Analysis updated: 2026-11-01.

Compatibility not verified β€” check source notes
πŸ“„ .MD
⚑ Executive Summary (TL;DR)

Dify 1.8.0. Source highlight: <img width="994" height="570" alt="Image" src="https://github.com/user-attachments/assets/491002a7-02e9-4fa4-98ea-9c9c5ba2b940" />

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)

  • **MCP Support with OAuth**: Added Model Context Protocol (MCP) support for resource discovery with OAuth authentication, expanding integration possibilities. Kudos to @CodeSpaceiiii! (#24223)
  • **Document Sorting in Knowledge Base**: Added sorting functionality for document status in the Knowledge base, improving document management. Thanks to @jubinsoni! (#24252)
  • **Document Name Tooltips**: Added helpful tooltips to document names in lists for better visibility. Thanks to @aopstudio! (#24467)
  • **Redis SSL/TLS Authentication**: Added support for Redis SSL/TLS certificate authentication for enhanced security. Thanks to @laipz8200! (#23624)
  • **Swagger Authorization**: Added authorization configuration support to Swagger documentation. Thanks to @hjlarry! (#24518)
  • **Comprehensive Test Coverage**: Added testcontainers-based integration tests for multiple services including workflow app, website, auth, conversation, and more. Massive thanks to @NeatGuyCoding for this extensive testing effort!

⚑ Performance & Enhancements (6)

  • **Delete Avatar Functionality**: Users can now delete their avatars with a confirmation modal for safety. Thanks to @Zhehao-P! (#24099)
  • **Extensible Goto-Anything Commands**: Improved goto-anything commands with an extensible architecture for better navigation. Thanks to @ZeroZ-lab! (#24091)
  • **Auto-login After Setup**: Implemented secure auto-login after admin account setup. Thanks to @laipz8200! (#24395)
  • **Agent Node Token Counting**: Properly separated prompt and completion tokens in agent node token counting. Thanks to @laipz8200! (#24368)
  • **User Enumeration Prevention**: Standardized authentication error messages to prevent user enumeration attacks. Thanks to @laipz8200! (#24324)
  • **Async WorkflowRun/WorkflowNodeRun Repositories**: Implemented asynchronous repositories for workflow execution, delivering dramatic performance improvements. This architectural change enables non-blocking operations during workflow runs, with early testing showing execution times nearly halved in typical workflows. This optimization particularly benefits complex workflows with multiple nodes and parallel operations. Thanks to @xinlmain for this game-changing performance enhancement! (#20050)

πŸ”§ Bug Fixes & Patches (6)

  • **Database Performance**: Fixed major performance issue by removing provider table updates on every message creation. Thanks to @QuantumGhost! (#24520)
  • **Authentication Error Handling**: Fixed login error handling by properly raising exceptions instead of returning. Thanks to @laipz8200! (#24452)
  • **OAuth Redis Compatibility**: Resolved OAuth Redis compatibility issues. Thanks to @Mairuis! (#23959)
  • **HTTP Request Node File Access**: Fixed file access from Start Node with remote URLs in HTTP Request Node. Thanks to @dlmu-lq! (#24293)
  • **Loop Exit Conditions**: Fixed loop exit condition to accept variables from nodes inside loops. Thanks to @baonudesifeizhai! (#24257)
  • **Number Input in Tool Configure**: Fixed number input behavior in agent node tool configuration. Thanks to @Stream29! (#24152)
πŸ“„ View Raw Release Notes (Original Developer Log)
<img width="994" height="570" alt="Image" src="https://github.com/user-attachments/assets/491002a7-02e9-4fa4-98ea-9c9c5ba2b940" /> ## πŸŽ‰ Dify v1.8.0 Release Notes πŸŽ‰ Hello, Dify community! We're excited to bring you version 1.8.0, packed with significant improvements across the board - from enhanced security and performance optimizations to a revamped UI and powerful new workflow features. Let's dive into what's new! ### πŸš€ New Features #### Workflow & Agent Capabilities - **Multi-Model Credentials System**: Implemented a comprehensive multi-model credentials system with new database tables, enabling more flexible model management. Thanks to @hjlarry! (#24451) - **MCP Support with OAuth**: Added Model Context Protocol (MCP) support for resource discovery with OAuth authentication, expanding integration possibilities. Kudos to @CodeSpaceiiii! (#24223) - **Default Values for Workflow Variables**: All workflow start node variable types now support default values, making workflows more robust. Thanks to @17hz! (#24129) - **Agent Node Token Usage**: Exposed agent node usage metrics for better monitoring and optimization. Thanks to @DavideDelbianco! (#24355) #### UI/UX Enhancements - **Document Sorting in Knowledge Base**: Added sorting functionality for document status in the Knowledge base, improving document management. Thanks to @jubinsoni! (#24252) - **Delete Avatar Functionality**: Users can now delete their avatars with a confirmation modal for safety. Thanks to @Zhehao-P! (#24099) - **Extensible Goto-Anything Commands**: Improved goto-anything commands with an extensible architecture for better navigation. Thanks to @ZeroZ-lab! (#24091) - **Document Name Tooltips**: Added helpful tooltips to document names in lists for better visibility. Thanks to @aopstudio! (#24467) - **Auto-login After Setup**: Implemented secure auto-login after admin account setup. Thanks to @laipz8200! (#24395) #### API & Backend - **Redis SSL/TLS Authentication**: Added support for Redis SSL/TLS certificate authentication for enhanced security. Thanks to @laipz8200! (#23624) - **Flask-RESTX Migration**: Successfully migrated from Flask-RESTful to Flask-RESTX for better API documentation and structure. Thanks to @asukaminato0721! (#24310) - **Swagger Authorization**: Added authorization configuration support to Swagger documentation. Thanks to @hjlarry! (#24518) ### πŸ› Bug Fixes #### Critical Fixes - **Database Performance**: Fixed major performance issue by removing provider table updates on every message creation. Thanks to @QuantumGhost! (#24520) - **Authentication Error Handling**: Fixed login error handling by properly raising exceptions instead of returning. Thanks to @laipz8200! (#24452) - **OAuth Redis Compatibility**: Resolved OAuth Redis compatibility issues. Thanks to @Mairuis! (#23959) - **HTTP Request Node File Access**: Fixed file access from Start Node with remote URLs in HTTP Request Node. Thanks to @dlmu-lq! (#24293) #### Workflow Improvements - **Loop Exit Conditions**: Fixed loop exit condition to accept variables from nodes inside loops. Thanks to @baonudesifeizhai! (#24257) - **Agent Node Token Counting**: Properly separated prompt and completion tokens in agent node token counting. Thanks to @laipz8200! (#24368) - **Number Input in Tool Configure**: Fixed number input behavior in agent node tool configuration. Thanks to @Stream29! (#24152) - **Delete Conversations via API**: Fixed conversation deletion through API to properly remove from database. Thanks to @jubinsoni! (#23591) #### UI/UX Fixes - **Dark Mode Improvements**: Multiple dark mode fixes including backdrop-blur for plugin dropdowns, hover button contrast, and embedded modal icons. Thanks to @lyzno1 and team! - **React Warnings**: Fixed Next.js React warnings by properly moving shareCode updates to useEffect. Thanks to @Eric-Guo! (#24468) - **Border Radius Consistency**: Fixed UI border radius inconsistencies across components. Thanks to @jubinsoni! (#24486) ### πŸ”’ Security Enhancements - **User Enumeration Prevention**: Standardized authentication error messages to prevent user enumeration attacks. Thanks to @laipz8200! (#24324) - **Custom Headers Fix**: Fixed custom headers being ignored when using bearer or basic authorization. Thanks to @liugddx! (#23584) - Fix SQL Injection in Oracle VDB. ### ⚑ Performance & Infrastructure #### Workflow Performance Breakthrough - **Async WorkflowRun/WorkflowNodeRun Repositories**: Implemented asynchronous repositories for workflow execution, delivering dramatic performance improvements. This architectural change enables non-blocking operations during workflow runs, with early testing showing execution times nearly halved in typical workflows. This optimization particularly benefits complex workflows with multiple nodes and parallel operations. Thanks to @xinlmain for this game-changing performance enhancement! (#20050) #### Database Optimizations - **Semantic Version Comparison**: Implemented semantic version comparison for vector database version checks. Thanks to @MatriQ! (#24416) - **AnalyticDB Improvements**: Fixed rollback issues when AnalyticDB create zhparser failed. Thanks to @lpdink! (#24260) - **Dataset Cleanup**: Optimized dataset cleanup task for better performance. Thanks to @aopstudio! (#24467) #### Testing Infrastructure - **Comprehensive Test Coverage**: Added testcontainers-based integration tests for multiple services including workflow app, website, auth, conversation, and more. Massive thanks to @NeatGuyCoding for this extensive testing effort! - **Rate Limiting Tests**: Added comprehensive test suite for rate limiting module. Thanks to @farion1231! (#23765) #### Docker & Deployment - **Docker Build Optimization**: Optimized Docker build process with cleanup script for Jest work files. Thanks to @WTW0313! (#24450) - **Amazon ECS Deployment**: Added deployment pattern documentation using Amazon ECS and CDK. Thanks to @tmokmss! (#23985) - **Configurable Plugin Buffer Sizes**: Added configurable stdio buffer sizes for plugins in compose file. Thanks to @crazywoola! (#23980) ### πŸ“š Documentation - **CLAUDE.md for LLM Development**: Added comprehensive CLAUDE.md file for LLM-assisted development guidance. Thanks to @laipz8200! (#23946) - **API Documentation**: Enhanced API documentation for files endpoint, MCP, and service API. Thanks to @laipz8200! - **Localized Documentation**: Updated localized README files to link to corresponding localized CONTRIBUTING.md files. Thanks to @aopstudio! (#24504) - **Markdown Auto-formatting**: Implemented auto-formatting for markdown files using mdformat tool. Thanks to @asukaminato0721! (#24242) ### 🧹 Code Quality & Refactoring - **Type Safety Improvements**: Major improvements to type annotations and static type checking across the codebase. Thanks to @Gnomeek, @hyongtao-code, and @asukaminato0721! - **AST-Grep Integration**: Added ast-grep tool for maintaining codebase consistency. Thanks to @asukaminato0721! (#24149) - **Dead Code Removal**: Cleaned up empty files and unused code throughout the project. Thanks to @hyongtao-code! (#23990) - **Import Optimization**: Replaced deprecated functions and optimized imports across the codebase. ### 🌐 Internationalization - **Automated Translation Updates**: Continuous updates to i18n translation files with improved accuracy - **Japanese Translation Corrections**: Fixed Japanese translation issues. Thanks to @kurokobo! (#24041) - **Translation Synchronization**: Better synchronization of translations across all supported languages This release represents a major step forward in Dify's evolution, with substantial improvements to performance, security, and developer experience. We're particularly excited about the enhanced workflow capabilities and the comprehensive testing infrastructure that will help us maintain high quality standards going forward. Thank you to all contributors who made this release possible! Your dedication to improving Dify continues to drive us forward. Happy building with Dify 1.8.0! πŸš€ --- ## 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.8.0 ``` 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 * test(api): fix flaky tests in TestWorkflowDraftVariableService by @QuantumGhost in https://github.com/langgenius/dify/pull/23749 * refactor: simplify variable pool key structure and improve type safety by @laipz8200 in https://github.com/langgenius/dify/pull/23732 * refactor: Change _queue_manager to public attribute queue_manager in task pipelines by @laipz8200 in https://github.com/langgenius/dify/pull/23747 * Chore: remove unused var in `ModelProviderFactory` by @hyongtao-code in https://github.com/langgenius/dify/pull/23690 * feat: add filtering support for @ command selector in goto-anything by @lyzno1 in https://github.com/langgenius/dify/pull/23763 * hotfix: fix translation by @NeatGuyCoding in https://github.com/langgenius/dify/pull/23757 * feat: add select-none class to tag filter components to prevent text selection by @lyzno1 in https://github.com/langgenius/dify/pull/23774 * fix(api): fix flaky tests by generating unique variable names by @QuantumGhost in https://github.com/langgenius/dify/pull/23768 * fix: update integration tests to use 2-element variable selectors by @farion1231 in https://github.com/langgenius/dify/pull/23766 * Fix: expose MAX_TREE_DEPTH in env by @lslzl3000 in https://github.com/langgenius/dify/pull/23743 * test: add comprehensive test suite for rate limiting module by @farion1231 in https://github.com/langgenius/dify/pull/23765 * fix issue #23758 by @engchina in https://github.com/langgenius/dify/pull/23764 * feat: If combining text and files, place the text prompt after the fi… by @jiangbo721 in https://github.com/langgenius/dify/pull/23779 * feat: add highPriority option to Modal for goto-anything layering by @lyzno1 in https://github.com/langgenius/dify/pull/23783 * fix: add MAX_TREE_DEPTH in env.service.web by @lslzl3000 in https://github.com/langgenius/dify/pull/23785 * fix: prevent X button flying to screen corners in dataset settings modal by @lyzno1 in https://github.com/langgenius/dify/pull/23788 * Feat/improved mcp timeout configs by @IthacaDream in https://github.com/langgenius/dify/pull/23605 * chore: translate i18n files by @github-actions[bot] in https://github.com/langgenius/dify/pull/23789 * fix: remove misleading clear buttons and improve SimpleSelect UX by @lyzno1 in https://github.com/langgenius/dify/pull/23791 * chore: restore @mdx-js dependencies in package.json and pnpm-lock.yaml by @WTW0313 in https://github.com/langgenius/dify/pull/23792 * Fix node search by @ZeroZ-lab in https://github.com/langgenius/dify/pull/23795 * fix: add missing translation keys for goto anything command selector by @lyzno1 in https://github.com/langgenius/dify/pull/23815 * Add Test Containers Based Tests for File Service by @NeatGuyCoding in https://github.com/langgenius/dify/pull/23771 * chore: goto anything mouse keyboard interaction by @CathyL0 in https://github.com/langgenius/dify/pull/23805 * Fix missing import in app.ts by @hyongtao-code in https://github.com/langgenius/dify/pull/23831 * chore: update uv to 0.8.9 by @bowenliang123 in https://github.com/langgenius/dify/pull/23833 * Feature/run cmd by @ZeroZ-lab in https://github.com/langgenius/dify/pull/23822 * chore: translate i18n files by @github-actions[bot] in https://github.com/langgenius/dify/pull/23841 * feat: Add an asynchronous repository to improve workflow performance by @xinlmain in https://github.com/langgenius/dify/pull/20050 * chore: rename misleading 'chore.yaml' issue template to 'refactor.yml' by @laipz8200 in https://github.com/langgenius/dify/pull/23847 * refactor: improve Redis wrapper type hints and fix None value handling by @laipz8200 in https://github.com/langgenius/dify/pull/23845 * fix: goto-anything highlighting consistency improvements by @lyzno1 in https://github.com/langgenius/dify/pull/23843 * feat(api): auto-delete WorkflowDraftVariable when app is deleted by @QuantumGhost in https://github.com/langgenius/dify/pull/23737 * fix: update modal component to use relative positioning by @WTW0313 in https://github.com/langgenius/dify/pull/23855 * Add more comprehensive Test Containers Based Tests for advanced prompt service by @NeatGuyCoding in https://github.com/langgenius/dify/pull/23850 * fix: optimize dataset cleanup task by @kenwoodjw in https://github.com/langgenius/dify/pull/23828 * fix: SimpleSelect chevron icon state sync and add notClearable to monitoring selector by @lyzno1 in https://github.com/langgenius/dify/pull/23858 * fix: goto-anything command filter should only match shortcut by @lyzno1 in https://github.com/langgenius/dify/pull/23862 * Fix misleading Studio button in account header by @lyzno1 in https://github.com/langgenius/dify/pull/23842 * feat: support to upload files for visual model call when running LLM node for debugging in a single step by @goofy-z in https://github.com/langgenius/dify/pull/23521 * style: update dark and light theme colors and add new color variables by @WTW0313 in https://github.com/langgenius/dify/pull/23865 * fix: messages updated_at by @IthacaDream in https://github.com/langgenius/dify/pull/23869 * Restructure the File errors in controller by @hyongtao-code in https://github.com/langgenius/dify/pull/23801 * chore(cmdk): Resolve default option selection issue in GotoAnything component (#23878) by @HyaCiovo in https://github.com/langgenius/dify/pull/23813 * fix translation by @NeatGuyCoding in https://github.com/langgenius/dify/pull/23873 * Update use-document-title.ts to fix favicon.ico path by @xb565517830 in https://github.com/langgenius/dify/pull/23872 * fix: add dark mode support for embedded modal option icons by @lyzno1 in https://github.com/langgenius/dify/pull/23893 * Remove redundant acceptedKeys check by @hyongtao-code in https://github.com/langgenius/dify/pull/23891 * Fix: narrow beforeRequest hook type to avoid boolean in array by @hyongtao-code in https://github.com/langgenius/dify/pull/23860 * fix(api): "Message not exists" error while creating feedback by admin by @QuantumGhost in https://github.com/langgenius/dify/pull/23232 * fix(web): resolve TypeScript errors in app overview components by @lyzno1 in https://github.com/langgenius/dify/pull/23901 * Fix multipart/form-data boundary issue in HTTP Call node by @liugddx in https://github.com/langgenius/dify/pull/23903 * fix: resolve text clipping issues in overview chart components by @lyzno1 in https://github.com/langgenius/dify/pull/23907 * Add Test Containers Based Tests for App Generation Services by @NeatGuyCoding in https://github.com/langgenius/dify/pull/23899 * fix: ensure custom headers are ignored when using bearer or basic authorization by @liugddx in https://github.com/langgenius/dify/pull/23584 * fix: mime_type could be None by @crazywoola in https://github.com/langgenius/dify/pull/23880 * Fix: replace deprecated String.prototype.substr with slice by @hyongtao-code in https://github.com/langgenius/dify/pull/23915 * Revert "feat: support to upload files for visual model call when running LLM node for debugging in a single step" by @crazywoola in https://github.com/langgenius/dify/pull/23922 * Fixes #23921 by @AlexChim1231 in https://github.com/langgenius/dify/pull/23924 * feat: integrate flask-orjson for improved JSON serialization performance by @laipz8200 in https://github.com/langgenius/dify/pull/23935 * fix: resolve user profile dropdown cache sync issue across layouts by @lyzno1 in https://github.com/langgenius/dify/pull/23937 * Fix: remove redundant allowed_keys check in jsonable_encoder by @hyongtao-code in https://github.com/langgenius/dify/pull/23931 * fix(workflow/if-else): keep conditions in sync on variable rename by @iamrajhans in https://github.com/langgenius/dify/pull/23611 * chore: remove redundant .env.example from root directory by @laipz8200 in https://github.com/langgenius/dify/pull/23948 * refactor: unify pnpm version management with packageManager field by @lyzno1 in https://github.com/langgenius/dify/pull/23943 * feature: add test for tool engine serialization by @NeatGuyCoding in https://github.com/langgenius/dify/pull/23951 * Feat: External_trace_id compatible with OpenTelemetry by @hieheihei in https://github.com/langgenius/dify/pull/23918 * Fix hover button contrast in dark mode for app and dataset cards by @lyzno1 in https://github.com/langgenius/dify/pull/23955 * fix: 504 Gateway Time-out error on /console/api/version endpoint by @xb565517830 in https://github.com/langgenius/dify/pull/23961 * update: GitHub star fallback count to current value by @lyzno1 in https://github.com/langgenius/dify/pull/23957 * fix comparison with callable by @IthacaDream in https://github.com/langgenius/dify/pull/23978 * doc: add deployment pattern using Amazon ECS and CDK by @tmokmss in https://github.com/langgenius/dify/pull/23985 * chore: improved type annotations in MCP-related codes by @IthacaDream in https://github.com/langgenius/dify/pull/23984 * chore: add configurable stdio buffer sizes for plugins in compose file by @crazywoola in https://github.com/langgenius/dify/pull/23980 * Chore: remove empty files and unused code by @hyongtao-code in https://github.com/langgenius/dify/pull/23990 * fix: move database service call inside session context in workflow draft variable API by @qiqizjl in https://github.com/langgenius/dify/pull/23996 * Fix missing user_id in trace_manager by @hyongtao-code in https://github.com/langgenius/dify/pull/24024 * Fix: add 'api_key' alias for backward compatibility by @hyongtao-code in https://github.com/langgenius/dify/pull/24022 * Update mypy.ini by @hyongtao-code in https://github.com/langgenius/dify/pull/24014 * chore(i18n): correct japanese translation by @kurokobo in https://github.com/langgenius/dify/pull/24041 * no used function for message_queue. by @zhanluxianshen in https://github.com/langgenius/dify/pull/24027 * Revert "Fix: Correct file variable handling for custom tools in workflow" by @kurokobo in https://github.com/langgenius/dify/pull/24061 * Restore useLabelStore mistakenly removed in commit 403e2d58 by @hyongtao-code in https://github.com/langgenius/dify/pull/24052 * chore: synchronize translations by @lyzno1 in https://github.com/langgenius/dify/pull/24044 * feat: add testcontainers based tests for metadata service by @NeatGuyCoding in https://github.com/langgenius/dify/pull/24048 * feat: add testcontainers based tests for model loadbalancing service by @NeatGuyCoding in https://github.com/langgenius/dify/pull/24066 * feat: add select input support to the conversation opener by @Zhehao-P in https://github.com/langgenius/dify/pull/24043 * feat: add CLAUDE.md for LLM-assisted development guidance by @laipz8200 in https://github.com/langgenius/dify/pull/23946 * feat: add Redis SSL/TLS certificate authentication support by @laipz8200 in https://github.com/langgenius/dify/pull/23624 * Fix sticky table header transparency with backdrop-filter blur in dark mode by @lyzno1 in https://github.com/langgenius/dify/pull/23999 * fix: update first_id logic to use the oldest answer item in chat messages by @liugddx in https://github.com/langgenius/dify/pull/23992 * refactor: improve loading animation and debug panel styles by @WTW0313 in https://github.com/langgenius/dify/pull/24075 * fix(oauth): redis compatibility by @Mairuis in https://github.com/langgenius/dify/pull/23959 * feat: enchance prompt and code by @iamjoel in https://github.com/langgenius/dify/pull/23633 * fix: return empty list instead of raising exception for qdrant search when score_threshold is 1 by @BoWuGit in https://github.com/langgenius/dify/pull/24032 * chore: translate i18n files by @github-actions[bot] in https://github.com/langgenius/dify/pull/24081 * fix: no current code caused code generation show error by @iamjoel in https://github.com/langgenius/dify/pull/24086 * fix(ui): Optimize UI component styles and layouts (#24090) by @HyaCiovo in https://github.com/langgenius/dify/pull/24092 * feat: no longer enable auto upgrade when marketplace is disabled (#24… by @RockChinQ in https://github.com/langgenius/dify/pull/24101 * Feature/improve goto anything commands by @ZeroZ-lab in https://github.com/langgenius/dify/pull/24091 * chore: translate i18n files by @github-actions[bot] in https://github.com/langgenius/dify/pull/24102 * fix pg_vector extension requires SUPERUSER, but not available on Huawei Cloud RDS by @ElvisWai in https://github.com/langgenius/dify/pull/24093 * Revert "fix pg_vector extension requires SUPERUSER, but not availabl… by @crazywoola in https://github.com/langgenius/dify/pull/24108 * fix: validate checklist before publishing workflow by @laipz8200 in https://github.com/langgenius/dify/pull/24104 * Chore: remove some dead code in experience-enhance-group by @hyongtao-code in https://github.com/langgenius/dify/pull/24110 * fix: treat default template of code as empty by @Stream29 in https://github.com/langgenius/dify/pull/24106 * Bump pyobvector to 0.2.15 by @whhe in https://github.com/langgenius/dify/pull/24120 * Use typing.Literal to replace str places by @Zhehao-P in https://github.com/langgenius/dify/pull/24099 * feat: add delete avatar functionality with confirmation modal by @liugddx in https://github.com/langgenius/dify/pull/24127 * chore: translate i18n files by @github-actions[bot] in https://github.com/langgenius/dify/pull/24131 * an example of suppress by @asukaminato0721 in https://github.com/langgenius/dify/pull/24136 * feat: add testcontainers based tests for feature service by @NeatGuyCoding in https://github.com/langgenius/dify/pull/24026 * feat: Implements periodic deletion of workflow run logs that exceed t… by @9527MrLi in https://github.com/langgenius/dify/pull/23881 * try ast-grep by @asukaminato0721 in https://github.com/langgenius/dify/pull/24149 * fix: correct behaviour of code fix by @Stream29 in https://github.com/langgenius/dify/pull/24152 * Fix number input in tool configure form of agent node tool item by @JzoNgKVO in https://github.com/langgenius/dify/pull/24154 * Remove the second `if self.runtime is None:` check by @hyongtao-code in https://github.com/langgenius/dify/pull/24171 * Fix: correctly match http/https URLs in image upload file by @hyongtao-code in https://github.com/langgenius/dify/pull/24180 * feat: add testcontainers based tests for model provider service by @NeatGuyCoding in https://github.com/langgenius/dify/pull/24193 * Fix: replace `get_builtin_provider` with `get_plugin_provider` by @hyongtao-code in https://github.com/langgenius/dify/pull/24191 * docs: format all md files by @yihong0618 in https://github.com/langgenius/dify/pull/24195 * hotfix: fix multiple case match syntax by @NeatGuyCoding in https://github.com/langgenius/dify/pull/24204 * feat: notice of the expire of education verify by @iamjoel in https://github.com/langgenius/dify/pull/24210 * Feat: Education by @GareArc in https://github.com/langgenius/dify/pull/24208 * chore: translate i18n files by @github-actions[bot] in https://github.com/langgenius/dify/pull/24211 * Httpx example by @asukaminato0721 in https://github.com/langgenius/dify/pull/24151 * add tyck tool (currently ignore the error) by @asukaminato0721 in https://github.com/langgenius/dify/pull/22592 * Fix the bug of automatically appending basepath to image resource. by @17hz in https://github.com/langgenius/dify/pull/24201 * fix: keep idempotent when init AnalyticdbVectorBySql by @lpdink in https://github.com/langgenius/dify/pull/24239 * fix: dataset doc-form compatible by @huangzhuo1949 in https://github.com/langgenius/dify/pull/24177 * feature: add test containers base tests for saved message service by @NeatGuyCoding in https://github.com/langgenius/dify/pull/24259 * Mcp support resource discovery by @CodeSpaceiiii in https://github.com/langgenius/dify/pull/24223 * fix: loop exit condition accepts variables from nodes inside the loop #24183: by @baonudesifeizhai in https://github.com/langgenius/dify/pull/24257 * feat: show the start time with seconds of the app logs by @skayliu in https://github.com/langgenius/dify/pull/24267 * fix(api):Fix the issue of empty and not empty operations failing in k… by @rouxiaomin in https://github.com/langgenius/dify/pull/24276 * fix: rollback when AnalyticDB create zhparser failed by @lpdink in https://github.com/langgenius/dify/pull/24260 * fix: value_type check failed when updating variables by @me0106 in https://github.com/langgenius/dify/pull/24274 * [Test] add unit tests for ProviderConfigEncrypter encrypt/mask/decrypt by @hyongtao-code in https://github.com/langgenius/dify/pull/24280 * refactor: replace try-except blocks with contextlib.suppress for cleaner exception handling by @liugddx in https://github.com/langgenius/dify/pull/24284 * style: replace `h-[1px]` with `h-px` to unify the writing format of Tailwind CSS by @rookie-orange in https://github.com/langgenius/dify/pull/24146 * Fix: safe defaults for BaseModel dict fields by @hyongtao-code in https://github.com/langgenius/dify/pull/24098 * [CHORE]: x: T = None to x: Optional[T] = None by @Gnomeek in https://github.com/langgenius/dify/pull/24217 * feature: add test containers base tests for tag service by @NeatGuyCoding in https://github.com/langgenius/dify/pull/24313 * [Test] add unit tests for web_reader_tool.py by @hyongtao-code in https://github.com/langgenius/dify/pull/24309 * Annotations example by @asukaminato0721 in https://github.com/langgenius/dify/pull/24304 * an example of sessionmaker by @asukaminato0721 in https://github.com/langgenius/dify/pull/24246 * feat: implement TooltipManager for managing tooltip lifecycle by @ARRY7686 in https://github.com/langgenius/dify/pull/24236 * Flask 3.1.2 upgrade fix by Avoids using current_user in background thread by @Eric-Guo in https://github.com/langgenius/dify/pull/24290 * fix: Optimize scrolling experience on plugin page (#24314) by @HyaCiovo in https://github.com/langgenius/dify/pull/24322 * auto format md files by @asukaminato0721 in https://github.com/langgenius/dify/pull/24242 * Feat/chat message image first for agent and advanced_chat APP by @jiangbo721 in https://github.com/langgenius/dify/pull/23796 * Update knowledge_retrieval_node.py by @AuditAIH in https://github.com/langgenius/dify/pull/24111 * example of next(, None) by @asukaminato0721 in https://github.com/langgenius/dify/pull/24345 * feat: Add default value support for all workflow start node variable types by @17hz in https://github.com/langgenius/dify/pull/24129 * refactor: simplify repository factory with Django-style import_string by @laipz8200 in https://github.com/langgenius/dify/pull/24354 * Fix missing database commit in provider update handler by @laipz8200 in https://github.com/langgenius/dify/pull/24357 * Node search supports model and name search by @ZeroZ-lab in https://github.com/langgenius/dify/pull/24331 * [Chore/Refactor] Use centralized naive_utc_now for UTC datetime operations by @laipz8200 in https://github.com/langgenius/dify/pull/24352 * Expose agent node usage by @DavideDelbianco in https://github.com/langgenius/dify/pull/24355 * fix: correct agent node token counting to properly separate prompt and completion tokens by @laipz8200 in https://github.com/langgenius/dify/pull/24368 * feature: add test containers based tests for web conversation service by @NeatGuyCoding in https://github.com/langgenius/dify/pull/24372 * fix kb api access docs by @kenwoodjw in https://github.com/langgenius/dify/pull/24377 * fix child-chunk ownership validation by @kenwoodjw in https://github.com/langgenius/dify/pull/24374 * Fix incorrect exception reference for `json.dumps()` by @hyongtao-code in https://github.com/langgenius/dify/pull/24329 * fix: #24292 HTTP Request Node Unable to Access File from Start Node When Using Remote URL in Workflow API Call by @dlmu-lq in https://github.com/langgenius/dify/pull/24293 * try flask_restful -> flask_restx by @asukaminato0721 in https://github.com/langgenius/dify/pull/24310 * chore: remove feature comparison tables from all README files by @laipz8200 in https://github.com/langgenius/dify/pull/24403 * fix(api): restful to restx migration issue by @MatriQ in https://github.com/langgenius/dify/pull/24416 * fix(vector): use semantic version comparison for version check by @huayaoyue6 in https://github.com/langgenius/dify/pull/24409 * hotfix: add test containers based tests for webapp auth service by @NeatGuyCoding in https://github.com/langgenius/dify/pull/24397 * chore: apply static type checks on celery async task dispatches and imports by @bowenliang123 in https://github.com/langgenius/dify/pull/24418 * hotfix: add test containers based tests for website service by @NeatGuyCoding in https://github.com/langgenius/dify/pull/24430 * feat: API docs for service api by @laipz8200 in https://github.com/langgenius/dify/pull/24425 * feat: API docs for mcp by @laipz8200 in https://github.com/langgenius/dify/pull/24424 * feat: API docs for /files by @laipz8200 in https://github.com/langgenius/dify/pull/24423 * Fix auth error handling by @hyongtao-code in https://github.com/langgenius/dify/pull/24420 * refactor: better error handler by @laipz8200 in https://github.com/langgenius/dify/pull/24422 * feat: auto-login after admin account setup by @laipz8200 in https://github.com/langgenius/dify/pull/24395 * fix delete conversations via Api and delete conversations from db as well by @jubinsoni in https://github.com/langgenius/dify/pull/23591 * feat: Add SQLALCHEMY_MAX_OVERFLOW configuration to support database connection pool overflow by @ZeroZ-lab in https://github.com/langgenius/dify/pull/24432 * docs: better doc for dev in api like Claude.md by @yihong0618 in https://github.com/langgenius/dify/pull/24442 * example for logging by @asukaminato0721 in https://github.com/langgenius/dify/pull/24441 * fix: Update doc word count after delete chunks by @AaronMKk in https://github.com/langgenius/dify/pull/24435 * fix: Fix login error handling by raising exception instead of returning by @laipz8200 in https://github.com/langgenius/dify/pull/24452 * fix: add backdrop-blur-sm to plugin dropdown filters for consistent dark mode styling by @lyzno1 in https://github.com/langgenius/dify/pull/24454 * feat: Optimize Docker build process by adding script to remove unnecessary files by @WTW0313 in https://github.com/langgenius/dify/pull/24450 * fix: flask_restx namespace path wrong by @quicksandznzn in https://github.com/langgenius/dify/pull/24456 * remove: document download file permission by @quicksandznzn in https://github.com/langgenius/dify/pull/24459 * fix(flask_restx): invite member email parse error by @quicksandznzn in https://github.com/langgenius/dify/pull/24464 * feat: add multi model credentials by @hjlarry in https://github.com/langgenius/dify/pull/24451 * refactor: Update shareCode in useEffect to avoid setState during render by @Eric-Guo in https://github.com/langgenius/dify/pull/24468 * feat: Show tooltip on document names in document list by @aopstudio in https://github.com/langgenius/dify/pull/24467 * feat: If combining text and files, place the text prompt after the fi… by @jiangbo721 in https://github.com/langgenius/dify/pull/24472 * chore: translate i18n files by @github-actions[bot] in https://github.com/langgenius/dify/pull/24474 * optimize close action on about page by @lxjustdoit in https://github.com/langgenius/dify/pull/24342 * Fix TypeError: object of type int has no len() by @zhanluxianshen in https://github.com/langgenius/dify/pull/24484 * example of remove some reflections by @asukaminato0721 in https://github.com/langgenius/dify/pull/24488 * improve border radius by @jubinsoni in https://github.com/langgenius/dify/pull/24486 * example: limit current user usage by @asukaminato0721 in https://github.com/langgenius/dify/pull/24470 * feat: migrate Inner API module to Flask-RESTX by @liugddx in https://github.com/langgenius/dify/pull/24492 * Fix CONTRIBUTING links in localized READMEs by @aopstudio in https://github.com/langgenius/dify/pull/24504 * Fix missing return 200 in response handling by @hyongtao-code in https://github.com/langgenius/dify/pull/24499 * hotfix: add test containers based tests for workflow app service by @NeatGuyCoding in https://github.com/langgenius/dify/pull/24501 * fix: standardize authentication error messages to prevent user enumeration by @laipz8200 in https://github.com/langgenius/dify/pull/24324 * chore: hide delete action when avatar is none by @crazywoola in https://github.com/langgenius/dify/pull/24512 * feat: add authorizations for swagger doc by @hjlarry in https://github.com/langgenius/dify/pull/24518 * opt(api): optimize update contention on the providers table by @QuantumGhost in https://github.com/langgenius/dify/pull/24520 * chore: standardize to official astral-sh/setup-uv@v6 action by @lyzno1 in https://github.com/langgenius/dify/pull/24527 * sort on display status by @jubinsoni in https://github.com/langgenius/dify/pull/24252 * readme and claude.md sync. by @Eric-Guo in https://github.com/langgenius/dify/pull/24495 * feat(theme): add color variable config by @Yessenia-d in https://github.com/langgenius/dify/pull/24541 * code cleans ,and add exception message. by @zhanluxianshen in https://github.com/langgenius/dify/pull/24536 * fix:external dataset weight rerank bug by @huangzhuo1949 in https://github.com/langgenius/dify/pull/24533 * fix infinite loop when clean unused dataset by @kenwoodjw in https://github.com/langgenius/dify/pull/24542 * fix: unify log format, use placeholders instead of string concatenation by @ZeroZ-lab in https://github.com/langgenius/dify/pull/24544 * api: support to config disabling Swagger UI in api service by @bowenliang123 in https://github.com/langgenius/dify/pull/24440 * fix: cve issue by @kenwoodjw in https://github.com/langgenius/dify/pull/24555 * feat: Auto-associate variables in Jinja editor mode by @17hz in https://github.com/langgenius/dify/pull/24561 * Refactor: use logger = logging.getLogger(__name__) in logging by @hyongtao-code in https://github.com/langgenius/dify/pull/24515 * fix(api):safe reset in db pool, avoid rollback in gevent callback by @rouxiaomin in https://github.com/langgenius/dify/pull/24556 * feat: support bool type variable by @iamjoel in https://github.com/langgenius/dify/pull/24437 * example on orm typing by @asukaminato0721 in https://github.com/langgenius/dify/pull/23322 * refactor(api-access): refactor code group by @nite-knite in https://github.com/langgenius/dify/pull/24565 * refactor: unify blob chunk merging logic for plugin tool and agent by @Yeuoly in https://github.com/langgenius/dify/pull/24575 * fix: when credential unauthrozied display green color by @hjlarry in https://github.com/langgenius/dify/pull/24572 * fix: rag/milvus clarify full-text search warning with actionable guidance by @Petrus-Han in https://github.com/langgenius/dify/pull/24570 * Chore: remove dead var in `DocumentBatchIndexingEstimateApi` by @hyongtao-code in https://github.com/langgenius/dify/pull/24497 * fix: code lint by @jiangbo721 in https://github.com/langgenius/dify/pull/24563 * chore: translate i18n files by @github-actions[bot] in https://github.com/langgenius/dify/pull/24566 * Feat: add AGENTS.md with symlink for Coding Agents by @fdb02983rhy in https://github.com/langgenius/dify/pull/24586 * add missing by @asukaminato0721 in https://github.com/langgenius/dify/pull/24584 * Restrict autofix workflow to main branch by @asukaminato0721 in https://github.com/langgenius/dify/pull/24581 * hotfix: add test containers based tests for workflow run service by @NeatGuyCoding in https://github.com/langgenius/dify/pull/24602 * add rule for logging check by @asukaminato0721 in https://github.com/langgenius/dify/pull/24553 * Fix tooltip visibility issues during scroll in model selector popup by @Ujjwal-here in https://github.com/langgenius/dify/pull/24593 * fix: handle non-array segment types in Loop node by @laipz8200 in https://github.com/langgenius/dify/pull/24590 * chore(api): Use uuidv7 as PK for new provider crendential tables by @QuantumGhost in https://github.com/langgenius/dify/pull/24545 * cleanup: remove temporary boolean test files from root directory by @lyzno1 in https://github.com/langgenius/dify/pull/24610 * fix: tool provider deadlock by @Mairuis in https://github.com/langgenius/dify/pull/24532 * Chore : rm dead code detected by pylance by @hyongtao-code in https://github.com/langgenius/dify/pull/24588 * refactor(http-request): Remove the reflective calls to ssrf_proxy and replace them with explicitly defined dictionary retrievals. by @liugddx in https://github.com/langgenius/dify/pull/24596 * Fix login tokens and fix task clean_messages create_time. by @zhanluxianshen in https://github.com/langgenius/dify/pull/24574 * fix(api): fix incorrectly handling of `array[boolean]` constant in loop node by @QuantumGhost in https://github.com/langgenius/dify/pull/24619 * chore: bump version from 1.7.2 to 1.8.0 by @laipz8200 in https://github.com/langgenius/dify/pull/24539 ## New Contributors * @lslzl3000 made their first contribution in https://github.com/langgenius/dify/pull/23743 * @xinlmain made their first contribution in https://github.com/langgenius/dify/pull/20050 * @xb565517830 made their first contribution in https://github.com/langgenius/dify/pull/23872 * @Zhehao-P made their first contribution in https://github.com/langgenius/dify/pull/24043 * @BoWuGit made their first contribution in https://github.com/langgenius/dify/pull/24032 * @ElvisWai made their first contribution in https://github.com/langgenius/dify/pull/24093 * @9527MrLi made their first contribution in https://github.com/langgenius/dify/pull/23881 * @17hz made their first contribution in https://github.com/langgenius/dify/pull/24201 * @CodeSpaceiiii made their first contribution in https://github.com/langgenius/dify/pull/24223 * @skayliu made their first contribution in https://github.com/langgenius/dify/pull/24267 * @me0106 made their first contribution in https://github.com/langgenius/dify/pull/24274 * @rookie-orange made their first contribution in https://github.com/langgenius/dify/pull/24146 * @Gnomeek made their first contribution in https://github.com/langgenius/dify/pull/24217 * @ARRY7686 made their first contribution in https://github.com/langgenius/dify/pull/24236 * @AaronMKk made their first contribution in https://github.com/langgenius/dify/pull/24435 * @aopstudio made their first contribution in https://github.com/langgenius/dify/pull/24467 * @lxjustdoit made their first contribution in https://github.com/langgenius/dify/pull/24342 * @Yessenia-d made their first contribution in https://github.com/langgenius/dify/pull/24541 * @Petrus-Han made their first contribution in https://github.com/langgenius/dify/pull/24570 * @Ujjwal-here made their first contribution in https://github.com/langgenius/dify/pull/24593 **Full Changelog**: https://github.com/langgenius/dify/compare/1.7.2...1.8.0