🎉 Dify v1.7.1 Release Notes 🎉
Hello, Dify enthusiasts! We're thrilled to announce version 1.7.1 of our platform, bringing a fresh batch of refinements and enhancements to your workflow. Here's a breakdown of what's changed:
🚀 New Features
-
Default Value for Select Inputs: Now you can set a default value for select input fields, providing a smoother user experience when working with forms. Thanks to @antonko. (#21192)
-
Selecting Variables in Conditional Filters: We've added the capability to select variables in conditional filtering within list operations. This feature, spearheaded by @leslie2046, will streamline data manipulation tasks. (#23029)
-
OpenAPI Schema Enhancement: Support for
allOf
in OpenAPI properties inside schema has been added, courtesy of @mike1936. It's a big win for API design consistency. (#22975) -
K8s Pure Migration Option: We've introduced a pure migration option for the
api
component within Kubernetes deployments, making migrations simpler for large-scale systems. Thanks, @BorisPolonsky ! (#22750)
⚙️ Bug Fixes
-
Langfuse Integration Path: Incorrect path handling with Langfuse integration has been corrected by @chenguowei. Now it behaves just right within your API calls. (#22766)
-
CELERY_BROKER Improvements: For those using RabbitMQ, the broker handling issue during batch document segment additions has been addressed by @zhaobingshuang. No more endless processing status! (#23038)
-
Metadata Batch Edit Cross-page Issue: Resolved a previous issue with cross-page document selection during metadata batch edits. Thanks to @liugddx for smoothing out the workflow. (#23000)
-
Windows PEM KeyPath Fix: Corrected path errors for private.pem key files on Windows systems, ensuring cross-platform reliability. Thanks to @silencesdg. (#22814)
🔄 Improvements
-
ToolTip Component Refinement: We've refined the interaction of ToolTip components within menus to enhance readability and usability. Kudos to @HyaCiovo for this optimization. (#23023)
-
PostgreSQL Healthcheck: Enhanced the healthcheck command to avoid fatal log errors in PostgreSQL. Thanks to @J2M3L2's talismanic touch. (#22749)
-
Time Formatting Internationalization: The time formatting feature has been refactored for better international support, thanks to @HyaCiovo. (#22870)
🪄 Miscellaneous
-
Revamped Tool List Page: @nite-knite made the tool list page slicker and more user-friendly—check it out! (#22879)
-
Duplicate TYPE_CHECKING Import: Removed those unnecessary imports for sleeker code. Thanks, @hyongtao-db. (#23013)
Pulling all these improvements together, this release takes a big step forward in polishing everyday experiences and paving the way for future development. Enjoy the upgrade, and as always, reach out with feedback and ideas for what you'd love to see next. Keep coding! 🚀
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.7.1
-
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
- fix: tablestore TypeError when vector is missing by @wanttobeamaster in #22843
- fix tablestore full text search bug by @wanttobeamaster in #22853
- test: add comprehensive integration tests for API key authentication system by @farion1231 in #22856
- fix: private.pem keyPath error in windows by @silencesdg in #22814
- feat(k8s): Add pure migration option for
api
component by @BorisPolonsky in #22750 - refactor: Change "filter" to "where" to match SQLAlchemy 2.x style. by @asukaminato0721 in #22801
- feat: Add user variable processing function to chat history by @croatialu in #22863
- chore: code format model-selector use enum by @jiangbo721 in #22787
- add autofix by @asukaminato0721 in #22785
- refactor(dayjs): Refactor internationalized time formatting feature (#22870) by @HyaCiovo in #22872
- fix: improved conversation name by @IthacaDream in #22840
- feat: revamp tool list page by @nite-knite in #22879
- fix: type error in list-operator by @leslie2046 in #22803
- Feat: add notification for change email completed by @JzoNgKVO in #22812
- refactor(i18next): streamline fallback translation handling and initi… by @WTW0313 in #22894
- fix: support authorization using session and user_id in URL. by @douxc in #22898
- fix(plugins_select): Adjust z-index, fix issue where options cannot be displayed (#22873) by @HyaCiovo in #22893
- Feat/change user email freezes limit by @zyssyz123 in #22900
- fix: refine handling of constant and mixed input types in ToolManager and ToolNodeData by @Yeuoly in #22903
- fix: rounded by @ZeroZ-lab in #22909
- fix: Optimize input variable retrieval logic (#22888) by @HyaCiovo in #22914
- chore: enhance error message when handling PluginInvokeError by @Yeuoly in #22908
- Feat: change user email freezes limit by @JzoNgKVO in #22912
- fix: unexpected redirection when landing at workflow by @JzoNgKVO in #22932
- Improve: support custom model parameters in auto-generator by @quicksandznzn in #22924
- chore: translate i18n files by @github-actions[bot] in #22934
- fix: improve PostgreSQL healthcheck cmd to avoid fatal log errors (#22749) by @J2M3L2 in #22917
- test: add comprehensive tests for file_factory build_from_mapping by @farion1231 in #22926
- fix: Optimize AppInfo component styles and fix CustomizeModal step display (#22930) by @HyaCiovo in #22935
- make logging not use f-str, change others to f-str by @asukaminato0721 in #22882
- fix: correct typo in function name paser_docx_part -> parser_docx_part by @little-huang in #22936
- fix: Refactor i18n config and fix plugin search box styling issue by @WTW0313 in #22945
- fix: Update the scheduling method for timed tasks, by @ZeroZ-lab in #22779
- Fix incorrect assert type in the AgentNode class by @hyongtao-db in #22964
- feat: clear all annotation by @leslie2046 in #22878
- Remove redundant condition check by @hyongtao-db in #22983
- adding mcp error in toast by @jubinsoni in #22987
- fix: Update trigger styles for disabled state in PureSelect component by @weijunjiang123 in #22986
- fix: eliminate dark mode flicker by moving ThemeProvider to root level by @lyzno1 in #22996
- Fix: correct misplaced
ensure_ascii=False
by @hyongtao-db in #22997 - node title number on copied iteration node by @jubinsoni in #23004
- adding LANG LC_ALL PYTHONIOENCODING UTF-8 by @jubinsoni in #22928
- fix: resolve cross-page document selection issue in metadata batch edit by @liugddx in #23000
- fix: Improve create_agent_thought and save_agent_thought Logic by @IthacaDream in #21263
- ability to select same type sub item by preserving children of both f… by @jubinsoni in #23002
- Chore: remove duplicate TYPE_CHECKING import by @hyongtao-db in #23013
- refactor(web): Optimize the interaction effect of ToolTip component in menu items (#23020) by @HyaCiovo in #23023
- Rollback Aliyun Trace Icon File by @hieheihei in #23027
- feat: Support allOf in OpenAPI properties inside schema #22946 by @mike1936 in #22975
- chore: Updata eslint config dependencies by @WTW0313 in #23040
- feat: Support selecting variables in conditional filtering in list operations. by @leslie2046 in #23029
- fix: delete the old provider_config_cache after refresh_credentials by @jingfelix in #23033
- fix(dataset): CELERY_BROKER uses amqp rabbitmq. When adding document segments in batches and uploading large files, the status will always remain stuck at "In batch processing" #22709 by @zhaobingshuang in #23038
- fix(api): fix incorrect path handling in Langfuse integration by @chenguowei in #22766
- feat: default value option for select input fields by @antonko in #21192
- fix(web): Fix issues with workflow as tool configuration button (#23039) by @HyaCiovo in #23050
- fix retry document db session issue by @JohnJyong in #23046
- refactor(web): Optimize workflow operation tip popup (#23051) by @HyaCiovo in #23052
- fix: changed email login use oauth will create an new account by @zyssyz123 in #23057
- chore(version): bump version to 1.7.1 by @QuantumGhost in #23048
New Contributors
- @silencesdg made their first contribution in #22814
- @J2M3L2 made their first contribution in #22917
- @little-huang made their first contribution in #22936
- @weijunjiang123 made their first contribution in #22986
- @liugddx made their first contribution in #23000
- @mike1936 made their first contribution in #22975
- @jingfelix made their first contribution in #23033
- @chenguowei made their first contribution in #22766
Full Changelog: 1.7.0...1.7.1