✨ What’s New in v0.14.2? ✨
We’re thrilled to announce the release of v0.14.2, packed with new features and critical enhancements. Here’s everything new in this update:
🚀 New Features
-
Workflow Retry Functionality: We've enhanced workflow resilience with a retry feature by @zxhlyh. Your nodes will make repeat attempts if they face execution errors, minimizing disruptions.
-
Order Support in Models: Now you can specify the order between text and files when using models like Gemini and Claude, thanks to the work of @laipz8200. This gives you precise control over data flow.
-
Azure GPT-4o-2024-11-20 Model: Thanks to @agungbesti, this powerful model is now part of our lineup, offering advanced capabilities for your needs.
-
Gemini-2.0-flash-thinking-exp-1219: Explore this cutting-edge model brought to you by @hjlarry—designed to enhance your application capabilities.
✨ Enhancements
-
HTTP Request Node File Type Detection: Improved by @tancheng33 to ensure better handling of file uploads.
-
Memory Optimization: Reduced memory usage from 800+ MB to 500+ MB, thanks to the optimizations by @yihong0618.
-
Partial Success Status in App Logs: With the help of @Nov1c444, we’ve introduced a new log metric to capture partial successes across app operations.
-
Workflow Parallel Depth Limit Configuration: Gain more control over concurrency in your workflows with this new setting by @laipz8200.
We owe a huge thank you to all the contributors for their hard work and dedication. Your continuous support and input drive our improvement.
As always, keep the feedback coming, and happy building with Dify! 🚀
Upgrade Guide
Docker compose deployments
Warning
The files in the docker-legacy directory will soon stop being maintained and will be removed from the repository. If you are still using them, please switch to the new version as soon as possible.
-
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,Command, 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 API server, Worker and Web frontend Server.
-
Get the latest code from the release branch:
git checkout 0.14.2
-
Update Python dependencies:
cd api poetry install
-
Then, let's run the migration script:
poetry run flask db upgrade
-
Finally, run API server, Worker and Web frontend Server again.
What's Changed
- ci: add config ci more disscuss check #11706 by @yihong0618 in #11752
- ci: fix config ci and it works by @yihong0618 in #11807
- Fix explore app icon by @charli117 in #11808
- add-model-azure-gpt-4o-2024-11-20 by @agungbesti in #11803
- feat(ark): add doubao-pro-256k and doubao-embedding-large by @sinomoe in #11831
- fix: remove ruff ignore SIM300 by @barabicu in #11810
- fix: silicon change its model fix #11844 by @yihong0618 in #11847
- fix: float values are not json for nan value close #11827 by @yihong0618 in #11840
- Fix/10584 wrong message when no custom tool available in custom tool list by @crazywoola in #11851
- fix: comfyui tool supports https by @shaxiaozz in #11823
- fix: Enhance file type detection in HTTP Request node by @tancheng33 in #11797
- feat: add gemini-2.0-flash-thinking-exp-1219 by @hjlarry in #11863
- Fix comfyui tool https by @shaxiaozz in #11859
- fix: better gard nan value from numpy for issue #11827 by @yihong0618 in #11864
- fix: add safe dictionary access for bedrock credentials by @KMerdan in #11860
- chore(deps): bump nanoid from 3.3.7 to 3.3.8 in /web by @dependabot in #11876
- chore(db): use a better way to export models and remove unused table by @laipz8200 in #11838
- feat(llm_node): support order in text and files by @laipz8200 in #11837
- Feat: Add partial success status to the app log by @Nov1c444 in #11869
- Feat: Retry on node execution errors by @Nov1c444 in #11871
- fix: node 22 build by @AkaraChen in #11883
- chore: translate i18n files by @github-actions in #11855
- chore: add retry index migration by @Nov1c444 in #11887
- fix: better memory usage from 800+ to 500+ by @yihong0618 in #11796
- feat: add workflow parallel depth limit configuration by @laipz8200 in #11460
- Feat/workflow retry by @zxhlyh in #11885
- chore: translate i18n files by @github-actions in #11892
- fix: rerank switch by @zxhlyh in #11897
- fix: doc can not extract tables by @yihong0618 in #11879
- fix: handle document fetching from URL in Anthropic LLM model, solving base64 decoding error by @fdb02983rhy in #11858
- revert: these 2 settings by @crazywoola in #11906
- fix: dataset search-input compostion can't work in chrome by @xhdd123321 in #11907
- Update input-var-list.tsx by @Wuhu-dsm in #9987
- add three aws tools by @ybalbert001 in #11905
- fix: ensure WorkflowRun attributes are refreshed in WorkflowCycleMana… by @fdb02983rhy in #11913
- fix(retrieval_service): avoid to use exception by @laipz8200 in #11925
- fix(file_factory): validate upload_file_id before querying UploadFile by @laipz8200 in #11937
- refactor: update builtin tool provider methods to use session management by @laipz8200 in #11938
- fix: change OutputParserError to inherit from ValueError by @laipz8200 in #11935
- fix(nodes): handle errors in question_classifier and parameter_extractor by @laipz8200 in #11927
- fix(tool_file_manager): raise ValueError when get timeout by @laipz8200 in #11928
- fix(model_runtime): make invoke as ValueError by @laipz8200 in #11929
- fix: change MaxRetriesExceededError to inherit from ValueError by @laipz8200 in #11934
- fix: add RemoteFileUploadError for better error handling in remote fi… by @laipz8200 in #11933
- fix: validate response type in transform_response method by @laipz8200 in #11931
- fix: validate reranking model attributes before processing by @laipz8200 in #11930
- fix(code_node): update type hints for string and number checks in Cod… by @laipz8200 in #11936
- fix:log error(#11942) by @leslie2046 in #11943
- fix: self.method should method in api_tool.py by @yihong0618 in #11926
- fix: The default updated_at when a workflow is created by @jiangbo721 in #11709
- fix: gemini system prompt with variable raise error by @hjlarry in #11946
- fix: refactor conversation pagination to use SQLAlchemy session manag… by @laipz8200 in #11956
- fix(app_dsl_service): handle missing app mode with a ValueError by @laipz8200 in #11945
- feat(code_node): add more check by @laipz8200 in #11949
- fix(json_in_md_parser): improve error messages for JSON parsing failures by @laipz8200 in #11948
- fix: enhance type hints and improve audio message handling in TTS pub… by @laipz8200 in #11947
- fix(core/errors): change base class of custom exceptions to ValueError by @laipz8200 in #11955
- fix: raise http request node error on httpx.request error by @laipz8200 in #11954
- fix(base_node): change BaseNodeError exception type from Exception to ValueError by @laipz8200 in #11952
- fix(ops_trace_manager): handle None workflow_run in workflow_trace method and raise ValueError by @laipz8200 in #11953
- fix: change CredentialsValidateFailedError to inherit from ValueError by @laipz8200 in #11950
- fix(variable_assigner): change VariableOperatorNodeError to inherit from ValueError by @laipz8200 in #11951
- fix: messagefeedbackapi support content by @liuhaoran1212 in #11716
- fix(workflow): update updated_at default to use UTC timezone by @laipz8200 in #11960
- fix: 'dict_keys' object is not subscriptable error by @yihong0618 in #11957
- fix(commands): validate name encoding for non-Latin characters by @BenjaminX in #11965
- fix: create_feedback args are wrong by @yihong0618 in #11962
- Feat: account page dark mode by @YIXIAO0 in #11977
- fix: fix update external dataset error in dataset list by @VoidIsVoid in #11989
- Add custom to file types by @yagiyuki in #11966
- Fix 11979 by @wangiii in #11984
- fix: remove the unused retry index field by @Nov1c444 in #11903
- fix: retry node in iteration logs wrong by @Nov1c444 in #11995
- fix: Multiple Paths Between IF/ELSE Branches Invalidate Conditions by @yihong0618 in #11544
- fix: handle broader request exceptions in OAuth process by @laipz8200 in #11997
- feat: Warning on invite modal when mail setup is incomplete by @miya in #11809
- fix: remove unused credential validation logic in VectorizerProvider by @laipz8200 in #12000
- fix: Introduce ArrayVariable and update iteration node to handle it by @laipz8200 in #12001
- feat: add RequestBodyError for invalid request body handling by @laipz8200 in #11994
- Fix/workflow retry by @zxhlyh in #11999
- fix: improve error handling for file retrieval in AwsS3Storage by @laipz8200 in #12002
- fix: drop useless and wrong code in Account by @yihong0618 in #11961
- fix: add retry feature to code node by @Nov1c444 in #12005
- Fix/workflow retry log by @zxhlyh in #12013
- Fix/add retry mechanism to billing service request handling by @laipz8200 in #12006
- fix: add logging for missing edge mapping in StreamProcessor by @laipz8200 in #12008
- fix: add UUID validation for tool file ID extraction by @laipz8200 in #12011
- fix: remove json_schema if response format is disabled. by @laipz8200 in #12014
- Fix/refactor invoke result handling in question classifier node by @laipz8200 in #12015
- fix: issue Multiple Paths Between IF/ELSE Branches by @yihong0618 in #11646
- chore/bump version to 0.14.2 by @laipz8200 in #12017
New Contributors
- @shaxiaozz made their first contribution in #11823
- @tancheng33 made their first contribution in #11797
- @xhdd123321 made their first contribution in #11907
- @Wuhu-dsm made their first contribution in #9987
- @yagiyuki made their first contribution in #11966
Full Changelog: 0.14.1...0.14.2