This release focuses on improving stability, async performance, and developer experience. Expect cleaner internals, better workflow control, and improved observability across the stack.
Warning
A recent change has modernized the Dify integration for Weaviate (see PR #25447 and related update in PR #26964). The upgrade switches the Weaviate Python client from v3 to v4 and raises the minimum required Weaviate server version to 1.24.0 or newer. With this update:
- If you are running an older Weaviate server (e.g., v1.19.0), you must upgrade your server to at least v1.24.0 before updating Dify.
- The code now uses the new client API and supports gRPC for faster operations, which may require opening port 50051 in your Docker Compose files.
- Data migration between server versions may require re-indexing using Weaviate’s Cursor API or standard backup/restore procedures.
- The Dify documentation will be updated to provide migration steps and compatibility guidance.
Action required:
- Upgrade your Weaviate server to v1.24.0 or higher.
- Follow the migration guide to update your data and Docker configuration as described in the latest official Dify documentation.
- Ensure your environment meets the new version requirements before deploying Dify updates.
✨ Highlights
Workflow & Agents
- Pause and resume workflow graph executions (by @laipz8200 in #26585)
- Structured output now supported during LLM node streaming (by @white‑loub in #27089)
- Agent variables support drag‑and‑drop, just like workflow start nodes (by @yangzheli in #26899)
- Workflow runs can be filtered by status or re‑executed from logs (by @twjackysu in #26850, @wellCh4n in #26787)
Integrations & SDK
- OpenTelemetry + HTTPX tracing for better observability (by @qiqizjl in #26651)
- CORS config now accepts custom headers (by @laipz8200 in #27133)
Web & UI
- Faster load times by splitting and lazy‑loading constant files (by @yangzheli in #26794)
- Improved DataSources with marketplace plugin integration and filtering (by @WTW0313 in #26810)
- Added tax tooltips to pricing footer (by @CodingOnStar in #26705)
- Account creation now syncs interface language with display settings (by @feelshana in #27042)
⚙️ Core Improvements
- Enabled Pyright across multiple modules and fixed typing issues (by @asukaminato0721 in #26425, #26462, #26461)
- Refined HTTP timeout configurations and input validation (by @linancn in #26685)
- Redis queue efficiency improvements via cached checks and explicit key cleanup (by @Blackoutta in #26406)
- App models now track
updated_by
andupdated_at
fields (by @liugddx in #26736) - Structured output for non‑streaming and single‑step runs (by @goofy‑z in #26430)
🧩 Fixes
- Fixed duplicate chunks and dataset pagination duplication (by @kenwoodjw in #26360, @zlyszx in #25783)
- Fixed workflow token usage, LLM usage tracking, and detached user sessions (by @kenwoodjw in #26723, @laipz8200 in #27021, @liugddx in #27162)
- Resolved missing module and logical errors in Weaviate vector distance calculation (by @DhruvGorasiya in #26964, #27019)
- Fixed multi‑auth credential collisions (by @dickens88 in #26615)
- Fixed chat flickers, infinite reloads, login redirects, and loader visibility (by @DavideDelbianco in #26829, @iamjoel in #27150, #27178)
- Fixed SSRF validation in external knowledge URLs (by @mrdear in #26789)
- Corrected missing LLM output var descriptions, variable truncation logic, and EndUser relationship loading (by @hjlarry in #26648, @hj24 in #27129, @liugddx in #27162)
- Fixed dataset deselection issue when deleting a single file (by @HyaCiovo in #26502)
- Ensured correct JSON serialization and payload indentation across APIs (by @QuantumGhost in #27097, @ZeroZ‑lab in #26871)
🧹 Cleanup & DevX
- Removed unused dependencies, redundant DB commits, and dead templates (by @asukaminato0721, @yihong0618, @IthacaDream)
- Added Knip configuration for dead code detection (by @ZeroZ‑lab in #26758)
- Improved internal observability with HTTPX tracing and async telemetry (by @qiqizjl in #26651)
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.9.2
-
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
- [Chore/Refactor] Implement lazy initialization for useState calls to prevent re-computation by @Copilot in #26252
- Refactor: Use @ns.route for tags API by @asukaminato0721 in #26357
- chore: translate i18n files and update type definitions by @github-actions[bot] in #26440
- Fix: Enable Pyright and Fix Typing Errors in Datasets Controller by @asukaminato0721 in #26425
- minor fix: fix some translations: trunk should use native, and some translation typos by @NeatGuyCoding in #26469
- Fix typing errors in core/model_runtime by @asukaminato0721 in #26462
- fix single-step runs support user input as structured_output variable values by @goofy-z in #26430
- Refactor: Enable type checking for core/ops and fix type errors by @asukaminato0721 in #26414
- improve: Explicitly delete task Redis key on completion in AppQueueManager by @Blackoutta in #26406
- chore: bump pnpm version by @lyzno1 in #26010
- Fix a typo in prompt by @casio12r in #25583
- fix: duplicate chunks by @kenwoodjw in #26360
- support returning structured output when using LLM API non streaming invocation by @goofy-z in #26451
- fix: duplicate data in datasets pagination list by @zlyszx in #25783
- fix: document is not bound to a session by @quicksandznzn in #26480
- feat(web): remove dead dependencies by @asukaminato0721 in #26484
- fix: style with self-start by @crazywoola in #26492
- add back babel/core by @asukaminato0721 in #26489
- minor fix: improve check_upgradable_plugin_task.py by @NeatGuyCoding in #26468
- Fix: Remove workflow/nodes from pyright exclusion by @asukaminato0721 in #26461
- chore: remove pnpm build from dev-setup command by @laipz8200 in #26504
- fix(datasets): Resolve issue where selected list is not updated when deleting a single file by @HyaCiovo in #26502
- fix: add missing key prop to TabPanel and initialize useRef with null by @lyzno1 in #26517
- chore(devcontainer): update Python base image from bullseye to bookworm in Dockerfile by @rluncasu in #26519
- Feature add test containers enable segments to index task by @NeatGuyCoding in #26539
- chore(web): update Next.js to 15.5.4 and unify Lexical to 0.36.2 by @lyzno1 in #26541
- Revert "fix: sync FileUploader context with props to fix inconsistent file parameter state in “View cached variables”." by @crazywoola in #26548
- Exclude tests directory from pyright type checking by @asukaminato0721 in #26496
- fix: delete useless db session commit by @yihong0618 in #26572
- Feature add test containers mail email code login task by @NeatGuyCoding in #26580
- Feature add test containers mail account deletion task 1858 by @NeatGuyCoding in #26555
- refactor(docs): Reorganize documentation with standard language codes by @lyzno1 in #26534
- chore: update Dockerfile to use Python 3.12-bookworm and refactor layout logic to utilize ELK for improved node layout by @ZeroZ-lab in #26522
- Removes the 'extensions' directory from pyrightconfig.json and fixes … by @asukaminato0721 in #26512
- chore: fix basedwright style warning for opendal.layers imports by @bowenliang123 in #26596
- chore: Raise default string length limits by @laipz8200 in #26592
- chore: Avoid directly using OpenAI dependencies by @IthacaDream in #26590
- chore: remove explicit dependency on the fastapi framework by @IthacaDream in #26609
- chore(deps): bump react-easy-crop from 5.5.0 to 5.5.3 in /web by @dependabot[bot] in #26602
- chore(deps): bump azure-storage-blob from 12.13.0 to 12.26.0 in /api by @dependabot[bot] in #26603
- delete unnecessary db merge by @IthacaDream in #26588
- Feature add test containers mail change mail task by @NeatGuyCoding in #26570
- Feature add test containers mail inner task by @NeatGuyCoding in #26622
- fix bug 26613: get wrong credentials with multiple authorizations plugin by @dickens88 in #26615
- fix: two functions comments doc is not right by @yihong0618 in #26624
- chore(deps-dev): bump babel-loader from 9.2.1 to 10.0.0 in /web by @dependabot[bot] in #26601
- chore(deps): bump esdk-obs-python from 3.24.6.1 to 3.25.8 in /api by @dependabot[bot] in #26604
- feat: optimize the page jump logic to prevent unnecessary jumps. by @ruanimal in #26481
- perf(web): improve app workflow build performance. by @zhyd1997 in #26310
- refactor: Enable type checking for dataset config manager by @asukaminato0721 in #26494
- feat: remove unused python dependency by @asukaminato0721 in #26629
- Feature add test containers mail invite task by @NeatGuyCoding in #26637
- chore: improve bool input of start node by @hjlarry in #26647
- fix: missing LLM node output var description by @hjlarry in #26648
- fix oxlint warnings by @asukaminato0721 in #26634
- fix: drop useless logger code by @yihong0618 in #26650
- feat: add HTTPX client instrumentation for OpenTelemetry by @qiqizjl in #26651
- fix: check allowed file extensions in rag transform pipeline and use set type instead of list for performance in file extensions by @bowenliang123 in #26593
- Refactor: Remove reportUnnecessaryContains from pyrightconfig.json by @asukaminato0721 in #26626
- fix: add missing toType to
toolCredentialToFormSchemas
by @jingfelix in #26681 - refactor(types): remove
any
usages and strengthen typings across web and base by @ZeroZ-lab in #26677 - Refactor: Remove unnecessary casts and tighten type checking by @asukaminato0721 in #26625
- feat: update HTTP timeout configurations and enhance timeout input handling in UI by @linancn in #26685
- fix: restore array flattening behavior in iteration node by @Nov1c444 in #26695
- fix: drop useless logic by @yihong0618 in #26678
- fix: issue w/ timepicker by @crazywoola in #26696
- feat(billing): add tax information tooltips in pricing footer by @CodingOnStar in #26705
- Fix/tool provider tag internationalization by @qiaofenlin in #26710
- Update deploy-dev.yml by @JohnJyong in #26712
- chore: translate i18n files and update type definitions by @github-actions[bot] in #26709
- refactor(api): add new endpoints for workspace management and update routing by @liugddx in #26465
- fix chunks 2 by @jubinsoni in #26623
- Refactor account models to use SQLAlchemy 2.0 dataclass mapping by @asukaminato0721 in #26415
- feat: Refactor api.add_resource to @console_ns.route decorator by @asukaminato0721 in #26386
- Fix/token exp when exchange main by @GareArc in #26708
- use model_validate by @asukaminato0721 in #26182
- fix: restore None guards for _environment_variables/_conversation_variables getters by @ACAne0320 in #25633
- removing horus eye and adding mcp icon by @jubinsoni in #25323
- pan and zoom during workflow execution by @jubinsoni in #24254
- chore: bump ruff to 0.14 by @bowenliang123 in #26063
- fix: #26668 restore manual tool parameter values by @Zedk42 in #26733
- chore: update packageManager version in package.json to pnpm@10.18.2 by @ZeroZ-lab in #26731
- fix: sync aliyun icon SVG files by @hieheihei in #26719
- fix: add z-index class to PortalToFollowElemContent for proper layering in dataset extra info component by @ZeroZ-lab in #26729
- fix: Set ApiTool’s do_http_request to do not retry. by @jiangbo721 in #26721
- part of add type to orm by @asukaminato0721 in #26262
- change all to httpx by @asukaminato0721 in #26119
- remove .value by @asukaminato0721 in #26633
- Feature integrate alibabacloud mysql vector by @wangype in #25994
- chore(workflows): update deployment configurations for trigger dev by @Mairuis in #26753
- chore: remove unused dependencies for dagre from package.json and pnpm-lock.yaml by @ZeroZ-lab in #26755
- feat: add tracking for updated_by and updated_at fields in app models by @liugddx in #26736
- feat: add InlineDeleteConfirm base component by @lyzno1 in #26762
- chore: translate i18n files and update type definitions by @github-actions[bot] in #26763
- feat: migrate Python SDK to httpx with async/await support by @lyzno1 in #26726
- fix enum and type by @NeatGuyCoding in #26756
- refactor: simplify InlineDeleteConfirm component structure by @lyzno1 in #26771
- fix: happy-dom version by @crazywoola in #26764
- chore(deps): bump @lexical/utils from 0.36.2 to 0.37.0 in /web by @dependabot[bot] in #26801
- chore(deps-dev): bump knip from 5.64.1 to 5.64.3 in /web by @dependabot[bot] in #26802
- chore(deps): bump opik from 1.7.43 to 1.8.72 in /api by @dependabot[bot] in #26804
- Fix typo: reponse to response by @opeco17 in #26792
- Issue 23579 by @asukaminato0721 in #26777
- perf(web): split constant files to improve web performance by @yangzheli in #26794
- refactor: use dynamic max characters for chunking in extractors by @liugddx in #26782
- fix RetrievalMethod StrEnum by @asukaminato0721 in #26768
- refactor: use libs.login current_user in console controllers by @AsperforMias in #26745
- feat: enhance DataSources component with marketplace plugin integration and search filtering by @WTW0313 in #26810
- fix: update tooltip for chunk structure in knowledge base component by @WTW0313 in #26808
- fix: invalid data source list in plugin refresh hook by @WTW0313 in #26813
- fix: external knowledge url check ssrf by @mrdear in #26789
- fix: use enum .value strings in retrieval-setting API to fix JSON serialization error by @qiaofenlin in #26785
- Fix/web app permission check by @douxc in #26821
- chore: Correct padding in embedded chatbot by @DavideDelbianco in #26832
- fix: Don't hide chat streaming loader on '\n' content by @DavideDelbianco in #26829
- fix: avoid closing shared session during embeddings by @minglu7 in #26830
- chore: Fix chat-input-area resize by @DavideDelbianco in #26824
- feat: Cache AppQueueManager.is_stopped() to reduce unnecessary Redis … by @ruanimal in #26778
- chore: Don't show chat input area scrollbar overflow by @DavideDelbianco in #26828
- chore: Fix 25795 by @DavideDelbianco in #26823
- fix: files/support-type JSON serialization error by @hieheihei in #26842
- Use hook to get userid by @asukaminato0721 in #26839
- fix: Chat Opener visibility flickering by @DavideDelbianco in #26836
- refactor: streamline database session usage in batch_create_segment_to_index_task by @liugddx in #26795
- Add timeout so any plugin daemon call (including the SSE path) that legitimately takes longer than 5s would right. by @Eric-Guo in #26852
- Feature add test containers mail owner transfer task by @NeatGuyCoding in #26854
- fix: Validate transfer method in file mapping and improve file input handling by @liugddx in #26848
- fix: Do not show the toggle button for chat input when all input hidden by @DavideDelbianco in #26826
- feat: add Tencent Cloud APM tracing integration by @minimAluminiumalism in #25657
- Weaviate update version by @DhruvGorasiya in #25447
- chore: translate i18n files and update type definitions by @github-actions[bot] in #26859
- fix: use account id in workflow app log filter by @hj24 in #26811
- feat: add Knip configuration for dead code detection and remove unused icon components by @ZeroZ-lab in #26758
- fix: correct indentation in JSON payloads by @ZeroZ-lab in #26871
- fix: when create provider credential set the provider record to vaild by @hjlarry in #26868
- example to auto rollback by @asukaminato0721 in #26200
- Remove unused after_request hooks from console API keys by @laipz8200 in #26896
- Fix/remove logo in withoutbrand template by @TonloOO in #26882
- minor fix: test cases for alibabacloud mysql and chinese translations by @NeatGuyCoding in #26902
- Normalize null metadata handling in tool entities by @laipz8200 in #26890
- fix: replace CodeGroup's POST /meta with GET /site by @yamachu in #26886
- chore: bump pnpm version by @lyzno1 in #26905
- chore: remove redundant dependencies by @Nov1c444 in #26907
- fix: workflow token usage by @kenwoodjw in #26723
- refactor: Update Firecrawl to use v2 API by @ftonato in #24734
- allow editing of hidden inputs in preview by @jubinsoni in #24370
- feat(agent): similar to the start node of workflow, agent variables also support drag-and-drop by @yangzheli in #26899
- chore: translate i18n files and update type definitions by @github-actions[bot] in #26916
- chore: add type-check script to package.json for TypeScript validation by @ZeroZ-lab in #26929
- fix: enhance dataset menu and add service API translations by @WTW0313 in #26931
- Fix: check external commands after node completion by @laipz8200 in #26891
- chore: remove unused icon components and related features from the co… by @ZeroZ-lab in #26933
- add app mode for message by @zyssyz123 in #26876
- fix plugin installation permissions when using a local pkg by @zhangx1n in #26822
- feat: run with params from logs by @wellCh4n in #26787
- fix: update load balancing configurations with new credential IDs and… by @GareArc in #26900
- use deco to avoid current_user by @asukaminato0721 in #26077
- refactor: update TypeScript definitions for custom JSX elements and clean up global declarations in emoji picker by @ZeroZ-lab in #26985
- Fix: avoid duplicate response_chunk update in
convert_stream_simple_response
by @hyongtao-code in #26965 - Update email templates to improve clarity and consistency in messagin… by @GareArc in #26970
- Fix dispatcher idle hang and add pytest timeouts by @laipz8200 in #26998
- refactor: improve TypeScript types for NodeCardProps and debug configuration context by @ZeroZ-lab in #27001
- Fixed Weaviate no module found issue (issue #26938) by @DhruvGorasiya in #26964
- fix: logical error in Weaviate distance calculation by @DhruvGorasiya in #27019
- Chore: remove unused class-level variables in DatasourceManager by @hyongtao-code in #27011
- Fix: User Context Loss When Invoking Workflow Tool Node in Knowledge … by @quicksandznzn in #26495
- fix 27003 by @asukaminato0721 in #27005
- fix: remove unnecessary properties from condition draft by @liugddx in #27009
- Restore coverage for skipped workflow tests by @laipz8200 in #27018
- Fix type error by @ZeroZ-lab in #27024
- fix: happy-dom security issues by @iamjoel in #27037
- fix: show 'Invalid email or password' error tip when web app login failed by @douxc in #27034
- Feature: add test containers based tests for mail register tasks by @NeatGuyCoding in #27040
- Fix type error by @ZeroZ-lab in #27044
- fix: update TopK and Score Threshold components to use InputNumber and improve value handling by @WTW0313 in #27045
- fix: improve URL validation logic in validateRedirectUrl function by @ZeroZ-lab in #27058
- Chore: remove redundant tenant lookup in APIBasedExtensionAPI.post by @hyongtao-code in #27067
- fix: allow optional config parameter and conditionally include message file ID by @liugddx in #26960
- feat: implement strict type validation for remote file uploads by @liugddx in #27010
- fix: #27063 by @fatelei in #27074
- Sync same logic for datasets. by @Eric-Guo in #27056
- Fix json in md when use quesion classifier node by @rouxiaomin in #26992
- Fix type-check error by @ZeroZ-lab in #27051
- Feat/add status filter to workflow runs by @twjackysu in #26850
- fix(web): resolve TypeScript type errors in workflow components by @ZeroZ-lab in #27086
- doc: add Grafana dashboard template link to docs by @bowenliang123 in #27079
- fluent api by @asukaminato0721 in #27093
- fix(api): ensure JSON responses are properly serialized in ApiTool by @QuantumGhost in #27097
- refactor: replace localStorage with HTTP-only cookies for auth tokens by @laipz8200 in #24365
- feat(graph_engine): Support pausing workflow graph executions by @laipz8200 in #26585
- docs: mention backend lint gate in AGENTS by @laipz8200 in #27102
- chore(deps): bump @lexical/selection from 0.36.2 to 0.37.0 in /web by @dependabot[bot] in #27108
- chore(deps): bump html-to-image from 1.11.11 to 1.11.13 in /web by @dependabot[bot] in #27109
- chore(deps): bump pydantic-settings from 2.9.1 to 2.11.0 in /api by @dependabot[bot] in #27114
- chore(deps-dev): bump cross-env from 7.0.3 to 10.1.0 in /web by @dependabot[bot] in #27112
- chore(deps): bump immer from 9.0.21 to 10.1.3 in /web by @dependabot[bot] in #27113
- chore: improve storybook by @hjlarry in #27111
- Fix frontend type error by @ZeroZ-lab in #27116
- Revert "chore(deps): bump immer from 9.0.21 to 10.1.3 in /web" by @crazywoola in #27119
- fix: handle None values in dataset and document deletion logic by @liugddx in #27083
- fix: update attribute types to allow undefined values in icon utilities by @ZeroZ-lab in #27121
- Ensure suggested questions parser returns typed sequence by @laipz8200 in #27104
- fix: immer version and ref in code base by @crazywoola in #27130
- fix variable-truncator max size comments by @hj24 in #27129
- fix: support structured output in streaming mode for LLM node by @white-loub in #27089
- fix: delete migrate sync data script by @zyssyz123 in #27061
- fix(web): improve UI consistency and remove related unused icons by @yangzheli in #27004
- fix: ensure document re-querying in indexing process for consistency by @liugddx in #27077
- Fix type error 5 by @ZeroZ-lab in #27139
- feat(web): Add parameter rendering to MCP tool item component by @croatialu in #27099
- Allow custom app headers in CORS configuration by @laipz8200 in #27133
- chore: translate i18n files and update type definitions by @github-actions[bot] in #27141
- chore: use new api to check login status by @iamjoel in #27143
- chore: add more stories by @hjlarry in #27142
- fix: parameter extractor instructions placeholder not replaced (#26235) by @fengb3 in #27135
- Fix type error by @ZeroZ-lab in #27152
- fix: infinite reload by @iamjoel in #27150
- rm type ignore by @asukaminato0721 in #25715
- Add workflow graph validation checks by @laipz8200 in #27106
- Fix vs code and using min version after bump @remixicon/react and @monaco-editor/loader by @Eric-Guo in #27008
- fix: passport outdate caused webapp reload by @iamjoel in #27175
- fix: remove login status api by @wylswz in #27177
- fix: infinite jump to login url by @iamjoel in #27178
- Fix: release WorkflowTool database sessions promptly by @laipz8200 in #26893
- fix: handle exceptions during loop break condition evaluation by @liugddx in #26961
- remove built-in pipeline template user field by @JohnJyong in #27184
- chore: update support channels by @nite-knite in #27188
- Feature:during account initialization, set the interface language to be consistent with the display language(#27029) by @feelshana in #27042
- Fix: surface workflow container LLM usage by @laipz8200 in #27021
- Fix variable truncator handling for UpdatedVariable by @laipz8200 in #27197
- chore: switch support channels according to configuration by @nite-knite in #27195
- fix: eagerly load EndUser attributes to prevent DetachedInstanceError by @liugddx in #27162
- fix(storybook): add required handler props and fix TypeScript errors in component stories by @ZeroZ-lab in #27187
- add billing enable check by @JohnJyong in #27213
- Feat/add celery prefetch setting by @JohnJyong in #27218
- chore: align version identifiers with 1.9.2 by @laipz8200 in #27212
- knowledge-pipeline-for-enterprise by @GarfieldDai in #27240
- feat: Enhance knowledge base node validation by adding checks for embedding and reranking models by @WTW0313 in #27241
- chore: adjust the route scope for loading Zendesk scripts by @nite-knite in #27244
- chore: hide useless error info in login page by @iamjoel in #27245
- chore: translate i18n files and update type definitions by @github-actions[bot] in #27243
- Fix type error by @ZeroZ-lab in #27217
- fix: fix OpenAPI Schema Import Pydantic Validation Errors for Complex Default Values by @yinxulai in #27159
- Fix type error by @ZeroZ-lab in #27250
- fix:restore correct numeric values for ParamsAutoGenerated by @cuixiaojun001 in #27252
- fix: preserve share code headers after login redirect by @laipz8200 in #27225
New Contributors
- @casio12r made their first contribution in #25583
- @zlyszx made their first contribution in #25783
- @rluncasu made their first contribution in #26519
- @ruanimal made their first contribution in #26481
- @zhyd1997 made their first contribution in #26310
- @linancn made their first contribution in #26685
- @CodingOnStar made their first contribution in #26705
- @Zedk42 made their first contribution in #26733
- @wangype made their first contribution in #25994
- @opeco17 made their first contribution in #26792
- @AsperforMias made their first contribution in #26745
- @mrdear made their first contribution in #26789
- @DhruvGorasiya made their first contribution in #25447
- @hj24 made their first contribution in #26811
- @yamachu made their first contribution in #26886
- @fatelei made their first contribution in #27074
- @twjackysu made their first contribution in #26850
- @white-loub made their first contribution in #27089
- @fengb3 made their first contribution in #27135
- @feelshana made their first contribution in #27042
- @yinxulai made their first contribution in #27159
- @cuixiaojun001 made their first contribution in #27252
Full Changelog: 1.9.1...1.9.2