
🎉 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
-
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 main git pull origin main
-
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
Source Code Deployments
-
Stop the API server, Worker, and Web frontend Server.
-
Get the latest code from the release branch:
git checkout 1.8.0
-
Update Python dependencies:
cd api uv sync
-
Then, let's run the migration script:
uv run flask db upgrade
-
Finally, run the API server, Worker, and Web frontend Server again.
What's Changed
- test(api): fix flaky tests in TestWorkflowDraftVariableService by @QuantumGhost in #23749
- refactor: simplify variable pool key structure and improve type safety by @laipz8200 in #23732
- refactor: Change _queue_manager to public attribute queue_manager in task pipelines by @laipz8200 in #23747
- Chore: remove unused var in
ModelProviderFactory
by @hyongtao-code in #23690 - feat: add filtering support for @ command selector in goto-anything by @lyzno1 in #23763
- hotfix: fix translation by @NeatGuyCoding in #23757
- feat: add select-none class to tag filter components to prevent text selection by @lyzno1 in #23774
- fix(api): fix flaky tests by generating unique variable names by @QuantumGhost in #23768
- fix: update integration tests to use 2-element variable selectors by @farion1231 in #23766
- Fix: expose MAX_TREE_DEPTH in env by @lslzl3000 in #23743
- test: add comprehensive test suite for rate limiting module by @farion1231 in #23765
- fix issue #23758 by @engchina in #23764
- feat: If combining text and files, place the text prompt after the fi… by @jiangbo721 in #23779
- feat: add highPriority option to Modal for goto-anything layering by @lyzno1 in #23783
- fix: add MAX_TREE_DEPTH in env.service.web by @lslzl3000 in #23785
- fix: prevent X button flying to screen corners in dataset settings modal by @lyzno1 in #23788
- Feat/improved mcp timeout configs by @IthacaDream in #23605
- chore: translate i18n files by @github-actions[bot] in #23789
- fix: remove misleading clear buttons and improve SimpleSelect UX by @lyzno1 in #23791
- chore: restore @mdx-js dependencies in package.json and pnpm-lock.yaml by @WTW0313 in #23792
- Fix node search by @ZeroZ-lab in #23795
- fix: add missing translation keys for goto anything command selector by @lyzno1 in #23815
- Add Test Containers Based Tests for File Service by @NeatGuyCoding in #23771
- chore: goto anything mouse keyboard interaction by @CathyL0 in #23805
- Fix missing import in app.ts by @hyongtao-code in #23831
- chore: update uv to 0.8.9 by @bowenliang123 in #23833
- Feature/run cmd by @ZeroZ-lab in #23822
- chore: translate i18n files by @github-actions[bot] in #23841
- feat: Add an asynchronous repository to improve workflow performance by @xinlmain in #20050
- chore: rename misleading 'chore.yaml' issue template to 'refactor.yml' by @laipz8200 in #23847
- refactor: improve Redis wrapper type hints and fix None value handling by @laipz8200 in #23845
- fix: goto-anything highlighting consistency improvements by @lyzno1 in #23843
- feat(api): auto-delete WorkflowDraftVariable when app is deleted by @QuantumGhost in #23737
- fix: update modal component to use relative positioning by @WTW0313 in #23855
- Add more comprehensive Test Containers Based Tests for advanced prompt service by @NeatGuyCoding in #23850
- fix: optimize dataset cleanup task by @kenwoodjw in #23828
- fix: SimpleSelect chevron icon state sync and add notClearable to monitoring selector by @lyzno1 in #23858
- fix: goto-anything command filter should only match shortcut by @lyzno1 in #23862
- Fix misleading Studio button in account header by @lyzno1 in #23842
- feat: support to upload files for visual model call when running LLM node for debugging in a single step by @goofy-z in #23521
- style: update dark and light theme colors and add new color variables by @WTW0313 in #23865
- fix: messages updated_at by @IthacaDream in #23869
- Restructure the File errors in controller by @hyongtao-code in #23801
- chore(cmdk): Resolve default option selection issue in GotoAnything component (#23878) by @HyaCiovo in #23813
- fix translation by @NeatGuyCoding in #23873
- Update use-document-title.ts to fix favicon.ico path by @xb565517830 in #23872
- fix: add dark mode support for embedded modal option icons by @lyzno1 in #23893
- Remove redundant acceptedKeys check by @hyongtao-code in #23891
- Fix: narrow beforeRequest hook type to avoid boolean in array by @hyongtao-code in #23860
- fix(api): "Message not exists" error while creating feedback by admin by @QuantumGhost in #23232
- fix(web): resolve TypeScript errors in app overview components by @lyzno1 in #23901
- Fix multipart/form-data boundary issue in HTTP Call node by @liugddx in #23903
- fix: resolve text clipping issues in overview chart components by @lyzno1 in #23907
- Add Test Containers Based Tests for App Generation Services by @NeatGuyCoding in #23899
- fix: ensure custom headers are ignored when using bearer or basic authorization by @liugddx in #23584
- fix: mime_type could be None by @crazywoola in #23880
- Fix: replace deprecated String.prototype.substr with slice by @hyongtao-code in #23915
- Revert "feat: support to upload files for visual model call when running LLM node for debugging in a single step" by @crazywoola in #23922
- Fixes #23921 by @AlexChim1231 in #23924
- feat: integrate flask-orjson for improved JSON serialization performance by @laipz8200 in #23935
- fix: resolve user profile dropdown cache sync issue across layouts by @lyzno1 in #23937
- Fix: remove redundant allowed_keys check in jsonable_encoder by @hyongtao-code in #23931
- fix(workflow/if-else): keep conditions in sync on variable rename by @iamrajhans in #23611
- chore: remove redundant .env.example from root directory by @laipz8200 in #23948
- refactor: unify pnpm version management with packageManager field by @lyzno1 in #23943
- feature: add test for tool engine serialization by @NeatGuyCoding in #23951
- Feat: External_trace_id compatible with OpenTelemetry by @hieheihei in #23918
- Fix hover button contrast in dark mode for app and dataset cards by @lyzno1 in #23955
- fix: 504 Gateway Time-out error on /console/api/version endpoint by @xb565517830 in #23961
- update: GitHub star fallback count to current value by @lyzno1 in #23957
- fix comparison with callable by @IthacaDream in #23978
- doc: add deployment pattern using Amazon ECS and CDK by @tmokmss in #23985
- chore: improved type annotations in MCP-related codes by @IthacaDream in #23984
- chore: add configurable stdio buffer sizes for plugins in compose file by @crazywoola in #23980
- Chore: remove empty files and unused code by @hyongtao-code in #23990
- fix: move database service call inside session context in workflow draft variable API by @qiqizjl in #23996
- Fix missing user_id in trace_manager by @hyongtao-code in #24024
- Fix: add 'api_key' alias for backward compatibility by @hyongtao-code in #24022
- Update mypy.ini by @hyongtao-code in #24014
- chore(i18n): correct japanese translation by @kurokobo in #24041
- no used function for message_queue. by @zhanluxianshen in #24027
- Revert "Fix: Correct file variable handling for custom tools in workflow" by @kurokobo in #24061
- Restore useLabelStore mistakenly removed in commit 403e2d5 by @hyongtao-code in #24052
- chore: synchronize translations by @lyzno1 in #24044
- feat: add testcontainers based tests for metadata service by @NeatGuyCoding in #24048
- feat: add testcontainers based tests for model loadbalancing service by @NeatGuyCoding in #24066
- feat: add select input support to the conversation opener by @Zhehao-P in #24043
- feat: add CLAUDE.md for LLM-assisted development guidance by @laipz8200 in #23946
- feat: add Redis SSL/TLS certificate authentication support by @laipz8200 in #23624
- Fix sticky table header transparency with backdrop-filter blur in dark mode by @lyzno1 in #23999
- fix: update first_id logic to use the oldest answer item in chat messages by @liugddx in #23992
- refactor: improve loading animation and debug panel styles by @WTW0313 in #24075
- fix(oauth): redis compatibility by @Mairuis in #23959
- feat: enchance prompt and code by @iamjoel in #23633
- fix: return empty list instead of raising exception for qdrant search when score_threshold is 1 by @BoWuGit in #24032
- chore: translate i18n files by @github-actions[bot] in #24081
- fix: no current code caused code generation show error by @iamjoel in #24086
- fix(ui): Optimize UI component styles and layouts (#24090) by @HyaCiovo in #24092
- feat: no longer enable auto upgrade when marketplace is disabled (#24… by @RockChinQ in #24101
- Feature/improve goto anything commands by @ZeroZ-lab in #24091
- chore: translate i18n files by @github-actions[bot] in #24102
- fix pg_vector extension requires SUPERUSER, but not available on Huawei Cloud RDS by @ElvisWai in #24093
- Revert "fix pg_vector extension requires SUPERUSER, but not availabl… by @crazywoola in #24108
- fix: validate checklist before publishing workflow by @laipz8200 in #24104
- Chore: remove some dead code in experience-enhance-group by @hyongtao-code in #24110
- fix: treat default template of code as empty by @Stream29 in #24106
- Bump pyobvector to 0.2.15 by @whhe in #24120
- Use typing.Literal to replace str places by @Zhehao-P in #24099
- feat: add delete avatar functionality with confirmation modal by @liugddx in #24127
- chore: translate i18n files by @github-actions[bot] in #24131
- an example of suppress by @asukaminato0721 in #24136
- feat: add testcontainers based tests for feature service by @NeatGuyCoding in #24026
- feat: Implements periodic deletion of workflow run logs that exceed t… by @9527MrLi in #23881
- try ast-grep by @asukaminato0721 in #24149
- fix: correct behaviour of code fix by @Stream29 in #24152
- Fix number input in tool configure form of agent node tool item by @JzoNgKVO in #24154
- Remove the second
if self.runtime is None:
check by @hyongtao-code in #24171 - Fix: correctly match http/https URLs in image upload file by @hyongtao-code in #24180
- feat: add testcontainers based tests for model provider service by @NeatGuyCoding in #24193
- Fix: replace
get_builtin_provider
withget_plugin_provider
by @hyongtao-code in #24191 - docs: format all md files by @yihong0618 in #24195
- hotfix: fix multiple case match syntax by @NeatGuyCoding in #24204
- feat: notice of the expire of education verify by @iamjoel in #24210
- Feat: Education by @GareArc in #24208
- chore: translate i18n files by @github-actions[bot] in #24211
- Httpx example by @asukaminato0721 in #24151
- add tyck tool (currently ignore the error) by @asukaminato0721 in #22592
- Fix the bug of automatically appending basepath to image resource. by @17hz in #24201
- fix: keep idempotent when init AnalyticdbVectorBySql by @lpdink in #24239
- fix: dataset doc-form compatible by @huangzhuo1949 in #24177
- feature: add test containers base tests for saved message service by @NeatGuyCoding in #24259
- Mcp support resource discovery by @CodeSpaceiiii in #24223
- fix: loop exit condition accepts variables from nodes inside the loop #24183: by @baonudesifeizhai in #24257
- feat: show the start time with seconds of the app logs by @skayliu in #24267
- fix(api):Fix the issue of empty and not empty operations failing in k… by @rouxiaomin in #24276
- fix: rollback when AnalyticDB create zhparser failed by @lpdink in #24260
- fix: value_type check failed when updating variables by @me0106 in #24274
- [Test] add unit tests for ProviderConfigEncrypter encrypt/mask/decrypt by @hyongtao-code in #24280
- refactor: replace try-except blocks with contextlib.suppress for cleaner exception handling by @liugddx in #24284
- style: replace
h-[1px]
withh-px
to unify the writing format of Tailwind CSS by @rookie-orange in #24146 - Fix: safe defaults for BaseModel dict fields by @hyongtao-code in #24098
- [CHORE]: x: T = None to x: Optional[T] = None by @Gnomeek in #24217
- feature: add test containers base tests for tag service by @NeatGuyCoding in #24313
- [Test] add unit tests for web_reader_tool.py by @hyongtao-code in #24309
- Annotations example by @asukaminato0721 in #24304
- an example of sessionmaker by @asukaminato0721 in #24246
- feat: implement TooltipManager for managing tooltip lifecycle by @ARRY7686 in #24236
- Flask 3.1.2 upgrade fix by Avoids using current_user in background thread by @Eric-Guo in #24290
- fix: Optimize scrolling experience on plugin page (#24314) by @HyaCiovo in #24322
- auto format md files by @asukaminato0721 in #24242
- Feat/chat message image first for agent and advanced_chat APP by @jiangbo721 in #23796
- Update knowledge_retrieval_node.py by @AuditAIH in #24111
- example of next(, None) by @asukaminato0721 in #24345
- feat: Add default value support for all workflow start node variable types by @17hz in #24129
- refactor: simplify repository factory with Django-style import_string by @laipz8200 in #24354
- Fix missing database commit in provider update handler by @laipz8200 in #24357
- Node search supports model and name search by @ZeroZ-lab in #24331
- [Chore/Refactor] Use centralized naive_utc_now for UTC datetime operations by @laipz8200 in #24352
- Expose agent node usage by @DavideDelbianco in #24355
- fix: correct agent node token counting to properly separate prompt and completion tokens by @laipz8200 in #24368
- feature: add test containers based tests for web conversation service by @NeatGuyCoding in #24372
- fix kb api access docs by @kenwoodjw in #24377
- fix child-chunk ownership validation by @kenwoodjw in #24374
- Fix incorrect exception reference for
json.dumps()
by @hyongtao-code in #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 #24293
- try flask_restful -> flask_restx by @asukaminato0721 in #24310
- chore: remove feature comparison tables from all README files by @laipz8200 in #24403
- fix(api): restful to restx migration issue by @MatriQ in #24416
- fix(vector): use semantic version comparison for version check by @huayaoyue6 in #24409
- hotfix: add test containers based tests for webapp auth service by @NeatGuyCoding in #24397
- chore: apply static type checks on celery async task dispatches and imports by @bowenliang123 in #24418
- hotfix: add test containers based tests for website service by @NeatGuyCoding in #24430
- feat: API docs for service api by @laipz8200 in #24425
- feat: API docs for mcp by @laipz8200 in #24424
- feat: API docs for /files by @laipz8200 in #24423
- Fix auth error handling by @hyongtao-code in #24420
- refactor: better error handler by @laipz8200 in #24422
- feat: auto-login after admin account setup by @laipz8200 in #24395
- fix delete conversations via Api and delete conversations from db as well by @jubinsoni in #23591
- feat: Add SQLALCHEMY_MAX_OVERFLOW configuration to support database connection pool overflow by @ZeroZ-lab in #24432
- docs: better doc for dev in api like Claude.md by @yihong0618 in #24442
- example for logging by @asukaminato0721 in #24441
- fix: Update doc word count after delete chunks by @AaronMKk in #24435
- fix: Fix login error handling by raising exception instead of returning by @laipz8200 in #24452
- fix: add backdrop-blur-sm to plugin dropdown filters for consistent dark mode styling by @lyzno1 in #24454
- feat: Optimize Docker build process by adding script to remove unnecessary files by @WTW0313 in #24450
- fix: flask_restx namespace path wrong by @quicksandznzn in #24456
- remove: document download file permission by @quicksandznzn in #24459
- fix(flask_restx): invite member email parse error by @quicksandznzn in #24464
- feat: add multi model credentials by @hjlarry in #24451
- refactor: Update shareCode in useEffect to avoid setState during render by @Eric-Guo in #24468
- feat: Show tooltip on document names in document list by @aopstudio in #24467
- feat: If combining text and files, place the text prompt after the fi… by @jiangbo721 in #24472
- chore: translate i18n files by @github-actions[bot] in #24474
- optimize close action on about page by @lxjustdoit in #24342
- Fix TypeError: object of type int has no len() by @zhanluxianshen in #24484
- example of remove some reflections by @asukaminato0721 in #24488
- improve border radius by @jubinsoni in #24486
- example: limit current user usage by @asukaminato0721 in #24470
- feat: migrate Inner API module to Flask-RESTX by @liugddx in #24492
- Fix CONTRIBUTING links in localized READMEs by @aopstudio in #24504
- Fix missing return 200 in response handling by @hyongtao-code in #24499
- hotfix: add test containers based tests for workflow app service by @NeatGuyCoding in #24501
- fix: standardize authentication error messages to prevent user enumeration by @laipz8200 in #24324
- chore: hide delete action when avatar is none by @crazywoola in #24512
- feat: add authorizations for swagger doc by @hjlarry in #24518
- opt(api): optimize update contention on the providers table by @QuantumGhost in #24520
- chore: standardize to official astral-sh/setup-uv@v6 action by @lyzno1 in #24527
- sort on display status by @jubinsoni in #24252
- readme and claude.md sync. by @Eric-Guo in #24495
- feat(theme): add color variable config by @Yessenia-d in #24541
- code cleans ,and add exception message. by @zhanluxianshen in #24536
- fix:external dataset weight rerank bug by @huangzhuo1949 in #24533
- fix infinite loop when clean unused dataset by @kenwoodjw in #24542
- fix: unify log format, use placeholders instead of string concatenation by @ZeroZ-lab in #24544
- api: support to config disabling Swagger UI in api service by @bowenliang123 in #24440
- fix: cve issue by @kenwoodjw in #24555
- feat: Auto-associate variables in Jinja editor mode by @17hz in #24561
- Refactor: use logger = logging.getLogger(name) in logging by @hyongtao-code in #24515
- fix(api):safe reset in db pool, avoid rollback in gevent callback by @rouxiaomin in #24556
- feat: support bool type variable by @iamjoel in #24437
- example on orm typing by @asukaminato0721 in #23322
- refactor(api-access): refactor code group by @nite-knite in #24565
- refactor: unify blob chunk merging logic for plugin tool and agent by @Yeuoly in #24575
- fix: when credential unauthrozied display green color by @hjlarry in #24572
- fix: rag/milvus clarify full-text search warning with actionable guidance by @Petrus-Han in #24570
- Chore: remove dead var in
DocumentBatchIndexingEstimateApi
by @hyongtao-code in #24497 - fix: code lint by @jiangbo721 in #24563
- chore: translate i18n files by @github-actions[bot] in #24566
- Feat: add AGENTS.md with symlink for Coding Agents by @fdb02983rhy in #24586
- add missing by @asukaminato0721 in #24584
- Restrict autofix workflow to main branch by @asukaminato0721 in #24581
- hotfix: add test containers based tests for workflow run service by @NeatGuyCoding in #24602
- add rule for logging check by @asukaminato0721 in #24553
- Fix tooltip visibility issues during scroll in model selector popup by @Ujjwal-here in #24593
- fix: handle non-array segment types in Loop node by @laipz8200 in #24590
- chore(api): Use uuidv7 as PK for new provider crendential tables by @QuantumGhost in #24545
- cleanup: remove temporary boolean test files from root directory by @lyzno1 in #24610
- fix: tool provider deadlock by @Mairuis in #24532
- Chore : rm dead code detected by pylance by @hyongtao-code in #24588
- refactor(http-request): Remove the reflective calls to ssrf_proxy and replace them with explicitly defined dictionary retrievals. by @liugddx in #24596
- Fix login tokens and fix task clean_messages create_time. by @zhanluxianshen in #24574
- fix(api): fix incorrectly handling of
array[boolean]
constant in loop node by @QuantumGhost in #24619 - chore: bump version from 1.7.2 to 1.8.0 by @laipz8200 in #24539
New Contributors
- @lslzl3000 made their first contribution in #23743
- @xinlmain made their first contribution in #20050
- @xb565517830 made their first contribution in #23872
- @Zhehao-P made their first contribution in #24043
- @BoWuGit made their first contribution in #24032
- @ElvisWai made their first contribution in #24093
- @9527MrLi made their first contribution in #23881
- @17hz made their first contribution in #24201
- @CodeSpaceiiii made their first contribution in #24223
- @skayliu made their first contribution in #24267
- @me0106 made their first contribution in #24274
- @rookie-orange made their first contribution in #24146
- @Gnomeek made their first contribution in #24217
- @ARRY7686 made their first contribution in #24236
- @AaronMKk made their first contribution in #24435
- @aopstudio made their first contribution in #24467
- @lxjustdoit made their first contribution in #24342
- @Yessenia-d made their first contribution in #24541
- @Petrus-Han made their first contribution in #24570
- @Ujjwal-here made their first contribution in #24593
Full Changelog: 1.7.2...1.8.0