1.14.0

langgenius/dify1.14.0Apr 29, 2026by wylswz

AI Summary

A major release focusing on collaboration features, UI kit upgrades, observability, and infrastructure improvements.

Key Highlights

  • Workflow Collaboration mode allowing workspace members to edit workflows together.
  • Upgrade to standalone Graphon 0.2.2.
  • Langfuse integration for Time-to-First-Token (TTFT) reporting.
  • Migration of UI kit to `@langgenius/dify-ui` package.

New Features

  • Workflow collaboration mode with synced graph updates.
  • Service API for HITL flows.
  • Langfuse Time-to-First-Token (TTFT) reporting.
  • Docker healthchecks for `api`, `worker`, and `worker_beat`.
  • Celery default worker concurrency raised to 4.
  • PostgreSQL default max connections increased to 200.
  • Configurable key prefix for Redis.

Full Release Notes

## 🚀 What's New in v1.14.0?

### Collaboration
<img width="2632" height="1190" alt="img_v3_02117_67a67218-1ae5-4d68-a45b-3ada592f87fg" src="https://github.com/user-attachments/assets/1d4a3660-8a6a-4b29-9766-4d5b5fd9a51b" />

Collaboration allows workspace members to edit the same workflow together, with synced graph updates, online presence, and shared visibility into who is working where.

On self-hosted deployments, collaboration is turned off by default. Enable it by setting:

```
ENABLE_COLLABORATION_MODE = true
SERVER_WORKER_CLASS = geventwebsocket.gunicorn.workers.GeventWebSocketWorker
NEXT_PUBLIC_SOCKET_URL = your deployment’s WebSocket URL (e.g., wss://dify.example.com)
```

For more details, see [Full Documentation](https://docs.dify.ai/en/use-dify/build/workflow-collaboration)

### Human-in-the-loop (HITL)

- **Service API for HITL** — programmatic support for human-in-the-loop flows alongside existing console behavior.

### MCP and plugins

- **MCP tool metadata** — refresh after updates so the UI stays in sync.
- **MCP server URL** — fix double `/v1` that could break OAuth and authorization (404).
- **MCP OAuth discovery** — handle malformed JSON safely.
- **MCP schema publishing** — map `checkbox` and `json_object` types correctly.
- **Plugins** — auto-upgrade strategy persistence, local installer and file-input behavior, tenant scoping for inner API end-user lookup.

### Marketplace and OAuth

- **Marketplace and OAuth** — targeted fixes for marketplace flows and OAuth sign-in (including edge cases such as null email on GitHub OAuth).

### UI kit and front-end platform

- **`@langgenius/dify-ui`** — shared primitives (for example **PreviewCard**, **Meter**), design tokens, and broad migration from ad-hoc `web/base/ui` toward the package.
- **Accessibility** — date and time pickers, auto-update strategy picker, scrollbars in plugin and model selectors, and related polish.
- **Goto Anything** — recent items, `/go` command, deeper app sub-sections; fix for **Cmd+K** (removed problematic dynamic import).
- **Prompt editor** — slash-triggered **variable filtering**; keyboard **up/down** in variable lists.
- **Follow-up questions** — improved settings and token limits for suggested questions.
- **Modals** — ApiKey, provider config, and others refactored toward a shared **Dialog** pattern with tests.

### Observability and analytics
- **Langfuse** — optional **time-to-first-token (TTFT)** reporting.
- **Explore** — banner impression tracking; app preview event tracking on cards.

### Billing and quotas

- **Quota v3** integration in the product stack.
- **Billing UI** — Meter-based usage presentation; more resilient cleanup when billing APIs fail.
- **File uploader** — billing-aware behavior and copy updates.

### Data, RAG, and knowledge

- **Summary index and Weaviate** — compatibility fixes when using the summary index with Weaviate.
- **Vector projection** — include `is_summary` and `original_chunk_id` in default projection where relevant.
- **External and bound datasets** — stronger tenant checks on knowledge APIs.

### Infrastructure and operations

- **Docker Compose** — **healthchecks** for `api`, `worker`, and `worker_beat`; template and env example updates (for example S3 address style).
- **Celery** — default worker **concurrency raised to 4**; missing queue fix.
- **PostgreSQL** — higher default **max connections (200)** for the updated app DB path.
- **Redis** — **configurable key prefix**; **retry** logic for Redis operations.
- **TiDB** — endpoint support and related auth binding migration (**Qdrant endpoint on TiDB auth bindings**).
- **Markdown** — optional **`ALLOW_INLINE_STYLES`** environment variable to allow inline CSS in rendered Markdown when needed.

### Security

- **Change-email flow** — stricter phase-bound token handling ([GHSA-4q3w-q5mc-45rq](https://github.com/advisories?query=GHSA-4q3w-q5mc-45rq)).
- **IDOR hardening** — tenant validation on data-source binding; dataset and API ownership checks where gaps were found.

### Performance
- Optimized performance of graph initialization.

### API and platform internals

- **Graphon** — upgrade to standalone **Graphon 0.2.2** (replacing in-tree `dify_graph` naming and packaging).
- **OpenAPI** — script to generate **OpenAPI v2** JSON and documentation pointer.
- **Deprecation** — some legacy console APIs marked deprecated in favor of newer patterns.
- Large **SQLAlchemy 2.0** `select()` migration, **Pydantic `BaseModel`** for many console and service responses, and **testcontainers**-based tests for stability.


## What's Changed
* test: migrate restore archived workflow run tests to testcontainers by @YB0y in https://github.com/langgenius/dify/pull/34083
* refactor(api): continue decoupling dify_graph from API concerns by @laipz8200 in https://github.com/langgenius/dify/pull/33580
* refactor: replace dict with BedrockRetrievalSetting BaseModel in knowledge_service by @faizkhairi in https://github.com/langgenius/dify/pull/34080
* test: migrate workflow converter tests to testcontainers by @Desel72 in https://github.com/langgenius/dify/pull/34038
* refactor(api): rename dify_graph to graphon by @WH-2099 in https://github.com/langgenius/dify/pull/34095
* refactor: select in service API wraps, file_preview, and site controllers by @RenzoMXD in https://github.com/langgenius/dify/pull/34086
* test: migrate database retrieval tests to testcontainers by @YB0y in https://github.com/langgenius/dify/pull/34087
* test: migrate account deletion sync tests to testcontainers by @YB0y in https://github.com/langgenius/dify/pull/34091
* test: migrate metadata partial update tests to testcontainers by @YB0y in https://github.com/langgenius/dify/pull/34088
* test: migrate plugin parameter service tests to testcontainers by @YB0y in https://github.com/langgenius/dify/pull/34090
* test: Unit test case for services.dataset_services.py by @rajatagarwal-oss in https://github.com/langgenius/dify/pull/33212
* fix: handle null email in GitHub OAuth sign-in by @Krishnachaitanyakc in https://github.com/langgenius/dify/pull/34043
* fix: datasource api-key modal z-index incorrect by @hjlarry in https://github.com/langgenius/dify/pull/34103
* fix(prompt-editor): fix unexpected blur effect in prompt editor by @WTW0313 in https://github.com/langgenius/dify/pull/34069
* refactor: select in service API dataset document and segment controllers by @RenzoMXD in https://github.com/langgenius/dify/pull/34101
* chore(deps): bump pypdf from 6.9.1 to 6.9.2 in /api by @dependabot[bot] in https://github.com/langgenius/dify/pull/34099
* refactor: use ungh for github api by @hyoban in https://github.com/langgenius/dify/pull/34108
* fix: dataset query created_by empty UUID in iteration subgraph (#34004) by @Achieve3318 in https://github.com/langgenius/dify/pull/34044
* chore: enable no-barrel-files by @hyoban in https://github.com/langgenius/dify/pull/34121
* chore(deps): update picomatch version in nodejs-client and web packages by @WTW0313 in https://github.com/langgenius/dify/pull/34123
* fix: the menu of multi nodes always display on left top corner by @hjlarry in https://github.com/langgenius/dify/pull/34120
* refactor(web): convert 7 enums to as-const objects (batch 5) by @mahmoodhamdi in https://github.com/langgenius/dify/pull/33960
* fix: import path by @QuantumGhost in https://github.com/langgenius/dify/pull/34124
* chore: Support merge queue status checks in required CI workflows by @laipz8200 in https://github.com/langgenius/dify/pull/34133
* chore(api): remove backend utcnow usage by @laipz8200 in https://github.com/langgenius/dify/pull/34131
* chore: Keep main CI lane checks stable when skipped by @laipz8200 in https://github.com/langgenius/dify/pull/34143
* chore: remove stale mypy suppressions and align dataset service tests by @WH-2099 in https://github.com/langgenius/dify/pull/34130
* test: migrate human input delivery test service tests to testcontainers by @YB0y in https://github.com/langgenius/dify/pull/34092
* chore(deps-dev): bump nltk from 3.9.3 to 3.9.4 in /api by @dependabot[bot] in https://github.com/langgenius/dify/pull/34117
* test: migrate api key auth service tests to testcontainers by @YB0y in https://github.com/langgenius/dify/pull/34147
* refactor: use EnumText for model_type and WorkflowNodeExecution.status by @tmimmanuel in https://github.com/langgenius/dify/pull/34093
* test: migrate plugin service tests to testcontainers by @YB0y in https://github.com/langgenius/dify/pull/34098
* chore(deps): bump requests from 2.32.5 to 2.33.0 in /api by @dependabot[bot] in https://github.com/langgenius/dify/pull/34116
* test: migrate api token service tests to testcontainers by @YB0y in https://github.com/langgenius/dify/pull/34148
* chore(deps): bump brace-expansion from 5.0.4 to 5.0.5 in /sdks/nodejs-client by @dependabot[bot] in https://github.com/langgenius/dify/pull/34159
* test: migrate auth integration tests to testcontainers by @YB0y in https://github.com/langgenius/dify/pull/34089
* feat: add copy/delete to multi nodes context menu by @hjlarry in https://github.com/langgenius/dify/pull/34138
* test: use happy dom by @hyoban in https://github.com/langgenius/dify/pull/34154
* chore(ci): remove Python 3.11 from CI test workflows by @1Ckpwee in https://github.com/langgenius/dify/pull/34164
* ci: skip duplicate actions by @hyoban in https://github.com/langgenius/dify/pull/34168
* feat: return correct dify-plugin-daemon error message by @fatelei in https://github.com/langgenius/dify/pull/34171
* feat: enterprise otel exporter by @GareArc in https://github.com/langgenius/dify/pull/33138
* refactor: use EnumText for credential_type in TriggerSubscription by @tmimmanuel in https://github.com/langgenius/dify/pull/34174
* refactor: select in core/ops trace manager and trace providers by @RenzoMXD in https://github.com/langgenius/dify/pull/34197
* refactor(api): use standalone graphon package by @WH-2099 in https://github.com/langgenius/dify/pull/34209
* refactor: use EnumText for prompt_type and customize_token_strategy by @tmimmanuel in https://github.com/langgenius/dify/pull/34204
* chore(deps): bump cryptography from 44.0.3 to 46.0.6 in /api by @dependabot[bot] in https://github.com/langgenius/dify/pull/34210
* test: migrate messages clean service retention tests to testcontainers by @YB0y in https://github.com/langgenius/dify/pull/34207
* refactor: use select for API key auth lookups by @Maa-ly in https://github.com/langgenius/dify/pull/34146
* test: migrate metadata service tests to testcontainers by @YB0y in https://github.com/langgenius/dify/pull/34220
* test: migrate workspace service tests to testcontainers by @YB0y in https://github.com/langgenius/dify/pull/34218
* test: migrate tag service tests to testcontainers by @YB0y in https://github.com/langgenius/dify/pull/34219
* refactor: core/tools, agent, callback_handler, encrypter, llm_generator, plugin, inner_api by @RenzoMXD in https://github.com/langgenius/dify/pull/34205
* chore(ci): reduce web test shard fan-out by @laipz8200 in https://github.com/langgenius/dify/pull/34215
* chore(ci): remove duplicate pyrefly work from style lane by @laipz8200 in https://github.com/langgenius/dify/pull/34213
* fix: Fix docker-compose.yaml's ENV variables by @jasonfish568 in https://github.com/langgenius/dify/pull/31101
* test: init e2e by @hyoban in https://github.com/langgenius/dify/pull/34193
* chore(deps-dev): bump happy-dom from 20.8.8 to 20.8.9 in /web by @dependabot[bot] in https://github.com/langgenius/dify/pull/34243
* test: migrate workflow service tests to testcontainers by @YB0y in https://github.com/langgenius/dify/pull/34206
* chore(ci): split API unit and integration coverage reporting by @laipz8200 in https://github.com/langgenius/dify/pull/34211
* chore(ci): tighten backend workflow path filters by @laipz8200 in https://github.com/langgenius/dify/pull/34217
* Docs: unify language switch links across root and localized README files by @Fronut in https://github.com/langgenius/dify/pull/34201
* chore(web): remove stale i18n check test by @lyzno1 in https://github.com/langgenius/dify/pull/34237
* chore(ci): simplify i18n translation workflow by @lyzno1 in https://github.com/langgenius/dify/pull/34238
* fix(ci): tighten Claude i18n workflow scope by @lyzno1 in https://github.com/langgenius/dify/pull/34262
* chore(deps): bump boto3 from 1.42.73 to 1.42.78 in /api in the storage group by @dependabot[bot] in https://github.com/langgenius/dify/pull/34248
* chore(deps): update redis requirement from ~=7.3.0 to ~=7.4.0 in /api in the database group by @dependabot[bot] in https://github.com/langgenius/dify/pull/34247
* chore(deps): bump the google group in /api with 2 updates by @dependabot[bot] in https://github.com/langgenius/dify/pull/34252
* chore(deps): bump opik from 1.10.45 to 1.10.54 in /api in the llm group by @dependabot[bot] in https://github.com/langgenius/dify/pull/34254
* chore(deps-dev): update types-regex requirement from ~=2026.2.28 to ~=2026.3.32 in /api in the dev group by @dependabot[bot] in https://github.com/langgenius/dify/pull/34249
* chore(deps-dev): bump the dev group in /api with 7 updates by @dependabot[bot] in https://github.com/langgenius/dify/pull/34258
* feat(api): add delete workflow functionality with error handling by @ZeroZ-lab in https://github.com/langgenius/dify/pull/33657
* chore(deps): update gunicorn requirement from ~=25.1.0 to ~=25.3.0 in /api in the flask group by @dependabot[bot] in https://github.com/langgenius/dify/pull/34244
* chore(deps): bump the storage group in /api with 3 updates by @dependabot[bot] in https://github.com/langgenius/dify/pull/34256
* chore(deps-dev): bump the vdb group in /api with 5 updates by @dependabot[bot] in https://github.com/langgenius/dify/pull/34257
* chore(i18n): sync translations with en-US by @github-actions[bot] in https://github.com/langgenius/dify/pull/34267
* chore(deps): bump the github-actions-dependencies group across 1 directory with 2 updates by @dependabot[bot] in https://github.com/langgenius/dify/pull/34261
* refactor: core/rag docstore, datasource, embedding, rerank, retrieval by @RenzoMXD in https://github.com/langgenius/dify/pull/34203
* refactor(api): replace json.loads with Pydantic validation in services layer by @eureka0928 in https://github.com/langgenius/dify/pull/33704
* fix: enrich Service API segment responses with summary content by @jigangz in https://github.com/langgenius/dify/pull/34221
* refactor: introduce pnpm workspace by @hyoban in https://github.com/langgenius/dify/pull/34241
* fix: upgrade langfuse SDK to v3+ for LLM-as-judge support by @majiayu000 in https://github.com/langgenius/dify/pull/34265
* fix(workflow): improve node organization by @WTW0313 in https://github.com/langgenius/dify/pull/34276
* test: migrate trigger providers controller tests to testcontainers by @YB0y in https://github.com/langgenius/dify/pull/34295
* fix(i18n): translate "nodes.note.addNote" as "メモを追加" in ja-JP by @t-daisuke in https://github.com/langgenius/dify/pull/34294
* test: migrate data source controller tests to testcontainers by @YB0y in https://github.com/langgenius/dify/pull/34292
* test: migrate app apis controller tests to testcontainers by @YB0y in https://github.com/langgenius/dify/pull/34291
* test: migrate web forgot password controller tests to testcontainers by @YB0y in https://github.com/langgenius/dify/pull/34288
* fix: map checkbox and json_object types in MCP schema publishing by @majiayu000 in https://github.com/langgenius/dify/pull/34226
* test: migrate workspace wraps controller tests to testcontainers by @YB0y in https://github.com/langgenius/dify/pull/34296
* test: migrate web wraps controller tests to testcontainers by @YB0y in https://github.com/langgenius/dify/pull/34289
* test: migrate web conversation controller tests to testcontainers by @YB0y in https://github.com/langgenius/dify/pull/34287
* test: migrate app import api controller tests to testcontainers by @YB0y in https://github.com/langgenius/dify/pull/34290
* chore(deps): bump pygments from 2.19.2 to 2.20.0 in /api by @dependabot[bot] in https://github.com/langgenius/dify/pull/34301
* test: migrate tool provider controller tests to testcontainers by @YB0y in https://github.com/langgenius/dify/pull/34293
* test: migrate mcp controller tests to testcontainers by @YB0y in https://github.com/langgenius/dify/pull/34297
* refactor: use EnumText for Provider.quota_type and consolidate ProviderQuotaType by @tmimmanuel in https://github.com/langgenius/dify/pull/34299
* refactor: use EnumText for model_type in provider models by @tmimmanuel in https://github.com/langgenius/dify/pull/34300
* chore(ci): move full VDB matrix off the PR path by @laipz8200 in https://github.com/langgenius/dify/pull/34216
* fix: bridge Dify design tokens for streamdown table fullscreen by @ZZITE in https://github.com/langgenius/dify/pull/34224
* fix(web): fix document detail page status inconsistency with list page by @fisherOne1 in https://github.com/langgenius/dify/pull/33740
* fix: silent diff when number count are the same by @asukaminato0721 in https://github.com/langgenius/dify/pull/34097
* refactor(api): narrow otel instrumentor typing by @wangji0923 in https://github.com/langgenius/dify/pull/33853
* fix(http): expose structured vars in HTTP body selector by @owldev127 in https://github.com/langgenius/dify/pull/34185
* fix(dev): load middleware env in start-docker-compose by @dominciyue in https://github.com/langgenius/dify/pull/33927
* feat: increase default celery worker concurrency to 4 by @SeasonPilot in https://github.com/langgenius/dify/pull/33105
* test: add tests for api/services retention, enterprise, plugin by @cryptus-neoxys in https://github.com/langgenius/dify/pull/32648
* chore: try to avoid supply chain security by @hyoban in https://github.com/langgenius/dify/pull/34317
* test: migrate rag pipeline controller tests to testcontainers by @YB0y in https://github.com/langgenius/dify/pull/34303
* test: migrate rag pipeline datasets controller tests to testcontainers by @YB0y in https://github.com/langgenius/dify/pull/34304
* test: migrate rag pipeline import controller tests to testcontainers by @YB0y in https://github.com/langgenius/dify/pull/34305
* test: migrate rag pipeline workflow controller tests to testcontainers by @YB0y in https://github.com/langgenius/dify/pull/34306
* test: migrate explore conversation controller tests to testcontainers by @YB0y in https://github.com/langgenius/dify/pull/34312
* fix(web): internationalize DSL export modal labels by @lyzno1 in https://github.com/langgenius/dify/pull/34323
* fix(ci): restore i18n dispatch bridge by @lyzno1 in https://github.com/langgenius/dify/pull/34331
* chore: normalize frozenset literals and myscale typing by @WH-2099 in https://github.com/langgenius/dify/pull/34327
* refactor(nodejs-sdk): replace axios with fetch transport by @lyzno1 in https://github.com/langgenius/dify/pull/34325
* fix(web): localize error boundary copy by @lyzno1 in https://github.com/langgenius/dify/pull/34332
* fix(ci): structure i18n sync payload and PR flow by @lyzno1 in https://github.com/langgenius/dify/pull/34342
* chore(i18n): sync translations with en-US by @github-actions[bot] in https://github.com/langgenius/dify/pull/34339
* chore(i18n): sync translations with en-US by @github-actions[bot] in https://github.com/langgenius/dify/pull/34338
* test: migrate apikey controller tests to testcontainers by @Desel72 in https://github.com/langgenius/dify/pull/34286
* refactor: use sessionmaker().begin() in console app controllers by @Desel72 in https://github.com/langgenius/dify/pull/34282
* refactor: use sessionmaker().begin() in console datasets controllers by @Desel72 in https://github.com/langgenius/dify/pull/34283
* refactor: use sessionmaker().begin() in web and mcp controllers by @Desel72 in https://github.com/langgenius/dify/pull/34281
* refactor: use sessionmaker().begin() in console workspace and misc co… by @Desel72 in https://github.com/langgenius/dify/pull/34284
* refactor(api): clean redundant type ignore in request query parsing 🤖🤖🤖 by @majiayu000 in https://github.com/langgenius/dify/pull/34350
* perf: use global httpx client instead of per request create new one by @fatelei in https://github.com/langgenius/dify/pull/34311
* feat(docker): add healthcheck for api, worker, and worker_beat services by @majiayu000 in https://github.com/langgenius/dify/pull/34345
* refactor: enhance ELK layout handling by @WTW0313 in https://github.com/langgenius/dify/pull/34334
* refactor: core/app pipeline, core/datasource, and core/indexing_runner by @RenzoMXD in https://github.com/langgenius/dify/pull/34359
* fix: Variable Aggregator cannot click group swich by @hjlarry in https://github.com/langgenius/dify/pull/34361
* refactor: select in 13 small service files by @RenzoMXD in https://github.com/langgenius/dify/pull/34371
* fix: support qa_preview shape in IndexProcessor preview formatting by @EndlessLucky in https://github.com/langgenius/dify/pull/34151
* refactor(api): replace json.loads with Pydantic validation in controllers and infra layers by @eureka0928 in https://github.com/langgenius/dify/pull/34277
* fix: apply Baidu Vector DB connection timeout when initializing Mochow client by @jimmyzhuu in https://github.com/langgenius/dify/pull/34328
* refactor: select in 10 service files by @RenzoMXD in https://github.com/langgenius/dify/pull/34373
* chore: move commit hook to root by @hyoban in https://github.com/langgenius/dify/pull/34404
* fix: sqlalchemy.exc.InvalidRequestError: Can't operate on closed tran… by @fatelei in https://github.com/langgenius/dify/pull/34407
* refactor: migrate service_api and inner_api to sessionmaker pattern by @xr843 in https://github.com/langgenius/dify/pull/34379
* refactor: select in message_service and ops_service by @RenzoMXD in https://github.com/langgenius/dify/pull/34414
* chore(deps): bump aiohttp from 3.13.3 to 3.13.4 in /api by @dependabot[bot] in https://github.com/langgenius/dify/pull/34425
* refactor(api): type OpsTraceProviderConfigMap with TracingProviderCon… by @YB0y in https://github.com/langgenius/dify/pull/34424
* refactor(web): migrate remaining toast usage by @lyzno1 in https://github.com/langgenius/dify/pull/34433
* refactor: model_load_balancing_service and api_tools_manage_service by @RenzoMXD in https://github.com/langgenius/dify/pull/34434
* fix: fix online_drive is not a valid datasource_type by @fatelei in https://github.com/langgenius/dify/pull/34440
* refactor(api): replace test fixture side-effect imports by @WH-2099 in https://github.com/langgenius/dify/pull/34421
* refactor: select in tag_service by @RenzoMXD in https://github.com/langgenius/dify/pull/34441
* chore(api): align Python support with 3.12 by @WH-2099 in https://github.com/langgenius/dify/pull/34419
* fix: add tenant/dataset ownership checks to prevent IDOR vulnerabilities by @LikiosSedo in https://github.com/langgenius/dify/pull/34436
* test: added test for api/services/rag_pipeline folder by @akashseth-ifp in https://github.com/langgenius/dify/pull/33222
* test: added unit test for remaining files in core helper folder by @akashseth-ifp in https://github.com/langgenius/dify/pull/33288
* refactor: update to tailwind v4 by @hyoban in https://github.com/langgenius/dify/pull/34415
* refactor: split icon collections by @hyoban in https://github.com/langgenius/dify/pull/34453
* test: add unit tests for services and tasks part-4 by @poojanInfocusp in https://github.com/langgenius/dify/pull/33223
* refactor(api): tighten login and wrapper typing by @WH-2099 in https://github.com/langgenius/dify/pull/34447
* ci: Update pyrefly version to 0.59.1 by @asukaminato0721 in https://github.com/langgenius/dify/pull/34452
* chore: clean up useless tailwind reference by @hyoban in https://github.com/langgenius/dify/pull/34478
* refactor: select in metadata_service by @RenzoMXD in https://github.com/langgenius/dify/pull/34479
* refactor: select in workflow_tools_manage_service by @RenzoMXD in https://github.com/langgenius/dify/pull/34477
* fix: remove redundant cast in MCP base session by @majiayu000 in https://github.com/langgenius/dify/pull/34461
* fix(security): add tenant_id validation to prevent IDOR in data source binding by @xr843 in https://github.com/langgenius/dify/pull/34456
* chore: knip fix by @hyoban in https://github.com/langgenius/dify/pull/34481
* fix: fix import dsl failed by @fatelei in https://github.com/langgenius/dify/pull/34492
* refactor(api): type get_knowledge_rate_limit with KnowledgeRateLimitD… by @YB0y in https://github.com/langgenius/dify/pull/34483
* refactor(api): type webhook data extraction with RawWebhookDataDict TypedDict by @YB0y in https://github.com/langgenius/dify/pull/34486
* refactor(api): type hit testing retrieve responses with TypedDict by @YB0y in https://github.com/langgenius/dify/pull/34484
* refactor(api): type log identity dict with IdentityDict TypedDict by @YB0y in https://github.com/langgenius/dify/pull/34485
* test: migrate service_api dataset controller tests to testcontainers by @YB0y in https://github.com/langgenius/dify/pull/34423
* chore: update deps by @hyoban in https://github.com/langgenius/dify/pull/34487
* refactor: replace useContext with use in selected batch by @agenthaulk in https://github.com/langgenius/dify/pull/34450
* refactor: select in external_knowledge_service by @RenzoMXD in https://github.com/langgenius/dify/pull/34493
* refactor: select in rag_pipeline by @RenzoMXD in https://github.com/langgenius/dify/pull/34495
* refactor: select in account_service (AccountService class) by @RenzoMXD in https://github.com/langgenius/dify/pull/34496
* chore: override lodash by @hyoban in https://github.com/langgenius/dify/pull/34502
* fix(web): restore ui select public exports by @lyzno1 in https://github.com/langgenius/dify/pull/34501
* chore: update code-inspector-plugin to 1.5.1 by @hyoban in https://github.com/langgenius/dify/pull/34506
* refactor: select in account_service (RegisterService class) by @RenzoMXD in https://github.com/langgenius/dify/pull/34500
* refactor(api): type annotation service dicts with TypedDict by @YB0y in https://github.com/langgenius/dify/pull/34482
* refactor(web): replace react-syntax-highlighter with shiki by @mvanhorn in https://github.com/langgenius/dify/pull/33473
* refactor(web): migrate notion page selectors to tanstack virtual by @lyzno1 in https://github.com/langgenius/dify/pull/34508
* test: add unit tests for app store and annotation components, enhancing coverage for state management and UI interactions by @CodingOnStar in https://github.com/langgenius/dify/pull/34510
* refactor: select in account_service (TenantService class) by @RenzoMXD in https://github.com/langgenius/dify/pull/34499
* refactor: select in dataset_service (DatasetService class) by @RenzoMXD in https://github.com/langgenius/dify/pull/34525
* refactor(api): type celery sqlcommenter tags with CelerySqlcommenterTagsDict TypedDict by @YB0y in https://github.com/langgenius/dify/pull/34526
* refactor(api): type messages cleanup stats with MessagesCleanStatsDict TypedDict by @YB0y in https://github.com/langgenius/dify/pull/34527
* build: include packages in docker build by @hyoban in https://github.com/langgenius/dify/pull/34532
* refactor: select in annotation_service by @RenzoMXD in https://github.com/langgenius/dify/pull/34503
* refactor: select in dataset_service (DocumentService class) by @RenzoMXD in https://github.com/langgenius/dify/pull/34528
* refactor: select in datasource_provider_service by @RenzoMXD in https://github.com/langgenius/dify/pull/34548
* refactor: select in dataset_service (SegmentService and remaining cla… by @RenzoMXD in https://github.com/langgenius/dify/pull/34547
* refactor: convert ProviderQuotaType if/elif to match/case (#30001) by @agenthaulk in https://github.com/langgenius/dify/pull/34561
* refactor: convert AppMode if/elif to match/case in service files (#30001) by @agenthaulk in https://github.com/langgenius/dify/pull/34562
* refactor: convert AppMode if/elif to match/case in app_generate_service (#30001) by @agenthaulk in https://github.com/langgenius/dify/pull/34563
* refactor(api): type workflow run delete/count results with RunsWithRelatedCountsDict TypedDict by @YB0y in https://github.com/langgenius/dify/pull/34531
* fix:  lighten the health checks for the Worker and Worker Beat services, and disable them by default by @kurokobo in https://github.com/langgenius/dify/pull/34572
* chore(deps): bump boto3 from 1.42.78 to 1.42.83 in /api in the storage group by @dependabot[bot] in https://github.com/langgenius/dify/pull/34578
* chore(deps): bump the storage group in /api with 2 updates by @dependabot[bot] in https://github.com/langgenius/dify/pull/34585
* chore(deps): bump flask-compress from 1.23 to 1.24 in /api in the flask group by @dependabot[bot] in https://github.com/langgenius/dify/pull/34580
* chore(deps): bump the google group in /api with 4 updates by @dependabot[bot] in https://github.com/langgenius/dify/pull/34581
* chore(deps): bump the github-actions-dependencies group with 4 updates by @dependabot[bot] in https://github.com/langgenius/dify/pull/34582
* chore(deps): bump sqlalchemy from 2.0.48 to 2.0.49 in /api in the database group by @dependabot[bot] in https://github.com/langgenius/dify/pull/34584
* chore(deps): bump the llm group in /api with 3 updates by @dependabot[bot] in https://github.com/langgenius/dify/pull/34583
* refactor(api): reuse IdentityDict TypedDict in logging filters by @YB0y in https://github.com/langgenius/dify/pull/34593
* chore(deps): update flask-compress requirement from <1.24,>=1.17 to >=1.17,<1.25 in /api in the flask group by @dependabot[bot] in https://github.com/langgenius/dify/pull/34573
* chore(deps): bump google-auth-httplib2 from 0.3.0 to 0.3.1 in /api in the google group by @dependabot[bot] in https://github.com/langgenius/dify/pull/34575
* chore(deps-dev): bump the vdb group in /api with 7 updates by @dependabot[bot] in https://github.com/langgenius/dify/pull/34586
* refactor(api): type orphaned draft variable stats with TypedDict by @YB0y in https://github.com/langgenius/dify/pull/34590
* refactor(api): type upload file serialization with UploadFileDict TypedDict by @jakearmstrong59 in https://github.com/langgenius/dify/pull/34589
* refactor(api): type archive manifest with ArchiveManifestDict TypedDict by @YB0y in https://github.com/langgenius/dify/pull/34594
* chore(deps-dev): bump the dev group in /api with 6 updates by @dependabot[bot] in https://github.com/langgenius/dify/pull/34579
* refactor(api): type workflow run related counts with RelatedCountsDict TypedDict by @YB0y in https://github.com/langgenius/dify/pull/34530
* chore(deps-dev): bump the dev group across 1 directory with 20 updates by @dependabot[bot] in https://github.com/langgenius/dify/pull/34601
* refactor(api): type storage statistics with StorageStatisticsDict TypedDict by @YB0y in https://github.com/langgenius/dify/pull/34609
* refactor(api): type document summary status detail with TypedDict by @YB0y in https://github.com/langgenius/dify/pull/34610
* refactor(api): type crawl status dicts with CrawlStatusDict TypedDict by @YB0y in https://github.com/langgenius/dify/pull/34611
* refactor(api): type MCP tool schema and arguments with TypedDict by @YB0y in https://github.com/langgenius/dify/pull/34612
* refactor(api): type notification response with NotificationResponseDict TypedDict by @jakearmstrong59 in https://github.com/langgenius/dify/pull/34616
* refactor(api): type invitation detail with InvitationDetailDict TypedDict by @YB0y in https://github.com/langgenius/dify/pull/34613
* refactor(api): type LLM generator results with TypedDict by @statxc in https://github.com/langgenius/dify/pull/34621
* refactor(api): enforce strict typing on retrieval_model to resolve FIXME by @iamPulakesh in https://github.com/langgenius/dify/pull/34614
* refactor(api): type dataset service dicts with TypedDict by @statxc in https://github.com/langgenius/dify/pull/34625
* refactor(api): type plugin migration results with TypedDict by @statxc in https://github.com/langgenius/dify/pull/34627
* fix: web app user avatar display incorrect black by @hjlarry in https://github.com/langgenius/dify/pull/34624
* refactor: migrate session.query to select API in core misc modules by @RenzoMXD in https://github.com/langgenius/dify/pull/34608
* refactor: migrate session.query to select API in small task files by @RenzoMXD in https://github.com/langgenius/dify/pull/34617
* refactor: migrate session.query to select API in console controllers by @aliworksx08 in https://github.com/langgenius/dify/pull/34607
* fix: simplify pre-commit hook flow by @lyzno1 in https://github.com/langgenius/dify/pull/34637
* refactor: replace dict params with BaseModel payloads in TagService by @YB0y in https://github.com/langgenius/dify/pull/34422
* refactor: migrate session.query to select API in sync task and services by @RenzoMXD in https://github.com/langgenius/dify/pull/34619
* refactor: migrate session.query to select API in end_user_service and small tasks by @RenzoMXD in https://github.com/langgenius/dify/pull/34620
* refactor: migrate session.query to select API in retrieval_service by @RenzoMXD in https://github.com/langgenius/dify/pull/34638
* fix: improve app delete alert dialog UX by @lyzno1 in https://github.com/langgenius/dify/pull/34644
* refactor: migrate session.query to select API in document task files by @RenzoMXD in https://github.com/langgenius/dify/pull/34646
* refactor(api): type app parameter feature toggles with FeatureToggleD… by @YB0y in https://github.com/langgenius/dify/pull/34651
* refactor: migrate session.query to select API in summary and remove document tasks by @RenzoMXD in https://github.com/langgenius/dify/pull/34650
* refactor(api): migrate dict returns to TypedDicts in billing service by @iamPulakesh in https://github.com/langgenius/dify/pull/34649
* refactor: migrate session.query to select API in rag pipeline task files by @RenzoMXD in https://github.com/langgenius/dify/pull/34648
* refactor(api): type webhook validation result and workflow inputs with TypedDict by @YB0y in https://github.com/langgenius/dify/pull/34645
* refactor(api): type aliyun trace utils with TypedDict and tighten return types by @YB0y in https://github.com/langgenius/dify/pull/34642
* refactor(api): type error stream response with TypedDict by @statxc in https://github.com/langgenius/dify/pull/34641
* refactor(api): type load balancing config dicts with TypedDict by @statxc in https://github.com/langgenius/dify/pull/34639
* fix(#34636): replace SimpleNamespace with MagicMock(spec=App) in test_app_dsl_service by @iamPulakesh in https://github.com/langgenius/dify/pull/34659
* fix: var input label missing icon by @hjlarry in https://github.com/langgenius/dify/pull/34569
* fix(workflow): correct env variable picker validation by @lyzno1 in https://github.com/langgenius/dify/pull/34666
* chore: remove unused pnpm overrides by @lyzno1 in https://github.com/langgenius/dify/pull/34658
* refactor(api): replace json.loads with Pydantic validation in security and tools layers by @eureka0928 in https://github.com/langgenius/dify/pull/34380
* refactor(api): Extract shared ResponseModel by @corevibe555 in https://github.com/langgenius/dify/pull/34633
* refactor(api): type VDB to_index_struct with VectorIndexStructDict TypedDict by @statxc in https://github.com/langgenius/dify/pull/34674
* refactor(api): type gen_index_struct_dict with VectorIndexStructDict TypedDict by @statxc in https://github.com/langgenius/dify/pull/34675
* refactor(api): type single-node graph structure with TypedDicts in workflow_entry by @YB0y in https://github.com/langgenius/dify/pull/34671
* refactor(api): type indexing result with IndexingResultDict TypedDict by @statxc in https://github.com/langgenius/dify/pull/34672
* refactor(api): type Tenant custom config with TypedDict and tighten MCP headers type by @YB0y in https://github.com/langgenius/dify/pull/34670
* refactor(api): type VDB config params dicts with TypedDicts by @statxc in https://github.com/langgenius/dify/pull/34677
* refactor(api): type Chroma and AnalyticDB config params dicts with TypedDicts by @statxc in https://github.com/langgenius/dify/pull/34678
* refactor(api): extract shared RAG domain entities into core/rag/entity by @corevibe555 in https://github.com/langgenius/dify/pull/34685
* refactor(api): deduplicate shared auth request payloads into auth_entities.py by @corevibe555 in https://github.com/langgenius/dify/pull/34694
* refactor(api): clean up AssistantPromptMessage typing in CotChatAgentRunner by @iamPulakesh in https://github.com/langgenius/dify/pull/34681
* refactor(api): type I18nObject.to_dict with I18nObjectDict TypedDict by @statxc in https://github.com/langgenius/dify/pull/34680
* refactor: migrate session.query to select API in small task files batch by @RenzoMXD in https://github.com/langgenius/dify/pull/34684
* refactor(api): migrate consumers to shared RAG domain entities from core/rag/entities/ by @corevibe555 in https://github.com/langgenius/dify/pull/34692
* refactor(api): remove duplicated RAG entities from services layer by @corevibe555 in https://github.com/langgenius/dify/pull/34689
* refactor: use sessionmaker in controllers, events, models, and tasks 1 by @carlos4s in https://github.com/langgenius/dify/pull/34693
* refactor: replace untyped dicts with TypedDict in VDB config classes by @RenzoMXD in https://github.com/langgenius/dify/pull/34697
* refactor(api): tighten types for Tenant.custom_config_dict and MCPToolProvider.headers by @corevibe555 in https://github.com/langgenius/dify/pull/34698
* refactor(api): deduplicate I18nObject in datasource entities by @corevibe555 in https://github.com/langgenius/dify/pull/34701
* fix: backendModelConfig.chat_prompt_config.prompt is undefined by @fatelei in https://github.com/langgenius/dify/pull/34709
* chore: update deps by @hyoban in https://github.com/langgenius/dify/pull/34704
* refactor(api): deduplicate RAG index entities and consolidate import paths by @corevibe555 in https://github.com/langgenius/dify/pull/34690
* refactor(api): deduplicate shared controller request schemas into controller_schemas.py by @corevibe555 in https://github.com/langgenius/dify/pull/34700
* ci: update web changes scope by @hyoban in https://github.com/langgenius/dify/pull/34713
* refactor: enhance billing info response handling by @hj24 in https://github.com/langgenius/dify/pull/34340
* fix(web): avoid prehydration script in slider by @lyzno1 in https://github.com/langgenius/dify/pull/34676
* refactor: use sessionmaker in small services 2 by @carlos4s in https://github.com/langgenius/dify/pull/34696
* fix: legacy model_type deserialization regression by @IthacaDream in https://github.com/langgenius/dify/pull/34717
* refactor(api): deduplicate Pydantic models across fields and controllers by @corevibe555 in https://github.com/langgenius/dify/pull/34718
* build: include vinext in docker build by @hyoban in https://github.com/langgenius/dify/pull/34535
* chore: remove raw vite deps by @hyoban in https://github.com/langgenius/dify/pull/34726
* feat(web): add ALLOW_INLINE_STYLES env var to opt-in inline CSS in Markdown rendering by @s-kawamura-upgrade in https://github.com/langgenius/dify/pull/34719
* test: add unit tests for access control components to enhance coverage and reliability  by @CodingOnStar in https://github.com/langgenius/dify/pull/34722
* fix: update how ky handle error by @hyoban in https://github.com/langgenius/dify/pull/34735
* fix(ci): repair i18n bridge and translation workflow by @lyzno1 in https://github.com/langgenius/dify/pull/34738
* chore(i18n): sync translations with en-US by @github-actions[bot] in https://github.com/langgenius/dify/pull/34742
* chore(i18n): sync translations with en-US by @github-actions[bot] in https://github.com/langgenius/dify/pull/34745
* chore: align prompt editor var checks with use-check-list checks by @hjlarry in https://github.com/langgenius/dify/pull/34715
* fix: add backward-compatible query param for decode_plugin_from_ident… by @zhangbububu in https://github.com/langgenius/dify/pull/34720
* fix: fix import error by @fatelei in https://github.com/langgenius/dify/pull/34728
* chore(deps): bump cryptography from 46.0.6 to 46.0.7 in /api by @dependabot[bot] in https://github.com/langgenius/dify/pull/34776
* refactor: migrate session.query to select API in schedule cleanup task by @aliworksx08 in https://github.com/langgenius/dify/pull/34775
* refactor(api): use sessionmaker in trigger provider service & dataset… by @carlos4s in https://github.com/langgenius/dify/pull/34774
* refactor(api): tighten types in trivial lint and config fixes by @tmimmanuel in https://github.com/langgenius/dify/pull/34773
* refactor: migrate session.query to select API in delete conversation task by @RenzoMXD in https://github.com/langgenius/dify/pull/34772
* refactor(api): use sessionmaker in core app generators & pipelines by @carlos4s in https://github.com/langgenius/dify/pull/34771
* refactor(api): use sessionmaker in plugin & trigger services by @carlos4s in https://github.com/langgenius/dify/pull/34764
* refactor: migrate session.query to select API in delete segment and regenerate summary tasks by @RenzoMXD in https://github.com/langgenius/dify/pull/34763
* refactor: migrate session.query to select API in batch clean and disable segments tasks by @RenzoMXD in https://github.com/langgenius/dify/pull/34760
* refactor: migrate session.query to select API in add document and clean document tasks by @RenzoMXD in https://github.com/langgenius/dify/pull/34761
* refactor(api): use sessionmaker in end user, retention & cleanup services by @carlos4s in https://github.com/langgenius/dify/pull/34765
* refactor(api): deduplicate ImportMode and ImportStatus enums from rag_pipeline_dsl_service by @jakearmstrong59 in https://github.com/langgenius/dify/pull/34759
* refactor: convert FileTransferMethod if/elif to match/case (#30001) by @dataCenter430 in https://github.com/langgenius/dify/pull/34769
* refactor(api): deduplicate workflow controller schemas into controller_schemas.py by @jakearmstrong59 in https://github.com/langgenius/dify/pull/34755
* refactor: convert importStatus if/elif to match/case (#30001) by @dataCenter430 in https://github.com/langgenius/dify/pull/34780
* refactor: convert webapp auth type if/elif to match/case (#30001) by @dataCenter430 in https://github.com/langgenius/dify/pull/34782
* refactor: convert ToolProviderType if/elif to match/case (#30001) by @dataCenter430 in https://github.com/langgenius/dify/pull/34768
* refactor: convert segmentType if/elif to match/case in  webhook_service.py (#30001) by @dataCenter430 in https://github.com/langgenius/dify/pull/34770
* test: migrate recommended_app_service tests to testcontainers by @volcano303 in https://github.com/langgenius/dify/pull/34751
* refactor: convert file-transfer-method-tools if/elif to match/case (#30001) by @dataCenter430 in https://github.com/langgenius/dify/pull/34783
* refactor: convert segmentType workflow if/elif to match/case by @dataCenter430 in https://github.com/langgenius/dify/pull/34785
* refactor: convert SegmentType controllers if/elif to match/case (#30001) by @dataCenter430 in https://github.com/langgenius/dify/pull/34784
* refactor: convert file-transfer-method-pipeline if/elif to match/case (#30001) by @dataCenter430 in https://github.com/langgenius/dify/pull/34788
* refactor: convert appMode controllers if/elif to match/case (#30001) by @dataCenter430 in https://github.com/langgenius/dify/pull/34789
* refactor: convert appmode plugin if/elif to match/case (#30001) by @dataCenter430 in https://github.com/langgenius/dify/pull/34790
* refactor: convert ProviderQuota if/elif to match/case (#30001) by @dataCenter430 in https://github.com/langgenius/dify/pull/34791
* fix: copy button not working on API Server and API Key pages by @BrianWang1990 in https://github.com/langgenius/dify/pull/34515
* feat: redis add retry logic by @fatelei in https://github.com/langgenius/dify/pull/34566
* test: add e2e scenarios for app creation and sign-out by @majiayu000 in https://github.com/langgenius/dify/pull/34285
* chore(deps): bump litellm from 1.82.6 to 1.83.0 in /api by @dependabot[bot] in https://github.com/langgenius/dify/pull/34544
* refactor: convert TelemetryCase if/elif to match/case (#3001) by @dataCenter430 in https://github.com/langgenius/dify/pull/34797
* refactor: deduplicate DefaultRetrievalModelDict TypedDict into retrieval_service.py by @jakearmstrong59 in https://github.com/langgenius/dify/pull/34758
* refactor(api): use sessionmaker in workflow & RAG pipeline services by @carlos4s in https://github.com/langgenius/dify/pull/34805
* refactor(api): use sessionmaker in datasource provider service by @carlos4s in https://github.com/langgenius/dify/pull/34811
* refactor: migrate session.query to select API in document indexing sync task by @RenzoMXD in https://github.com/langgenius/dify/pull/34813
* refactor: migrate session.query to select API in core tools by @aliworksx08 in https://github.com/langgenius/dify/pull/34814
* refactor: convert ToolProviderType if/elif to match/case (#30001) by @dataCenter430 in https://github.com/langgenius/dify/pull/34794
* refactor: migrate session.query to select API in clean dataset task by @RenzoMXD in https://github.com/langgenius/dify/pull/34815
* refactor(api): use sessionmaker in pgvecto_rs VDB service by @carlos4s in https://github.com/langgenius/dify/pull/34818
* refactor: migrate session.query to select API in plugin services by @aliworksx08 in https://github.com/langgenius/dify/pull/34817
* refactor: migrate session.query to select API in deal dataset vector index task by @RenzoMXD in https://github.com/langgenius/dify/pull/34819
* refactor(api): deduplicate DSL shared entities into dsl_entities.py by @aliworksx08 in https://github.com/langgenius/dify/pull/34762
* refactor(api): use sessionmaker in builtin tools manage service by @carlos4s in https://github.com/langgenius/dify/pull/34812
* fix(web): use nuqs for log conversation url state by @lyzno1 in https://github.com/langgenius/dify/pull/34820
* refactor(api): deduplicate json serialization in AppModelConfig.from_model_config_dict by @jonathanchang31 in https://github.com/langgenius/dify/pull/34795
* fix(docker): restore S3_ADDRESS_STYLE env examples by @laipz8200 in https://github.com/langgenius/dify/pull/34826
* test: add unit tests for AppPublisher, Sidebar, Chat, FileUploader, Form Demo, Notion Page Selector, Prompt Editor, and Header Navigation components by @CodingOnStar in https://github.com/langgenius/dify/pull/34802
* chore: update deps by @hyoban in https://github.com/langgenius/dify/pull/34833
* refactor(api): reduce Dify GraphInitParams usage by @laipz8200 in https://github.com/langgenius/dify/pull/34825
* fix(web): resolve Dify compact array types in tool output schema by @balancetheworld in https://github.com/langgenius/dify/pull/34804
* ci: bump pyrefly version by @asukaminato0721 in https://github.com/langgenius/dify/pull/34821
* fix: fix remove_leading_symbols remove [ by @fatelei in https://github.com/langgenius/dify/pull/34832
* chore: install from npm for vinext by @hyoban in https://github.com/langgenius/dify/pull/34840
* fix: fix sqlalchemy.orm.exc.DetachedInstanceError by @fatelei in https://github.com/langgenius/dify/pull/34845
* refactor: migrate session.query to select API in webhook service by @aliworksx08 in https://github.com/langgenius/dify/pull/34849
* refactor: migrate session.query to select API in file service by @aliworksx08 in https://github.com/langgenius/dify/pull/34852
* refactor: migrate session.query to select API in deal dataset index update task by @RenzoMXD in https://github.com/langgenius/dify/pull/34847
* refactor(api): deduplicate EnabledConfig property logic in AppModelConfig by @jonathanchang31 in https://github.com/langgenius/dify/pull/34793
* refactor: migrate web human_input_form from reqparse to Pydantic BaseModel by @ai-hpc in https://github.com/langgenius/dify/pull/34859
* chore: remove commented-out reqparse code from rag_pipeline_workflow by @ai-hpc in https://github.com/langgenius/dify/pull/34860
* refactor: migrate console human_input_form from reqparse to PydanticBaseModel by @ai-hpc in https://github.com/langgenius/dify/pull/34858
* refactor: migrate TrialApp and AccountTrialAppRecord to TypeBase by @sxxtony in https://github.com/langgenius/dify/pull/34806
* refactor(api): type recommend app database retrieval dicts with TypedDicts by @YB0y in https://github.com/langgenius/dify/pull/34873
* refactor(api): type Celery SSL options and Sentinel transport dicts with TypedDicts by @dataCenter430 in https://github.com/langgenius/dify/pull/34871
* refactor(api): type OpenSearch/Lindorm/Huawei VDB config params dicts with TypedDicts by @dataCenter430 in https://github.com/langgenius/dify/pull/34870
* refactor: convert appmode misc if/elif to match/case (#30001) by @dataCenter430 in https://github.com/langgenius/dify/pull/34869
* fix(mcp): catch JSONDecodeError in OAuth discovery functions 🤖🤖🤖 by @jeanibarz in https://github.com/langgenius/dify/pull/34868
* refactor(api): type DatasourceProviderApiEntity.to_dict with TypedDict by @volcano303 in https://github.com/langgenius/dify/pull/34879
* refactor(models): replace Any with precise types in Tenant and MCPToo… by @corevibe555 in https://github.com/langgenius/dify/pull/34880
* refactor(api): use sessionmaker in relyt & tidb_vector VDB services by @carlos4s in https://github.com/langgenius/dify/pull/34848
* fix(api): replace `assert isinstance` with proper runtime type checks in message transformers by @iamPulakesh in https://github.com/langgenius/dify/pull/34865
* fix(api): prevent cross-tenant external API use-check disclosure by @laipz8200 in https://github.com/langgenius/dify/pull/34744
* refactor(web): move avatar to base ui by @lyzno1 in https://github.com/langgenius/dify/pull/34889
* refactor(api): type format_preview returns with TypedDicts in index processors by @volcano303 in https://github.com/langgenius/dify/pull/34893
* refactor(api): modernize type annotations — replace Optional/Union with | syntax by @corevibe555 in https://github.com/langgenius/dify/pull/34888
* refactor: migrate TrialApp and AccountTrialAppRecord to TypeBase by @sxxtony in https://github.com/langgenius/dify/pull/34897
* refactor(api): replace Optional/Union with | syntax, remove dead AnyFunction by @corevibe555 in https://github.com/langgenius/dify/pull/34894
* refactor(mcp): remove unused AnyFunction alias, tighten callback type by @corevibe555 in https://github.com/langgenius/dify/pull/34890
* fix(web): assign in-progress tracing items to latest loop/iteration record by @plind-junior in https://github.com/langgenius/dify/pull/34661
* refactor(services): replace Union with | syntax in service layer (batch 2) by @corevibe555 in https://github.com/langgenius/dify/pull/34906
* fix: fix orm_exc.DetachedInstanceError by @fatelei in https://github.com/langgenius/dify/pull/34904
* refactor(otel): replace Any with Tracer and [T] generics by @corevibe555 in https://github.com/langgenius/dify/pull/34883
* feat(ci): add pyrefly type coverage reporting to CI by @corevibe555 in https://github.com/langgenius/dify/pull/34754
* refactor(services): replace Union with | syntax in service layer by @corevibe555 in https://github.com/langgenius/dify/pull/34905
* fix: sqlalchemy.orm.exc.DetachedInstanceError by @leslie2046 in https://github.com/langgenius/dify/pull/34910
* test: migrate ops_service tests to testcontainers by @volcano303 in https://github.com/langgenius/dify/pull/34749
* test: migrate hit_testing_service tests to testcontainers by @volcano303 in https://github.com/langgenius/dify/pull/34750
* refactor(api): type workflow generator args dict with TypedDict by @dataCenter430 in https://github.com/langgenius/dify/pull/34876
* refactor(tools): replace redundant dict[str, str] with EmojiIconDict by @YgorLeal in https://github.com/langgenius/dify/pull/34786
* refactor: make DefaultFieldsMixin compatible with TypeBase (MappedAsDataclass) by @sxxtony in https://github.com/langgenius/dify/pull/34686
* fix(api): default parent_mode to paragraph for hierarchical chunking via API by @plind-junior in https://github.com/langgenius/dify/pull/34635
* fix(workflow): correct maximized editor panel layout in execution logs by @HamzaSwitch in https://github.com/langgenius/dify/pull/34909
* refactor(api): replace Any with precise types in db_migration_lock by @corevibe555 in https://github.com/langgenius/dify/pull/34891
* docs(contributing): move agent attribution guidance to PR template by @laipz8200 in https://github.com/langgenius/dify/pull/34919
* chore: should hide change action when node is undeletable by @hjlarry in https://github.com/langgenius/dify/pull/34592
* fix: fix outputs share same name var by @fatelei in https://github.com/langgenius/dify/pull/34604
* refactor(api): type Redis connection param builder functions with TypedDicts by @dataCenter430 in https://github.com/langgenius/dify/pull/34875
* test: add unit tests for workflow components including tools and inspect vars by @CodingOnStar in https://github.com/langgenius/dify/pull/34843
* test: migrate SQLAlchemyWorkflowNodeExecutionRepository tests to testcontainers by @bittoby in https://github.com/langgenius/dify/pull/34926
* refactor(api): type Document.to_dict with DocumentDict TypedDict by @bittoby in https://github.com/langgenius/dify/pull/34924
* chore(deps): bump pypdf from 6.9.2 to 6.10.0 in /api by @dependabot[bot] in https://github.com/langgenius/dify/pull/34946
* refactor(api): type ToolInvokeMeta.to_dict with TypedDict by @YB0y in https://github.com/langgenius/dify/pull/34942
* refactor(api): type get_prompt_template with TypedDict by @YB0y in https://github.com/langgenius/dify/pull/34943
* refactor(api): type DatasourceInvokeMeta.to_dict with TypedDict by @YB0y in https://github.com/langgenius/dify/pull/34940
* refactor(api): type SQLALCHEMY_ENGINE_OPTIONS with TypedDict by @YB0y in https://github.com/langgenius/dify/pull/34941
* refactor: replace inline api.model with Pydantic BaseModel in model_config by @ai-hpc in https://github.com/langgenius/dify/pull/34930
* test: remove dataset service update/delete mock tests superseded by testcontainers by @bittoby in https://github.com/langgenius/dify/pull/34937
* test: remove dataset metadata mock tests superseded by testcontainers by @bittoby in https://github.com/langgenius/dify/pull/34931
* refactor: replace inline api.model with register_schema_models in billing by @ai-hpc in https://github.com/langgenius/dify/pull/34928
* test: remove dataset permission mock tests superseded by testcontainers by @bittoby in https://github.com/langgenius/dify/pull/34936
* refactor: remove base ui i18n dependency by @lyzno1 in https://github.com/langgenius/dify/pull/34921
* fix: fix tool output duplicate by @fatelei in https://github.com/langgenius/dify/pull/34962
* refactor(api): migrate controllers to SQLAlchemy 2.0 select() API by @wdeveloper16 in https://github.com/langgenius/dify/pull/34960
* test: migrate Conversation/Message inputs tenant resolution SQL tests to Testcontainers by @wdeveloper16 in https://github.com/langgenius/dify/pull/34957
* test: migrate WorkflowNodeExecutionModel creator property SQL tests to Testcontainers by @wdeveloper16 in https://github.com/langgenius/dify/pull/34958
* refactor(api): migrate core RAG layer to SQLAlchemy 2.0 select() API by @wdeveloper16 in https://github.com/langgenius/dify/pull/34965
* test: migrate RagPipelineService DB operation SQL tests to Testcontainer by @wdeveloper16 in https://github.com/langgenius/dify/pull/34959
* refactor: migrate verify_subscription_credentials return type to TypedDict by @AlsoTheZv3n in https://github.com/langgenius/dify/pull/34967
* test: migrate Conversation.status_count and Site.generate_code SQL tests to Testcontainers by @wdeveloper16 in https://github.com/langgenius/dify/pull/34955
* refactor(services): migrate dataset_service and clear_free_plan_tenant_expired_logs to SQLAlchemy 2.0 select() API by @wdeveloper16 in https://github.com/langgenius/dify/pull/34970
* refactor(services): migrate datasource_provider_service to SQLAlchemy 2.0 select() API by @wdeveloper16 in https://github.com/langgenius/dify/pull/34974
* test: update TestContainers integration tests and unit test fixtures to SQLAlchemy 2.0 select() API by @wdeveloper16 in https://github.com/langgenius/dify/pull/34969
* refactor(services): migrate builtin_tools_manage_service to SQLAlchemy 2.0 select() API by @wdeveloper16 in https://github.com/langgenius/dify/pull/34973
* refactor(services): migrate trigger_provider_service to SQLAlchemy 2.0 select() API by @wdeveloper16 in https://github.com/langgenius/dify/pull/34972
* refactor(services): migrate summary_index_service to SQLAlchemy 2.0 select() API by @wdeveloper16 in https://github.com/langgenius/dify/pull/34971
* refactor(api): migrate tools, account, workflow and plugin services to SQLAlchemy 2.0 by @wdeveloper16 in https://github.com/langgenius/dify/pull/34966
* refactor(tasks): migrate document_indexing_task and remove_app_and_related_data_task to SQLAlchemy 2.0 select() API by @wdeveloper16 in https://github.com/langgenius/dify/pull/34968
* test: migrate test_remove_app_and_related_data_task to SQLAlchemy 2.0 select() API by @dataCenter430 in https://github.com/langgenius/dify/pull/34985
* test: migrate conftest and plugin lifecycle tests to SQLAlchemy 2.0 select() API by @dataCenter430 in https://github.com/langgenius/dify/pull/34979
* test: migrate test_messages_clean_service to SQLAlchemy 2.0 select() API by @dataCenter430 in https://github.com/langgenius/dify/pull/34984
* refactor: migrate _model_to_insertion_dict return type to TypedDict by @thegdsks in https://github.com/langgenius/dify/pull/34988
* refactor(api): type DataSourceApiKeyAuthBinding.to_dict with TypedDict by @YB0y in https://github.com/langgenius/dify/pull/35001
* refactor(api): type _serialize_full_content with FullContentDict TypedDict by @YB0y in https://github.com/langgenius/dify/pull/35000
* refactor(api): type _get_cluster_connection_health_params with TypedDict by @YB0y in https://github.com/langgenius/dify/pull/34999
* refactor: replace bare dict with ActionDict TypedDict in cot_agent_runner by @wdeveloper16 in https://github.com/langgenius/dify/pull/34997
* test: migrate conversation rename/delete edge cases to Testcontainers integration tests by @wdeveloper16 in https://github.com/langgenius/dify/pull/34991
* test: migrate test_workflow_draft_variable_service to SQLAlchemy 2.0 select() API by @dataCenter430 in https://github.com/langgenius/dify/pull/34986
* refactor: replace bare dict with typed annotations in external_data_tool by @wdeveloper16 in https://github.com/langgenius/dify/pull/34996
* refactor(api): type _build_log_dict return with LogDict TypedDict by @aviu16 in https://github.com/langgenius/dify/pull/34983
* fix: external dataset tenant checks for bound knowledge APIs  by @laipz8200 in https://github.com/langgenius/dify/pull/34734
* chore(deps): bump the flask group in /api with 3 updates by @dependabot[bot] in https://github.com/langgenius/dify/pull/35007
* chore(deps): bump the google group in /api with 5 updates by @dependabot[bot] in https://github.com/langgenius/dify/pull/35010
* chore(deps): bump the database group in /api with 2 updates by @dependabot[bot] in https://github.com/langgenius/dify/pull/35013
* chore(deps): bump the storage group in /api with 3 updates by @dependabot[bot] in https://github.com/langgenius/dify/pull/35014
* chore(deps): bump the llm group in /api with 4 updates by @dependabot[bot] in https://github.com/langgenius/dify/pull/35019
* chore(deps-dev): bump the dev group in /api with 40 updates by @dependabot[bot] in https://github.com/langgenius/dify/pull/35022
* chore(deps): bump the storage group in /api with 2 updates by @dependabot[bot] in https://github.com/langgenius/dify/pull/35020
* chore(deps-dev): bump the vdb group in /api with 4 updates by @dependabot[bot] in https://github.com/langgenius/dify/pull/35021
* chore(deps): bump opentelemetry-propagator-b3 from 1.40.0 to 1.41.0 in /api in the opentelemetry group by @dependabot[bot] in https://github.com/langgenius/dify/pull/35017
* chore(deps): bump the github-actions-dependencies group with 4 updates by @dependabot[bot] in https://github.com/langgenius/dify/pull/35018
* chore(deps): bump the python-packages group across 1 directory with 18 updates by @dependabot[bot] in https://github.com/langgenius/dify/pull/35023
* fix(rag): include is_summary and original_chunk_id in default vector projection by @HamzaSwitch in https://github.com/langgenius/dify/pull/34950
* refactor(api): enable reportUntypedFunctionDecorator in pyright config (#26412) by @YgorLeal in https://github.com/langgenius/dify/pull/35031
* chore(deps): bump the opentelemetry group across 1 directory with 16 updates by @dependabot[bot] in https://github.com/langgenius/dify/pull/35028
* test: implement Account/Tenant model integration tests to replace db-mocked unit tests by @wdeveloper16 in https://github.com/langgenius/dify/pull/34994
* test: migrate BillingService permission-check tests to Testcontainers integration tests by @wdeveloper16 in https://github.com/langgenius/dify/pull/34993
* refactor: replace bare dict with TypedDicts in annotation_service by @wdeveloper16 in https://github.com/langgenius/dify/pull/34998
* refactor: use sessionmaker in workflow_tools_manage_service.py by @HeYin-OS in https://github.com/langgenius/dify/pull/34896
* chore: refine .github configs for dependabot, PR template, and stale workflow by @crazywoola in https://github.com/langgenius/dify/pull/35035
* chore(deps): bump weave from 0.52.17 to 0.52.36 in /api in the llm group by @dependabot[bot] in https://github.com/langgenius/dify/pull/35038
* chore(deps-dev): bump mypy from 1.20.0 to 1.20.1 in /api in the dev group by @dependabot[bot] in https://github.com/langgenius/dify/pull/35039
* refactor: remove marshal_with and inline api.model from app_import by @ai-hpc in https://github.com/langgenius/dify/pull/34934
* refactor: migrate mcp_server from marshal_with/api.model to Pydantic BaseModel by @ai-hpc in https://github.com/langgenius/dify/pull/34935
* refactor: migrate app site from marshal_with/api.model to Pydantic BaseModel by @ai-hpc in https://github.com/langgenius/dify/pull/34933
* refactor: migrate apikey from marshal_with/api.model to Pydantic BaseModel by @ai-hpc in https://github.com/langgenius/dify/pull/34932
* refactor: migrate RecommendedApp to TypeBase by @sxxtony in https://github.com/langgenius/dify/pull/34808
* refactor: replace inline api.model response schemas with register_schema_models in activate by @ai-hpc in https://github.com/langgenius/dify/pull/34929
* refactor: migrate SegmentAttachmentBinding to TypeBase by @sxxtony in https://github.com/langgenius/dify/pull/34810
* refactor(api): deduplicate TextToAudioPayload and MessageListQuery into controller_schemas.py by @jakearmstrong59 in https://github.com/langgenius/dify/pull/34757
* refactor(api): improve type safety in MCPToolManageService.execute_auth_actions by @dev-miro26 in https://github.com/langgenius/dify/pull/34824
* refactor(api): deduplicate dataset controller schemas into controller_schemas.py by @jakearmstrong59 in https://github.com/langgenius/dify/pull/34756
* refactor: migrate WorkflowPause and WorkflowPauseReason to TypeBase by @sxxtony in https://github.com/langgenius/dify/pull/34688
* refactor(api): type WorkflowAppLog.to_dict with WorkflowAppLogDict TypedDict by @statxc in https://github.com/langgenius/dify/pull/34682
* refactor(api): consolidate duplicate RerankingModelConfig and WeightedScoreConfig definitions by @corevibe555 in https://github.com/langgenius/dify/pull/34747
* fix: correct typo submision to submission by @LincolnBurrows2017 in https://github.com/langgenius/dify/pull/33435
* feat: support ttft report to langfuse by @leslie2046 in https://github.com/langgenius/dify/pull/33344
* refactor: migrate MessageAnnotation to TypeBase by @sxxtony in https://github.com/langgenius/dify/pull/34807
* test: migrate app_dsl_service tests to testcontainers by @volcano303 in https://github.com/langgenius/dify/pull/34429
* test: migrate AudioService TTS message-ID lookup tests to Testcontainers integration tests by @wdeveloper16 in https://github.com/langgenius/dify/pull/34992
* fix: fix qdrant delete size is too large by @fatelei in https://github.com/langgenius/dify/pull/35042
* fix: optimize trigger long running read transactions by @hj24 in https://github.com/langgenius/dify/pull/35046
* refactor(api): type WorkflowRun.to_dict with WorkflowRunDict TypedDict by @KeWang0622 in https://github.com/langgenius/dify/pull/35047
* refactor: move vdb implementations to workspaces by @wylswz in https://github.com/langgenius/dify/pull/34900
* refactor: improve type annotations in HitTestingService by @xingarr in https://github.com/langgenius/dify/pull/27838
* chore: revert react-i18next update by @hyoban in https://github.com/langgenius/dify/pull/35058
* refactor(auth): standardize failed login audit logging by @laipz8200 in https://github.com/langgenius/dify/pull/35054
* refactor: replace bare dict with dict[str, Any] in ops_service tracin… by @wdeveloper16 in https://github.com/langgenius/dify/pull/35064
* refactor: replace bare dict with dict[str, Any] in plugin endpoint_service by @wdeveloper16 in https://github.com/langgenius/dify/pull/35065
* refactor: replace bare dict with dict[str, Any] in OpenAPI tools parser by @wdeveloper16 in https://github.com/langgenius/dify/pull/35061
* refactor: replace bare dict with dict[str, Any] in watercrawl client by @wdeveloper16 in https://github.com/langgenius/dify/pull/35063
* refactor: replace bare dict with dict[str, Any] in datasource_entities by @wdeveloper16 in https://github.com/langgenius/dify/pull/35062
* fix: db session expired issue by @hj24 in https://github.com/langgenius/dify/pull/35049
* refactor: replace bare dict with UtmInfo TypedDict in operation_service by @wdeveloper16 in https://github.com/langgenius/dify/pull/35055
* refactor: replace bare dict with AdvancedPromptTemplateArgs TypedDict by @wdeveloper16 in https://github.com/langgenius/dify/pull/35056
* refactor: replace bare dict with WorkflowRunListArgs TypedDict by @wdeveloper16 in https://github.com/langgenius/dify/pull/35057
* refactor: replace bare dict with dict[str, Any] in helper cache modules by @wdeveloper16 in https://github.com/langgenius/dify/pull/35067
* refactor: replace bare dict with dict[str, Any] in rag extractors by @wdeveloper16 in https://github.com/langgenius/dify/pull/35068
* refactor: replace bare dict with dict[str, Any] in tools message_transformer by @wdeveloper16 in https://github.com/langgenius/dify/pull/35069
* refactor: replace bare dict with dict[str, Any] in ops_trace_manager by @wdeveloper16 in https://github.com/langgenius/dify/pull/35070
* refactor: replace bare dict with dict[str, Any] in pipeline_template module by @wdeveloper16 in https://github.com/langgenius/dify/pull/35071
* fix: click empty http node value may cause blur by @iamjoel in https://github.com/langgenius/dify/pull/35051
* chore(web): upgrade @base-ui/react to v1.4.0 by @lyzno1 in https://github.com/langgenius/dify/pull/35048
* fix: handle URL construction error when switching to Visual Editor by @samrusani in https://github.com/langgenius/dify/pull/35004
* refactor: replace bare dict with dict[str, Any] in website_service by @wdeveloper16 in https://github.com/langgenius/dify/pull/35074
* refactor: replace bare dict with dict[str, Any] in dataset and external_knowledge services by @wdeveloper16 in https://github.com/langgenius/dify/pull/35073
* refactor: replace bare dict with dict[str, Any] in tools manage services by @wdeveloper16 in https://github.com/langgenius/dify/pull/35075
* refactor: replace bare dict with dict[str, Any] in moderation module by @wdeveloper16 in https://github.com/langgenius/dify/pull/35076
* refactor: replace bare dict with dict[str, Any] in provider entities and plugin client by @wdeveloper16 in https://github.com/langgenius/dify/pull/35077
* refactor: replace bare dict with dict[str, Any] in ops trace providers by @wdeveloper16 in https://github.com/langgenius/dify/pull/35082
* refactor: replace bare dict with dict[str, Any] in model_manager and … by @wdeveloper16 in https://github.com/langgenius/dify/pull/35083
* refactor: replace bare dict with dict[str, Any] in app task_entities … by @wdeveloper16 in https://github.com/langgenius/dify/pull/35084
* refactor: replace bare dict with dict[str, Any] in openai_moderation by @jimcody1995 in https://github.com/langgenius/dify/pull/35079
* refactor: replace bare dict with dict[str, Any] in app_config managers by @wdeveloper16 in https://github.com/langgenius/dify/pull/35087
* test: migrate trigger integration tests to SQLAlchemy 2.0 select API by @bohdansolovie in https://github.com/langgenius/dify/pull/35081
* refactor: replace bare dict with typed annotations in controllers by @dataCenter430 in https://github.com/langgenius/dify/pull/35095
* refactor(api): type _jsonify_form_definition payload with FormDefinitionPayload TypedDict by @aviu16 in https://github.com/langgenius/dify/pull/35094
* test: migrate remove_app_and_related_data integration tests to SQLAlchemy 2.0 APIs by @bohdansolovie in https://github.com/langgenius/dify/pull/35092
* test: migrate mail and segment indexing integration tests to SQLAlchemy 2.0 APIs by @bohdansolovie in https://github.com/langgenius/dify/pull/35091
* refactor: replace bare dict with typed annotations in core plugin module by @dataCenter430 in https://github.com/langgenius/dify/pull/35096
* test: migrate mail_human_input_delivery cleanup fixture to SQLAlchemy 2.0 delete API by @bohdansolovie in https://github.com/langgenius/dify/pull/35090
* test(e2e): improve auth coverage and authoring support by @lyzno1 in https://github.com/langgenius/dify/pull/34920
* chore: update deps by @hyoban in https://github.com/langgenius/dify/pull/35066
* fix(web): handle IME composition in DelimiterInput by @plind-junior in https://github.com/langgenius/dify/pull/34660
* refactor: replace bare dict with dict[str, Any] in VDB providers and libs by @wdeveloper16 in https://github.com/langgenius/dify/pull/35123
* refactor: replace bare dict with dict[str, Any] in services grab-bag by @wdeveloper16 in https://github.com/langgenius/dify/pull/35112
* refactor: replace bare dict with dict[str, Any] in rag_pipeline and datasource_provider services by @wdeveloper16 in https://github.com/langgenius/dify/pull/35107
* refactor: replace bare dict with dict[str, Any] in entities, workflow nodes, and tasks by @wdeveloper16 in https://github.com/langgenius/dify/pull/35109
* refactor: replace bare dict with dict[str, Any] in VDB providers by @wdeveloper16 in https://github.com/langgenius/dify/pull/35110
* refactor: replace bare dict with dict[str, Any] in core provider services and misc modules by @wdeveloper16 in https://github.com/langgenius/dify/pull/35124
* refactor: replace bare dict with dict[str, Any] in core tools and runtime by @wdeveloper16 in https://github.com/langgenius/dify/pull/35111
* fix: Compatibility issues with the summary index feature when using the weaviate vector database by @FFXN in https://github.com/langgenius/dify/pull/35052
* feat(goto-anything): recent items, /go navigation command, deep app sub-sections by @crazywoola in https://github.com/langgenius/dify/pull/35078
* chore: Add global fetch mock in vitest.setup.ts to suppress happy-dom ECONNREFUSED errors by @Copilot in https://github.com/langgenius/dify/pull/35131
* chore: remove unused Ruff ignore rules by @WH-2099 in https://github.com/langgenius/dify/pull/35102
* test: split merged API test modules and remove F811 ignore by @WH-2099 in https://github.com/langgenius/dify/pull/35105
* chore(deps): bump pillow from 12.1.1 to 12.2.0 in /api by @dependabot[bot] in https://github.com/langgenius/dify/pull/35119
* refactor(web): align tooltip content class props by @lyzno1 in https://github.com/langgenius/dify/pull/35135
* refactor(web): remove highPriority modal stacking by @lyzno1 in https://github.com/langgenius/dify/pull/35132
* chore(i18n): sync translations with en-US by @github-actions[bot] in https://github.com/langgenius/dify/pull/35134
* chore: allow disabling app-level PostgreSQL timezone injection by @hjlarry in https://github.com/langgenius/dify/pull/35129
* chore(deps): update pyarrow to version 23.0.1 and add override deps by @BenjaminX in https://github.com/langgenius/dify/pull/35137
* refactor: replace bare dict with typed annotations in core tools module by @dataCenter430 in https://github.com/langgenius/dify/pull/35098
* refactor: replace bare dict with typed annotations in app_config/extension/provider by @dataCenter430 in https://github.com/langgenius/dify/pull/35099
* refactor: replace bare dict with typed annotations in llm_generator and prompt by @dataCenter430 in https://github.com/langgenius/dify/pull/35100
* refactor: replace bare dict with typed annotations in core rag module by @dataCenter430 in https://github.com/langgenius/dify/pull/35097
* refactor: convert plugin permission if/elif to match/case (#30001) by @aether-png in https://github.com/langgenius/dify/pull/35140
* refactor: use sessionmaker in tool_label_manager.py by @HeYin-OS in https://github.com/langgenius/dify/pull/34895
* refactor: convert InvokeFrom if/elif to match/case by @aether-png in https://github.com/langgenius/dify/pull/35143
* test: migrate document indexing task tests to SQLAlchemy 2.0 select API by @bohdansolovie in https://github.com/langgenius/dify/pull/35145
* test: migrate clean_dataset integration tests to SQLAlchemy 2.0 APIs by @bohdansolovie in https://github.com/langgenius/dify/pull/35146
* chore: clarify tracing error copy to direct users to the Tracing tab by @iamjoel in https://github.com/langgenius/dify/pull/35153
* fix: doc modal hidden by config modal by @iamjoel in https://github.com/langgenius/dify/pull/35157
* refactor: replace bare dict with dict[str, Any] in model provider service and core modules by @wdeveloper16 in https://github.com/langgenius/dify/pull/35122
* feat: support configurable redis key prefix by @Blackoutta in https://github.com/langgenius/dify/pull/35139
* chore: url in tool description support clicking jump directly by @iamjoel in https://github.com/langgenius/dify/pull/35163
* refactor(web): re-design button api by @lyzno1 in https://github.com/langgenius/dify/pull/35166
* test: migrate task integration tests to SQLAlchemy 2.0 query APIs by @bohdansolovie in https://github.com/langgenius/dify/pull/35170
* test: migrate clean_notion_document integration tests to SQLAlchemy 2… by @bohdansolovie in https://github.com/langgenius/dify/pull/35147
* ci: Fix path in coverage markdown rendering step by @asukaminato0721 in https://github.com/langgenius/dify/pull/35136
* refactor(web): replace Button destructive boolean with tone semantic axis by @lyzno1 in https://github.com/langgenius/dify/pull/35176
* test: migrate conversation read timestamp SQL test to Testcontainers (#32454) by @bohdansolovie in https://github.com/langgenius/dify/pull/35177
* refactor(web): migrate confirm dialogs to base/ui/alert-dialog by @CodingOnStar in https://github.com/langgenius/dify/pull/35127
* refactor: replace bare dict with dict[str, Any] in RAG and service unit tests by @wdeveloper16 in https://github.com/langgenius/dify/pull/35184
* refactor: replace bare dict with dict[str, Any] in enterprise telemetry, external data tool, and moderation tests by @wdeveloper16 in https://github.com/langgenius/dify/pull/35185
* test: migrate web site controller tests to Testcontainers (#32454) by @bohdansolovie in https://github.com/langgenius/dify/pull/35180
* refactor: replace bare dict with dict[str, Any] in controller and core unit tests by @wdeveloper16 in https://github.com/langgenius/dify/pull/35181
* refactor: replace bare dict with dict[str, Any] in models, providers, extensions, libs, and test utilities by @wdeveloper16 in https://github.com/langgenius/dify/pull/35186
* refactor(api): migrate workspace account marshal_with responses to BaseModel by @ai-hpc in https://github.com/langgenius/dify/pull/35190
* refactor(api): migrate console extension endpoint from api.model to BaseModel by @ai-hpc in https://github.com/langgenius/dify/pull/35189
* test: remove document service status mock tests superseded by testcontainers by @jamesrayammons in https://github.com/langgenius/dify/pull/35197
* refactor(api): migrate dataset hit-testing response model to BaseModel by @ai-hpc in https://github.com/langgenius/dify/pull/35192
* refactor(api): add null safety to extractor_processor and firecrawl by @tmimmanuel in https://github.com/langgenius/dify/pull/35209
* refactor: replace bare dict with dict[str, Any] in services unit test helpers by @wdeveloper16 in https://github.com/langgenius/dify/pull/35182
* refactor(api): migrate console installed-app list response to BaseModel by @ai-hpc in https://github.com/langgenius/dify/pull/35202
* refactor(api): migrate console workflow app-log responses to BaseModel by @ai-hpc in https://github.com/langgenius/dify/pull/35201
* refactor: replace bare dict with dict[str, Any] in services and hosti… by @wdeveloper16 in https://github.com/langgenius/dify/pull/35211
* refactor: replace bare dict with dict[str, Any] in response converter… by @wdeveloper16 in https://github.com/langgenius/dify/pull/35212
* refactor(api): migrate service api workflow responses from marshal_with to BaseModel by @ai-hpc in https://github.com/langgenius/dify/pull/35195
* refactor(api): migrate console message responses from marshal_with to BaseModel by @ai-hpc in https://github.com/langgenius/dify/pull/35204
* refactor(api): migrate service conversation-variable responses to BaseModel by @ai-hpc in https://github.com/langgenius/dify/pull/35205
* refactor(api): migrate console recommended-app response to BaseModel by @ai-hpc in https://github.com/langgenius/dify/pull/35206
* refactor(api): migrate workspace current response from marshal_with to BaseModel by @ai-hpc in https://github.com/langgenius/dify/pull/35207
* refactor(api): migrate console conversation variables response model to BaseModel by @ai-hpc in https://github.com/langgenius/dify/pull/35193
* test: migrate dataset service dataset mock tests to testcontainers by @jamesrayammons in https://github.com/langgenius/dify/pull/35194
* refactor(api): migrate console workflow-trigger responses to BaseModel by @ai-hpc in https://github.com/langgenius/dify/pull/35200
* test: migrate schedule service mock tests to testcontainers by @jamesrayammons in https://github.com/langgenius/dify/pull/35196
* test: remove legacy python3 code executor integration test by @jamesrayammons in https://github.com/langgenius/dify/pull/35223
* test: remove legacy code executor integration test by @jamesrayammons in https://github.com/langgenius/dify/pull/35224
* fix: import DSL and copy app not work by @hjlarry in https://github.com/langgenius/dify/pull/35239
* fix: open restore version panel raise 500 by @hjlarry in https://github.com/langgenius/dify/pull/35240
* test: migrate Service API site controller tests to Testcontainers (#32454) by @Eruis2579 in https://github.com/langgenius/dify/pull/35183
* refactor(ui): decouple CSS dependencies and improve test quality by @lyzno1 in https://github.com/langgenius/dify/pull/35242
* fix: Change 'commit' to 'flush' to prevent subsequent transaction fai… by @zyssyz123 in https://github.com/langgenius/dify/pull/35243
* fix(dataset): fix dataset list overlay issue by @WTW0313 in https://github.com/langgenius/dify/pull/35244
* test: migrate webhook service additional mock tests to testcontainers by @jamesrayammons in https://github.com/langgenius/dify/pull/35199
* feat: tidb endpoint by @zyssyz123 in https://github.com/langgenius/dify/pull/35158
* feat(web): unify create_app tracking and persist external attribution by @CodingOnStar in https://github.com/langgenius/dify/pull/35241
* fix: remove enable for get by @zyssyz123 in https://github.com/langgenius/dify/pull/35245
* test: remove legacy storage key loader integration test by @jamesrayammons in https://github.com/langgenius/dify/pull/35225
* test: remove legacy jinja2 code executor integration test by @jamesrayammons in https://github.com/langgenius/dify/pull/35222
* test: remove legacy workflow draft variable api test by @jamesrayammons in https://github.com/langgenius/dify/pull/35226
* test: remove legacy trigger provider permissions test by @jamesrayammons in https://github.com/langgenius/dify/pull/35227
* refactor(api): migrate console tag responses from marshal_with to BaseModel by @ai-hpc in https://github.com/langgenius/dify/pull/35208
* feat(ui): scaffold @langgenius/dify-ui and migrate design tokens by @lyzno1 in https://github.com/langgenius/dify/pull/35256
* fix(web): include dify-ui workspace package in docker install filter by @lyzno1 in https://github.com/langgenius/dify/pull/35268
* refactor(web): align Switch API with Base UI naming convention by @lyzno1 in https://github.com/langgenius/dify/pull/35269
* test(types): replace Account/Tenant status string literals with enum values by @xr843 in https://github.com/langgenius/dify/pull/35267
* chore(api): prune redundant direct dependency declarations by @WH-2099 in https://github.com/langgenius/dify/pull/35272
* feat: collaboration by @hjlarry in https://github.com/langgenius/dify/pull/30781
* fix: add miss celery queue by @fatelei in https://github.com/langgenius/dify/pull/35282
* chore(i18n): sync translations with en-US by @github-actions[bot] in https://github.com/langgenius/dify/pull/35283
* chore(deps): bump hono from 4.12.12 to 4.12.14 by @dependabot[bot] in https://github.com/langgenius/dify/pull/35287
* chore(deps): bump langsmith from 0.7.30 to 0.7.31 in /api by @dependabot[bot] in https://github.com/langgenius/dify/pull/35288
* chore(deps): bump pypdf from 6.10.0 to 6.10.1 in /api by @dependabot[bot] in https://github.com/langgenius/dify/pull/35273
* test: migrate duplicate and vector index task integration tests to SQLAlchemy 2.0 APIs by @bohdansolovie in https://github.com/langgenius/dify/pull/35292
* chore(deps): upgrade vite-plus to 0.1.18 by @lyzno1 in https://github.com/langgenius/dify/pull/35300
* refactor(api): add BaseModel conversation variable schemas by @ai-hpc in https://github.com/langgenius/dify/pull/35296
* chore(deps): bump dompurify from 3.3.3 to 3.4.0 by @dependabot[bot] in https://github.com/langgenius/dify/pull/35286
* refactor(api): add BaseModel workflow field schemas by @ai-hpc in https://github.com/langgenius/dify/pull/35297
* refactor(web): redesign Select component and migrate WorkplaceSelector by @lyzno1 in https://github.com/langgenius/dify/pull/35293
* refactor(api): migrate console conversation responses to BaseModel by @ai-hpc in https://github.com/langgenius/dify/pull/35294
* refactor(web): migrate base/popoversto ui/dropdown-menu and ui/select by @CodingOnStar in https://github.com/langgenius/dify/pull/35278
* fix(web): set app card dropdown menu to non-modal by @lyzno1 in https://github.com/langgenius/dify/pull/35302
* fix: http node key value type dropdown by @hjlarry in https://github.com/langgenius/dify/pull/35304
* fix: apply score threshold after reranking in hybrid search by @aayushbaluni in https://github.com/langgenius/dify/pull/35263
* refactor(web): unify Base UI component props to namespace types by @lyzno1 in https://github.com/langgenius/dify/pull/35306
* test: migrate clean notion task tests to SQLAlchemy 2.0 APIs by @jimcody1995 in https://github.com/langgenius/dify/pull/35159
* test: migrate conversation service mock tests to testcontainers by @jamesrayammons in https://github.com/langgenius/dify/pull/35198
* chore: reorg imports by @wylswz in https://github.com/langgenius/dify/pull/35308
* perf(web): optimize first-screen rendering performance by @lyzno1 in https://github.com/langgenius/dify/pull/35313
* fix(web): add destructive hover background to menu item components by @lyzno1 in https://github.com/langgenius/dify/pull/35322
* chore: enable noUncheckedIndexedAccess by @hyoban in https://github.com/langgenius/dify/pull/35178
* refactor(web): align UI component APIs with shadcn v4 best practices by @lyzno1 in https://github.com/langgenius/dify/pull/35328
* chore: workspace level typecheck by @hyoban in https://github.com/langgenius/dify/pull/35329
* chore: workspace lint by @hyoban in https://github.com/langgenius/dify/pull/35331
* chore: auto fix for tailwind rules by @hyoban in https://github.com/langgenius/dify/pull/35332
* refactor(web): quality closure pass on base UI primitives by @lyzno1 in https://github.com/langgenius/dify/pull/35333
* feat(web): add tracking for app preview events in AppCard component by @CodingOnStar in https://github.com/langgenius/dify/pull/35347
* chore(deps): bump pypdf from 6.10.1 to 6.10.2 in /api by @dependabot[bot] in https://github.com/langgenius/dify/pull/35339
* chore(deps): bump mako from 1.3.10 to 1.3.11 in /api by @dependabot[bot] in https://github.com/langgenius/dify/pull/35340
* chore(deps): bump authlib from 1.6.9 to 1.6.11 in /api by @dependabot[bot] in https://github.com/langgenius/dify/pull/35341
* chore(api): migrate event handlers to use Session(db.engine) by @jerryzai in https://github.com/langgenius/dify/pull/35234
* refactor(api): migrate console mcp-server responses to BaseModel by @ai-hpc in https://github.com/langgenius/dify/pull/35219
* docs(web): add Storybook stories for overlay and select primitives by @lyzno1 in https://github.com/langgenius/dify/pull/35334
* refactor(api): migrate dataset document response schemas to BaseModel by @ai-hpc in https://github.com/langgenius/dify/pull/35298
* fix(web): stop Splash after useUserProfile errors by @shaun0927 in https://github.com/langgenius/dify/pull/35326
* refactor: use sessionmaker in api_tools_manage_service.py by @HeYin-OS in https://github.com/langgenius/dify/pull/34892
* refactor(web): replace portal component with DropdownMenu in various components by @CodingOnStar in https://github.com/langgenius/dify/pull/35319
* fix: scope plugin inner API end-user lookup by tenant by @shaun0927 in https://github.com/langgenius/dify/pull/35325
* test: add API seeding infrastructure and app creation E2E scenarios by @Jingyi-Dify in https://github.com/langgenius/dify/pull/35276
* refactor: migrate DocumentSegmentSummary to TypeBase by @sxxtony in https://github.com/langgenius/dify/pull/34862
* test: migrate dataset service document mock tests to testcontainers by @jamesrayammons in https://github.com/langgenius/dify/pull/35191
* fix: guard against KeyError in update_prompt_message_tool loop by @kuishou68 in https://github.com/langgenius/dify/pull/35150
* fix(web): stabilize workflow node panel operator dropdown trigger by @CodingOnStar in https://github.com/langgenius/dify/pull/35352
* fix: move remote credential validation outside DB session to prevent … by @zyssyz123 in https://github.com/langgenius/dify/pull/35350
* refactor(api): move trace providers by @wylswz in https://github.com/langgenius/dify/pull/35144
* chore(api): migrate file factory builders and account commands to use Session(db.engine) by @jerryzai in https://github.com/langgenius/dify/pull/35236
* refactor(api): type pipeline template retrieval dicts with TypedDict by @YB0y in https://github.com/langgenius/dify/pull/34874
* fix: raise chat settings select dropdown above dialog by @hyl64 in https://github.com/langgenius/dify/pull/35357
* fix: guard chat file preview rendering when mime type is missing by @hyl64 in https://github.com/langgenius/dify/pull/35355
* refactor(dify-ui): finish primitive migration from web/base/ui to @langgenius/dify-ui by @lyzno1 in https://github.com/langgenius/dify/pull/35349
* chore(api): migrate mail task and OAuth data source to use Session(db… by @jerryzai in https://github.com/langgenius/dify/pull/35235
* fix(web): keep workflow panel operator anchor mounted during menu close animation by @lyzno1 in https://github.com/langgenius/dify/pull/35363
* feat: copy nodes cross apps by @hjlarry in https://github.com/langgenius/dify/pull/33273
* ci: Add conditional comment creation for diff by @asukaminato0721 in https://github.com/langgenius/dify/pull/35179
* feat(explore): implement banner impression tracking and refactor tracking logic by @CodingOnStar in https://github.com/langgenius/dify/pull/35369
* test: browser mode for dify ui by @hyoban in https://github.com/langgenius/dify/pull/35365
* feat(dify-ui): Meter primitive and billing adoption by @lyzno1 in https://github.com/langgenius/dify/pull/35380
* chore(api): adapt Graphon 0.2.2 upgrade by @WH-2099 in https://github.com/langgenius/dify/pull/35377
* chore(web): drop delay={0} from tooltip triggers and retype DocName by @lyzno1 in https://github.com/langgenius/dify/pull/35382
* fix(web): remove dynamic import from Goto Anything to restore cmd+k by @lyzno1 in https://github.com/langgenius/dify/pull/35383
* chore: Replace 'db' with 'sa' for SQLAlchemy compatibility by @asukaminato0721 in https://github.com/langgenius/dify/pull/35373
* ci: Update pyrefly dependency version to 0.61.1 by @asukaminato0721 in https://github.com/langgenius/dify/pull/35391
* fix(web): prevent infinite render loop on /apps page by @lyzno1 in https://github.com/langgenius/dify/pull/35393
* refactor(web): convert file-local Step enum to as-const in website crawlers 🤖🤖🤖 by @jeanibarz in https://github.com/langgenius/dify/pull/34565
* fix: complete assigned variable reference descriptions by @hjlarry in https://github.com/langgenius/dify/pull/35406
* refactor: remove file upload migration tip by @hjlarry in https://github.com/langgenius/dify/pull/35409
* chore: improve conversation opener by @hjlarry in https://github.com/langgenius/dify/pull/35403
* fix: accept icon type in app icon updates by @hyl64 in https://github.com/langgenius/dify/pull/35360
* fix: prevent double /v1 in MCP server URL causing 404 authorization failure by @dev-miro26 in https://github.com/langgenius/dify/pull/34596
* refactor(web): unify app-shell bootstrap on TanStack Query + Next.js route conventions by @lyzno1 in https://github.com/langgenius/dify/pull/35394
* refactor(api): flatten nested conditionals and clean up token helpers by @bitcompass in https://github.com/langgenius/dify/pull/34835
* chore: migrate workflow node title tooltip by @hjlarry in https://github.com/langgenius/dify/pull/35418
* feat(amplitude): integrate AmplitudeProvider and refactor initialization logic by @CodingOnStar in https://github.com/langgenius/dify/pull/35415
* fix: handle numpy scalar types in safe_json_value by @avasis-ai in https://github.com/langgenius/dify/pull/35389
* docs(frontend): align docs and comments by @lyzno1 in https://github.com/langgenius/dify/pull/35364
* fix: missing icon from iconify set by @hyoban in https://github.com/langgenius/dify/pull/35420
* chore: export dsl add loading by @iamjoel in https://github.com/langgenius/dify/pull/35427
* fix(auth): enforce phase-bound change-email token flow (GHSA-4q3w-q5mc-45rq) by @zyssyz123 in https://github.com/langgenius/dify/pull/35425
* chore(deps): bump json-repair from 0.59.2 to 0.59.4 in /api in the python-packages group by @dependabot[bot] in https://github.com/langgenius/dify/pull/35404
* chore(deps): bump google-cloud-aiplatform from 1.147.0 to 1.148.1 in /api in the google group by @dependabot[bot] in https://github.com/langgenius/dify/pull/35397
* chore(deps-dev): bump xinference-client from 2.4.0 to 2.5.0 in /api in the vdb group by @dependabot[bot] in https://github.com/langgenius/dify/pull/35399
* chore(deps): bump the storage group in /api with 3 updates by @dependabot[bot] in https://github.com/langgenius/dify/pull/35398
* ci: [codex] Remove anti-slop GitHub Actions workflow by @laipz8200 in https://github.com/langgenius/dify/pull/35432
* chore(deps): bump the github-actions-dependencies group across 1 directory with 7 updates by @dependabot[bot] in https://github.com/langgenius/dify/pull/35435
* chore: fix oxlint warnings (unused variables and imports) by @sicnuyudidi in https://github.com/langgenius/dify/pull/35249
* fix: increase maximum PostgreSQL connections to 200 by @Mutantpenguin in https://github.com/langgenius/dify/pull/35439
* refactor(web): continue replacing PortalToFollowElem with Popover components by @CodingOnStar in https://github.com/langgenius/dify/pull/35431
* feat(dify-ui): add PreviewCard primitive by @lyzno1 in https://github.com/langgenius/dify/pull/35434
* fix(workflow): cache provider configurations during graph init by @laipz8200 in https://github.com/langgenius/dify/pull/35447
* refactor(api): tighten core rag typing batch 1 by @tmimmanuel in https://github.com/langgenius/dify/pull/35210
* chore: resolve oxlint warnings across web and SDK by @agenthaulk in https://github.com/langgenius/dify/pull/34540
* refactor(billing): use Infotip for UsageInfo help icon, migrate storage tooltip to dify-ui by @lyzno1 in https://github.com/langgenius/dify/pull/35448
* fix: webscaper sometime not work by @hjlarry in https://github.com/langgenius/dify/pull/35450
* refactor: replace deprecated Iterator with Generator in contextmanagers #35433 by @iAbhi001 in https://github.com/langgenius/dify/pull/35441
* feat: support slash variable filtering in prompt editor by @iamjoel in https://github.com/langgenius/dify/pull/35460
* chore(deps): bump base ui to 1.4.1 by @lyzno1 in https://github.com/langgenius/dify/pull/35459
* chore(deps-dev): bump the dev group in /api with 6 updates by @dependabot[bot] in https://github.com/langgenius/dify/pull/35402
* chore(deps): bump vite-plus to 0.1.19 by @lyzno1 in https://github.com/langgenius/dify/pull/35462
* fix(plugin): persist tenant plugin auto-upgrade strategy changes by @zyssyz123 in https://github.com/langgenius/dify/pull/35464
* refactor: migrate from PortalToFollowElem to Popover component across various components by @CodingOnStar in https://github.com/langgenius/dify/pull/35454
* chore: port 2 api as deprecated by @asukaminato0721 in https://github.com/langgenius/dify/pull/35261
* chore(deps): bump lxml from 6.0.2 to 6.1.0 in /api by @dependabot[bot] in https://github.com/langgenius/dify/pull/35470
* fix: bump pyrefly version by @JiwaniZakir in https://github.com/langgenius/dify/pull/33702
* chore: migrate type-check from tsc to tsgo across all workspaces by @lyzno1 in https://github.com/langgenius/dify/pull/35488
* chore: update 3 api by @asukaminato0721 in https://github.com/langgenius/dify/pull/35481
* fix(web): keep Add model dialog footer visible when form overflows by @crazywoola in https://github.com/langgenius/dify/pull/35490
* feat: improve follow-up settings by @hjlarry in https://github.com/langgenius/dify/pull/35442
* refactor: migrate base/select to dify-ui/select by @CodingOnStar in https://github.com/langgenius/dify/pull/35487
* chore(i18n): sync translations with en-US by @github-actions[bot] in https://github.com/langgenius/dify/pull/35492
* refactor: enhance node handle components with opacity transitions and add tests for visibility behavior by @CodingOnStar in https://github.com/langgenius/dify/pull/35494
* fix(plugin): handle file input reset and improve local installer close functionality by @CodingOnStar in https://github.com/langgenius/dify/pull/35506
* chore: add script to generate openapi v2 json and add in README #35474 by @asukaminato0721 in https://github.com/langgenius/dify/pull/35477
* test(auth): add sign-in smoke test and core validation  by @Jingyi-Dify in https://github.com/langgenius/dify/pull/35501
* test(e2e): add publish app happy path scenario by @Jingyi-Dify in https://github.com/langgenius/dify/pull/35503
* fix(web): restore "Copied" feedback state on copy buttons by @lyzno1 in https://github.com/langgenius/dify/pull/35513
* fix(web): three small UX fixes on /datasets and /plugins by @lyzno1 in https://github.com/langgenius/dify/pull/35514
* fix: improve collaboration by @hjlarry in https://github.com/langgenius/dify/pull/35309
* test(e2e): add app detail navigation and redirect scenarios by @Jingyi-Dify in https://github.com/langgenius/dify/pull/35502
* fix: improve note node by @hjlarry in https://github.com/langgenius/dify/pull/35461
* fix: update node handle opacity and pointer events behavior in components and tests by @CodingOnStar in https://github.com/langgenius/dify/pull/35525
* refactor(api): fix pyright errors in jieba, milvus, couchbase, oracle, and router by @tmimmanuel in https://github.com/langgenius/dify/pull/34938
* feat: support key up and down to select variable item by @iamjoel in https://github.com/langgenius/dify/pull/35527
* fix: sync 35528 by @wylswz in https://github.com/langgenius/dify/pull/35539
* chore(dify-ui): update tooltip and infotip migration by @lyzno1 in https://github.com/langgenius/dify/pull/35543
* feat: add service api of HITL by @hjlarry in https://github.com/langgenius/dify/pull/32826
* feat: marketplace and oauth fixes by @RockChinQ in https://github.com/langgenius/dify/pull/35509
* fix: app icon could not only change background by @hjlarry in https://github.com/langgenius/dify/pull/35537
* fix: suggest questions more max_tokens by @hjlarry in https://github.com/langgenius/dify/pull/35533
* test(dify-ui): disable base ui animations globally by @lyzno1 in https://github.com/langgenius/dify/pull/35467
* fix: right click node not display the node detail panel by @hjlarry in https://github.com/langgenius/dify/pull/35554
* chore(i18n): sync translations with en-US by @github-actions[bot] in https://github.com/langgenius/dify/pull/35552
* chore: fix use select style api in orm by @asukaminato0721 in https://github.com/langgenius/dify/pull/35531
* feat: refactor modals to use Dialog component and add tests for ApiKeyModal and ProviderConfigModal by @CodingOnStar in https://github.com/langgenius/dify/pull/35550
* chore: port 2 api by @asukaminato0721 in https://github.com/langgenius/dify/pull/35542
* docs: fix Kubernetes deployment wording by @MukundaKatta in https://github.com/langgenius/dify/pull/35547
* test: add P0 workflow run, publish, and share scenarios   by @Jingyi-Dify in https://github.com/langgenius/dify/pull/35559
* fix(api): declare flask dependency by @WH-2099 in https://github.com/langgenius/dify/pull/35568
* refactor: port ChildChunk by @asukaminato0721 in https://github.com/langgenius/dify/pull/30920
* chore(deps): bump gitpython from 3.1.45 to 3.1.47 in /api by @dependabot[bot] in https://github.com/langgenius/dify/pull/35570
* refactor: port MessageAnnotation by @asukaminato0721 in https://github.com/langgenius/dify/pull/31005
* chore(ci): move image builds to depot by @goocarlos in https://github.com/langgenius/dify/pull/35575
* refactor: quota v3 integration by @hj24 in https://github.com/langgenius/dify/pull/35436
* chore(deps): bump anthropics/claude-code-action from 1.0.101 to 1.0.107 in the github-actions-dependencies group by @dependabot[bot] in https://github.com/langgenius/dify/pull/35579
* chore(deps-dev): bump the dev group in /api with 5 updates by @dependabot[bot] in https://github.com/langgenius/dify/pull/35581
* chore(deps): bump psycopg2-binary from 2.9.11 to 2.9.12 in /api in the database group by @dependabot[bot] in https://github.com/langgenius/dify/pull/35577
* chore(deps): bump the opentelemetry group in /api with 7 updates by @dependabot[bot] in https://github.com/langgenius/dify/pull/35576
* chore(deps-dev): bump xinference-client from 2.5.0 to 2.7.0 in /api in the vdb group by @dependabot[bot] in https://github.com/langgenius/dify/pull/35580
* chore(deps): bump the storage group across 1 directory with 3 updates by @dependabot[bot] in https://github.com/langgenius/dify/pull/35578
* chore(ci): increase tsslint heap limit by @lyzno1 in https://github.com/langgenius/dify/pull/35591
* refactor(web): migrate simple overlay tooltips by @lyzno1 in https://github.com/langgenius/dify/pull/35588
* fix(web): migrate variable type selector overlay by @hjlarry in https://github.com/langgenius/dify/pull/35590
* fix: improve variable picker text width allocation by @hjlarry in https://github.com/langgenius/dify/pull/35587
* ci: upgrade web test runners by @lyzno1 in https://github.com/langgenius/dify/pull/35593
* fix: enhance file uploader with billing support and update translations by @WTW0313 in https://github.com/langgenius/dify/pull/35583
* fix: school name can not input by @iamjoel in https://github.com/langgenius/dify/pull/35597
* chore: update dependency catalog by @lyzno1 in https://github.com/langgenius/dify/pull/35594
* chore(i18n): sync translations with en-US by @github-actions[bot] in https://github.com/langgenius/dify/pull/35595
* fix: keep cleanup tasks resilient to billing API failures by @zyssyz123 in https://github.com/langgenius/dify/pull/35600
* fix: download and upload package before invoking upgrade in auto-upgrade task by @BenjaminX in https://github.com/langgenius/dify/pull/35599
* refactor: move SegmentAttachmentBinding and UploadFile to TypeBase by @asukaminato0721 in https://github.com/langgenius/dify/pull/30218
* test: add Baidu OBS storage unit tests by @jimmyzhuu in https://github.com/langgenius/dify/pull/34330
* fix: show full checklist message tooltip instead of truncated by @hjlarry in https://github.com/langgenius/dify/pull/35613
* fix: align auto update time picker to the right by @hjlarry in https://github.com/langgenius/dify/pull/35621
* fix: align object value remove button of chat variable by @hjlarry in https://github.com/langgenius/dify/pull/35616
* fix(test): register baidu_obs mock as pytest plugin by @lin-snow in https://github.com/langgenius/dify/pull/35618
* fix: prioritize URL conversation_id over localStorage in embedded chatbot by @treekimm in https://github.com/langgenius/dify/pull/35519
* refactor(web): improve a11y and design-system consistency for date/time picker and auto-update strategy picker by @lyzno1 in https://github.com/langgenius/dify/pull/35627
* refactor: improve scrollbar handling in plugin and model selector UI by @lyzno1 in https://github.com/langgenius/dify/pull/35630
* test: cover shared workflow app run by @lyzno1 in https://github.com/langgenius/dify/pull/35634
* fix(web): filter model selector by model name by @WTW0313 in https://github.com/langgenius/dify/pull/35624
* fix(ci): wait for mysql to accept queries before db migration by @lin-snow in https://github.com/langgenius/dify/pull/35631
* chore: port one api by @asukaminato0721 in https://github.com/langgenius/dify/pull/35609
* fix: hit-testing response failed because of Pydantic check. by @FFXN in https://github.com/langgenius/dify/pull/35640
* chore: correction of ru translation by @knyazz in https://github.com/langgenius/dify/pull/35645
* fix: flaky WordExtractor close test in CI by @kenwoodjw in https://github.com/langgenius/dify/pull/35652
* fix: refresh MCP tool metadata after updates and align App DSL test stubs by @hyl64 in https://github.com/langgenius/dify/pull/35354
* fix: improve workflow as tool overlays by @hjlarry in https://github.com/langgenius/dify/pull/35661
* chore: bump version to 1.14.0 by @wylswz in https://github.com/langgenius/dify/pull/35662

## New Contributors
* @faizkhairi made their first contribution in https://github.com/langgenius/dify/pull/34080
* @Maa-ly made their first contribution in https://github.com/langgenius/dify/pull/34146
* @Fronut made their first contribution in https://github.com/langgenius/dify/pull/34201
* @jigangz made their first contribution in https://github.com/langgenius/dify/pull/34221
* @ZZITE made their first contribution in https://github.com/langgenius/dify/pull/34224
* @fisherOne1 made their first contribution in https://github.com/langgenius/dify/pull/33740
* @wangji0923 made their first contribution in https://github.com/langgenius/dify/pull/33853
* @owldev127 made their first contribution in https://github.com/langgenius/dify/pull/34185
* @dominciyue made their first contribution in https://github.com/langgenius/dify/pull/33927
* @SeasonPilot made their first contribution in https://github.com/langgenius/dify/pull/33105
* @EndlessLucky made their first contribution in https://github.com/langgenius/dify/pull/34151
* @jimmyzhuu made their first contribution in https://github.com/langgenius/dify/pull/34328
* @LikiosSedo made their first contribution in https://github.com/langgenius/dify/pull/34436
* @agenthaulk made their first contribution in https://github.com/langgenius/dify/pull/34450
* @mvanhorn made their first contribution in https://github.com/langgenius/dify/pull/33473
* @jakearmstrong59 made their first contribution in https://github.com/langgenius/dify/pull/34589
* @iamPulakesh made their first contribution in https://github.com/langgenius/dify/pull/34614
* @aliworksx08 made their first contribution in https://github.com/langgenius/dify/pull/34607
* @corevibe555 made their first contribution in https://github.com/langgenius/dify/pull/34633
* @carlos4s made their first contribution in https://github.com/langgenius/dify/pull/34693
* @s-kawamura-upgrade made their first contribution in https://github.com/langgenius/dify/pull/34719
* @zhangbububu made their first contribution in https://github.com/langgenius/dify/pull/34720
* @dataCenter430 made their first contribution in https://github.com/langgenius/dify/pull/34769
* @volcano303 made their first contribution in https://github.com/langgenius/dify/pull/34751
* @BrianWang1990 made their first contribution in https://github.com/langgenius/dify/pull/34515
* @jonathanchang31 made their first contribution in https://github.com/langgenius/dify/pull/34795
* @balancetheworld made their first contribution in https://github.com/langgenius/dify/pull/34804
* @ai-hpc made their first contribution in https://github.com/langgenius/dify/pull/34859
* @sxxtony made their first contribution in https://github.com/langgenius/dify/pull/34806
* @jeanibarz made their first contribution in https://github.com/langgenius/dify/pull/34868
* @plind-junior made their first contribution in https://github.com/langgenius/dify/pull/34661
* @YgorLeal made their first contribution in https://github.com/langgenius/dify/pull/34786
* @HamzaSwitch made their first contribution in https://github.com/langgenius/dify/pull/34909
* @wdeveloper16 made their first contribution in https://github.com/langgenius/dify/pull/34960
* @AlsoTheZv3n made their first contribution in https://github.com/langgenius/dify/pull/34967
* @thegdsks made their first contribution in https://github.com/langgenius/dify/pull/34988
* @aviu16 made their first contribution in https://github.com/langgenius/dify/pull/34983
* @HeYin-OS made their first contribution in https://github.com/langgenius/dify/pull/34896
* @dev-miro26 made their first contribution in https://github.com/langgenius/dify/pull/34824
* @LincolnBurrows2017 made their first contribution in https://github.com/langgenius/dify/pull/33435
* @KeWang0622 made their first contribution in https://github.com/langgenius/dify/pull/35047
* @xingarr made their first contribution in https://github.com/langgenius/dify/pull/27838
* @samrusani made their first contribution in https://github.com/langgenius/dify/pull/35004
* @jimcody1995 made their first contribution in https://github.com/langgenius/dify/pull/35079
* @bohdansolovie made their first contribution in https://github.com/langgenius/dify/pull/35081
* @aether-png made their first contribution in https://github.com/langgenius/dify/pull/35140
* @jamesrayammons made their first contribution in https://github.com/langgenius/dify/pull/35197
* @Eruis2579 made their first contribution in https://github.com/langgenius/dify/pull/35183
* @aayushbaluni made their first contribution in https://github.com/langgenius/dify/pull/35263
* @jerryzai made their first contribution in https://github.com/langgenius/dify/pull/35234
* @shaun0927 made their first contribution in https://github.com/langgenius/dify/pull/35326
* @kuishou68 made their first contribution in https://github.com/langgenius/dify/pull/35150
* @hyl64 made their first contribution in https://github.com/langgenius/dify/pull/35357
* @bitcompass made their first contribution in https://github.com/langgenius/dify/pull/34835
* @avasis-ai made their first contribution in https://github.com/langgenius/dify/pull/35389
* @sicnuyudidi made their first contribution in https://github.com/langgenius/dify/pull/35249
* @Mutantpenguin made their first contribution in https://github.com/langgenius/dify/pull/35439
* @iAbhi001 made their first contribution in https://github.com/langgenius/dify/pull/35441
* @JiwaniZakir made their first contribution in https://github.com/langgenius/dify/pull/33702
* @MukundaKatta made their first contribution in https://github.com/langgenius/dify/pull/35547
* @treekimm made their first contribution in https://github.com/langgenius/dify/pull/35519
* @knyazz made their first contribution in https://github.com/langgenius/dify/pull/35645

**Full Changelog**: https://github.com/langgenius/dify/compare/1.13.3...1.14.0