v1.2.0
🚀 What’s New in v1.2.0? 🚀
Hello community! We’re excited to share our v1.2.0 update with you—it's packed with impressive new features, enhancements, and of course, some good ol' bug fixes. Sit back, sip your coffee, and let's dive into what's new!
🎉 Highlight of the Release
- New Workflow Loop Node: A huge shoutout to @Woo0ood, @arkunzz, @Gevtolev and @zxhlyh for dropping this game-changer in #14863, #17268 and #17273! The Loop Node feature maximizes efficiency in automation by allowing you to iterate over items in your workflows seamlessly. This is a big step forward in letting you do more with less. Kudos to the development team for making this happen!
🌟 New Features
-
Childchunk API Added: Thanks to @ZeroZ-lab in #16094, we've introduced the childchunk API to enhance your workload flexibility.
-
OceanBase Hybrid Search: Courtesy of @hsiong in #16652, this feature integrates hybrid search capabilities within OceanBase, providing more robust query options.
-
Webapp Input Flexibility: Webapp now allows input changes after a conversation starts, by @JzoNgKVO in #16901.
-
Langfuse LLM Node: Input and output support are enhanced by @ZhouhaoJiang in #16924.
-
Tablestore Vector Database Support: By @wanttobeamaster in #16601—it's like giving your data superpowers!
-
WaterCrawl.dev Integration: Thanks to @amirasaran in #16396, this is now available as a new knowledge base provider.
-
Plugin Daemon OSS Env Config: By @quicksandznzn in #17663, enhancing your plugin management.
🛠️ Enhancements & Bug Fixes
-
Metadata Fixes & Optimizations: We've got metadata variable value fixes by @JohnJyong in #16665 and metadata filter improvements from various contributors. Your data management is smoother than ever!
-
UI/UX Improvements: Whether it’s fixing layout issues on mobile (thanks, @LeeeeeeM in #16793!) or improving text spacing on charts (@ACAne0320, #16894), we’re committed to a slicker experience.
-
Multilingual Support: Added jp_ja for the knowledge API by @crazywoola and supported Tablestore vector database—a shout-out to our international users.
-
UI Consistency Tweaks: Little UI adjustments for a big impact, like updating border radius for dropdowns and other forms, thanks to our vigilant community contributors.
-
Security & Efficiency: Fixes like the provider credentials load error by @liuzhenghua ensure the platform's robust performance. Also, optimizing the database workflow app log index has been another focus area.
-
Additional Fixes: Addressing multiple translation gaps, account errors, and something as specific as the
Function's Name Mismatch
by @hyongtao-db—keeping us refined! -
Education API Introduction: By @GareArc in #17168, we’re aiming to broaden horizons with educational integrations.
🏗️ Miscellaneous
- Code Quality & Documentation: We've cleaned up typos, added unit tests, and brought in a sparkle to our codebases for VDB, ensuring smooth sailing for devs and users!
In conclusion, this release is about empowering you with flexibility and reliability, from the all-new Loop Node to a windfall of other enhancements. Thanks to everyone contributing to shaping the future with our open-source spirit. Keep pushing the envelope and happy innovating! 👐
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.2.0
-
Update Python dependencies:
cd api poetry install
-
Then, let's run the migration script:
poetry run flask db upgrade
-
Finally, run the API server, Worker, and Web frontend Server again.
What's Changed
- Feat add childchunk api by @ZeroZ-lab in #16094
- Metadata variable value fix by @JohnJyong in #16665
- Fix/vdb lindorm by @AlwaysBluer in #16660
- Fix function's name mismatch by @hyongtao-db in #16681
- fix: pgvector metadata filter by @kenwoodjw in #16688
- mark weight type as optional by @JohnJyong in #16701
- fix: regex expressions distorted in code block by @ACAne0320 in #16690
- Update prompts.py:Fix conversation title language for Italian conversations by @zhangkun-21 in #16696
- feat: Add OceanBase hybrid search features by @hsiong in #16652
- fix: fix icon generation error on Windows platform by @hudenghui in #16254
- fix: update htmlContent type and wrap button in div for manualClose by @WTW0313 in #16716
- fix milvus filter search by @JohnJyong in #16725
- fix full-doc mode document doesn't reindex after enable or un_archive by @JohnJyong in #16737
- fix(slider): the slider's style is not as expected by @Nov1c444 in #16711
- fix: trim whitespace from URL input in file uploader component #16700 by @ZeroZ-lab in #16722
- chore(slider): fix the slider lint error by @Nov1c444 in #16746
- Fix some typos in CONTRIBUTING.md by @hyongtao-db in #16761
- fix: provider credentials load error by @liuzhenghua in #16695
- feat: add jp_ja for knowledge api by @crazywoola in #16766
- fix the major and minor version of stub types declaration with build date stripped by @bowenliang123 in #16709
- fix typo in _process_metadata_filter_func by @kztao in #16780
- Remove the useless excluded item in mypy.ini by @hyongtao-db in #16777
- fix: fix ui layout when in mobile mode by @LeeeeeeM in #16793
- Add and modify jp translation by @HanqingZ in #16807
- fix multiple metadata filter's confusing setting by @JohnJyong in #16771
- feat: add the maximum number of iterations to env by @XiaoBa-Yu in #16805
- chore: handle Textarea component ref warning in react 19 by @iamjoel in #16818
- fix missing agent node help link by @hjlarry in #16841
- fix: fix missing oceanbase config enable_hybrid_search init by @yourchanges in #16852
- fix: tool's number and secet input display issue by @hjlarry in #16834
- install pandoc by @JohnJyong in #16825
- chore: remove third party models by @hjlarry in #13885
- Fix Custom Tool File Upload: Resolve Multiple Files Recognition and Multipart Boundary Issues by @JimHeo in #14014
- fix(agent app): moderation feature can't work as expected by @Nov1c444 in #16794
- feat: webapp support change inputs after conversation started by @JzoNgKVO in #16901
- feat: tencent vectordb: use grpc client and set upsert batch size by @wlleiiwang in #16016
- feat(api): optimize conversation name generation logic in message app by @AlexYuan997 in #16917
- fix: fix the bug where pressing Enter in Chinese input mode on Safari… by @LeeeeeeM in #16914
- fix: some parallel logs missing by @iamjoel in #16923
- Fix wrong allowed extensions by @hyongtao-db in #16893
- feat: support Tablestore vector database by @wanttobeamaster in #16601
- fix(ui): improve chart text spacing and prevent unnecessary truncation by @ACAne0320 in #16894
- feat: add langfuse llm node input and output by @ZhouhaoJiang in #16924
- fix: enhance filename validation and extraction in FileService #16867 by @ZeroZ-lab in #16869
- fix: WorkflowRunDetailApi created_at、finished_at types changed to timestamps by @guoshiqiufeng in #16821
- Revert "feat: add langfuse llm node input and output" by @crazywoola in #16947
- remove business contact info in license by @guchenhe in #16985
- fix: add overflow hidden to Collapse component #17009 by @ZeroZ-lab in #17011
- fix: show build app limit in app creation modal by @JzoNgKVO in #16940
- fix: _build_from_remote_url get extension is .bin by @guoshiqiufeng in #17020
- fix: update account dropdown border radius for improved UI consistency #17030 by @ZeroZ-lab in #17031
- fix(answer): The chat interface outputs twice by @Nov1c444 in #17033
- ci: skip setting up opengauss for vdb tests by @bowenliang123 in #17016
- docs: correct type desc by @vkboo in #17043
- fix: bug that overwrote the llm model thought process when final_answ… by @jiangbo721 in #17074
- Chore/code format and Repair commit_id 3254018 more deleted codes and Fix naming error ambiguity between workflow_run_id and workflow_id by @jiangbo721 in #17075
- fix: enhance file extension condition check for if-else node by @lrhan321 in #17060
- chore: add .env-local to gitigonre by @ClSlaid in #17042
- fix: fix cannot select stream-tool-call in agent modal by @LeeeeeeM in #17015
- fix: update border radius of ListboxOptions for improved UI consistency #17101 by @ZeroZ-lab in #17102
- Added CONTRIBUTING.md translations for multiple languages by @adpanru in #17108
- fix: When a WorkSpaceNotAllowedCreateError occurs, may account is not defined by @jiangbo721 in #11144
- perf: optimizing db WorkflowAppLog index by @horochx in #14710
- feat: poolize the ops trace instance by @acelyc111 in #15947
- Feat: dark mode for independent pages by @JzoNgKVO in #17045
- fix: model page switch marketplace by @zxhlyh in #17147
- chore: docstring not match the function parameter by @hjlarry in #17162
- Fix: iframe mount delay of embedded chatbot by @JzoNgKVO in #17167
- Fix/workspace logo style by @douxc in #17164
- fix: run frontend test failed and enable run test in CI by @iamjoel in #17017
- feat: organize button adds organization of nodes inside iteration/loop nodes by @ACAne0320 in #17068
- chore: independent page style update by @JzoNgKVO in #17176
- fix: code block syntax cannot be displayed correctly in react mode by @shirukai in #16904
- feat: allow the embedding in websites to customize sys.user_id by @ModyQyW in #16062
- fix: enhance validation of workflow file types by @lrhan321 in #16203
- optimize lindorm vdb add_texts by @AlwaysBluer in #17212
- Fix api document by @ZeroZ-lab in #17178
- Support variables in question classifier classes by @obadakhalili in #17227
- fix: keywords field not persist in segements api by @liuzhenghua in #17151
- fix: Fix lodash module not found issue by @hudenghui in #16953
- Feat:edu frontend by @JzoNgKVO in #17251
- Feat/education api by @GareArc in #17168
- chore: slice workflow store by @zxhlyh in #17254
- fix: web app form component is changing an uncontrolled inpu… by @douxc in #17269
- SaaS: batch upload limit check for sandbox plan by @JohnJyong in #17264
- Feat/loop break node by @zxhlyh in #17268
- feat: add zod by @iamjoel in #17277
- fix: web docker file config by @csurong in #17130
- fix: enlarge workspace selector width to show current workspace by @bowenliang123 in #17288
- fix: add app quota check to import API by @1Ckpwee in #17295
- [Documentation] Update README under docker folder for middleware components. by @TedaLIEz in #17284
- Fix (api): Fix the processing logic of the retriever_resources field. by @liguochuan00 in #17304
- Feat/loop node by @Gevtolev in #17273
- feat: add i18n checker (ui) by @kindy in #17283
- fix: sandbox can upload multiple files by upload by @iamjoel in #17323
- fix: loop single run log by @zxhlyh in #17329
- fix: update permission logic to ensure administrators always have access by @BenjaminX in #17360
- Lindorm VDB bugfix by @AlwaysBluer in #17357
- fix: remove setPublishedAt on handleRestoreFromPublishedWorkflow by @ACAne0320 in #17358
- fix: update docker-compose commands $17355 by @ZeroZ-lab in #17356
- add doc support in knowledge base for unstructured by @JohnJyong in #17352
- fix duplicate documents returned by Get document list service API by @JohnJyong in #17351
- fix: improve error handling and default values in fetchPlan function by @hikariming in #17320
- fix: move hardcoded text to language settings (#16990) by @Perfecto23 in #17133
- fix annotation failed when embedding model and dimension changed by @JohnJyong in #17347
- Fix/15429 forgotpasswordresetapi session management by @crazywoola in #17390
- fix: update tag input border styles for special mode and focus state by @ZeroZ-lab in #17393
- feat: add langfuse llm node input and output by @lzs0603 in #17368
- Feat/change workspace name by @crazywoola in #17402
- feat: remove file and file[] restriction in code node by @LeeeeeeM in #17382
- feat: hide 'Find More in Marketplace in Tools' by @XiaoBa-Yu in #16955
- feat: agent node add memory by @Nov1c444 in #15976
- fix: #15548 Resolve errors in SQL queries caused by SELECT fields not appearing in the GROUP BY clause. by @bravomark in #17408
- Chore: fix some wrong annotations by @hyongtao-db in #17413
- Fix/dsl kb encrypt by @Gevtolev in #17353
- chore: add unit test to high frequency component by @iamjoel in #17423
- feat: add resize debug panel width by @hjlarry in #17427
- doc: add JSDoc to file
format.ts
by @samuel871211 in #17426 - fix: keep image url by @ModyQyW in #17430
- fix: client side error by @crazywoola in #17428
- refactor: type improvement of file
oneMoreStep.tsx
by @samuel871211 in #17431 - fix: skip file format check of mime types for generated files by tools by @bowenliang123 in #17455
- chore: remove outdated contact by @alterxyz in #17467
- fix: change
Switch.props.ref
to optional prop to align withOriginalSwitch
by @samuel871211 in #17443 - Fix/17466 cannot create a knowledge base by adding files by @crazywoola in #17470
- fix: adjust styling for active and disabled states in Stepper component by @ZeroZ-lab in #17485
- Fix(webapp): long table scroll issue of workflow by @JzoNgKVO in #17491
- refactor & perf:
import { noop } from 'lodash-es'
acrossweb
by @samuel871211 in #17439 - FEAT: support Tencent vectordb to full text search by @wlleiiwang in #16865
- refactor & perf: declare const object outside component
VarReferencePicker
by @samuel871211 in #17496 - refactor: type improvement of component
AddVariablePopupWithPosition
by @samuel871211 in #17497 - refactor & perf: declare const object outside component
ConstantField
by @samuel871211 in #17495 - refactor & perf of file
var-reference-vars.tsx
by @samuel871211 in #17444 - optimize: plugin permission by @quicksandznzn in #17507
- feat(improve-api-endpoints): Added Datasets and Annotation APIs by @jasonfish568 in #12237
- fix: chat api doc by @zxhlyh in #17515
- fix: Correct "The job is not exist" to "The job does not exist" by @jasonfish568 in #17516
- feat: Integrate WaterCrawl.dev as a new knowledge base provider by @amirasaran in #16396
- chore: add missing i18n by @crazywoola in #17517
- fix: loop and interation node not showing tracing entry in chatflow by @GeorgeCaoJ in #17500
- feat(plugin/endpoint): add supports for provider to register
array[tool]
type field by @RockChinQ in #17523 - deal dataset metadata and metadata binding by @JohnJyong in #17544
- fix: update QA document default language from "Chinese" to "Chinese Simplified" by @ACAne0320 in #17541
- fix ChatCompletionResponse docs by @kenwoodjw in #17534
- fix: only the owner can edit the member information by @junjiem in #17538
- fix: remove wrong padding-bottom=0 by @ACAne0320 in #17551
- deal db session in celery worker by @JohnJyong in #17549
- fix: compatibility issues for currentStrategy.features is null by @LeeeeeeM in #17581
- feat: support select-type variables in Metadata Filtering (#17440 by @marcelodiaz558 in #17445
- fix: segment keywords bug by @huangzhuo1949 in #17599
- fix: Extract docx file fails when the file contains an invalid link by @coolgo0811 in #17576
- fix: Sass @import warning by @iamjoel in #17604
- fix(transport): add missing verify parameter to httpx.HTTPTransport by @IAOTW in #17612
- chore: add unit test to high frequency hooks by @iamjoel in #17617
- chore: bump pnpm to v10 in web dockerfile by @bowenliang123 in #17611
- feat: enhance index type handling and add error notification for missing embedding model by @WTW0313 in #16836
- Fixed the model-modal titles not being clearly distinguished between "Add" and "Setup" by @maoguy in #17634
- chore: bump Nodejs in web image from 20 to 22 LTS by @bowenliang123 in #13341
- Accelerate migration by @wanghan5 in #17088
- Fix Performance Issues: by @wanghan5 in #17083
- chore: add
'no-empty-function': 'error'
toeslint.config.mjs
by @samuel871211 in #17656 - optimize: docker-compose.middleware.yaml update env_file dependence by @SulphurFH in #17646
- chore: add script for running mypy type checks and speed up mypy checks in CI jobs by @bowenliang123 in #17489
- feat: add plugin daemon oss env config by @quicksandznzn in #17663
- fix: Account.query => db.session.query(Account) by @crazywoola in #17667
- Chore: remove beta tag of app type by @JzoNgKVO in #17676
- chore: find code with high complexity by @iamjoel in #17679
- feat(graph_engine): yield control to other threads before node run. by @laipz8200 in #17689
- chore(*): bump version to 1.2.0 by @laipz8200 in #17675
New Contributors
- @zhangkun-21 made their first contribution in #16696
- @hsiong made their first contribution in #16652
- @hudenghui made their first contribution in #16254
- @yourchanges made their first contribution in #16852
- @JimHeo made their first contribution in #14014
- @wlleiiwang made their first contribution in #16016
- @AlexYuan997 made their first contribution in #16917
- @wanttobeamaster made their first contribution in #16601
- @vkboo made their first contribution in #17043
- @ClSlaid made their first contribution in #17042
- @adpanru made their first contribution in #17108
- @shirukai made their first contribution in #16904
- @1Ckpwee made their first contribution in #17295
- @TedaLIEz made their first contribution in #17284
- @liguochuan00 made their first contribution in #17304
- @Gevtolev made their first contribution in #17273
- @kindy made their first contribution in #17283
- @Perfecto23 made their first contribution in #17133
- @lzs0603 made their first contribution in #17368
- @bravomark made their first contribution in #17408
- @samuel871211 made their first contribution in #17426
- @jasonfish568 made their first contribution in #12237
- @amirasaran made their first contribution in #16396
- @marcelodiaz558 made their first contribution in #17445
- @coolgo0811 made their first contribution in #17576
- @IAOTW made their first contribution in #17612
- @maoguy made their first contribution in #17634
- @wanghan5 made their first contribution in #17088
- @SulphurFH made their first contribution in #17646
Full Changelog: 1.1.3...1.2.0