Skip to content

dify

AI Agents & Assistants

Production-ready platform for agentic workflow development.

TypeScript Latest 1.14.2 · 15d ago Security brief →

Features

  • Provides an intuitive interface for building LLM applications
  • Supports AI workflow, Retrieval‑Augmented Generation (RAG) pipelines and agents
  • Offers model management and observability integrations (e.g., Opik, Langfuse, Arize Phoenix)

Security Response History

1 CVE
CVE Severity Disclosed Patched (this tool) vs Ecosystem Median
CVE-2026-42208 KEV critical
CVSS 9.8
2026-05-08 2026-05-12 4d

Recent releases

View all 30 releases →
Review required
1.14.2 Breaking risk
Auth RBAC

Security, workflows, knowledge, UI, deployment, agent

Upgrade now
1.14.1 Security relevant
Auth Dependencies

SECRET_KEY auto‑generation

patches CVE-2026-42208
Open
1.14.0 Breaking risk
Security fixes
  • Stricter change-email token validation (GHSA-4q3w-q5mc-45rq)
  • IDOR hardening with tenant validation and ownership checks
Notable features
  • Real-time workflow collaboration with synced graph updates and team presence
  • Service API for programmatic human-in-the-loop workflows
  • Accessibility improvements and Goto Anything navigation command
Full changelog

🚀 What's New in v1.14.0?

Collaboration

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

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 Composehealthchecks 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.
  • Redisconfigurable 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).
  • 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

1.13.3 Mixed
Notable features
  • Added variable-reference support for model parameters in LLM, Question Classifier, and Variable Extractor nodes
1.13.2 Breaking risk

Fix critical regressions in prompt message transformation

Full changelog

This patch release fixes several critical regressions and stability issues introduced in v1.13.1, including:

  • a severe regression in prompt message transformation that caused multiple LLM-plugin invocation failures across
    LLM-related nodes, including LLM and Question Classifier.
  • Knowledge Retrieval node execution failures caused by incompatible enum values
  • improper Weaviate client cleanup

Upgrade Guide

[!IMPORTANT]
If you use custom CELERY_QUEUES, make sure workflow_based_app_execution is included.
If ENABLE_API_TOKEN_LAST_USED_UPDATE_TASK=true, also include api_token.

For background and details, see ⚠️ Important Upgrade Note and 🔧 Operational Note above.

Docker Compose Deployments

  1. Back up your customized docker-compose YAML file (optional)

    cd docker
    cp docker-compose.yaml docker-compose.yaml.$(date +%s).bak
    
  2. Get the latest code from the main branch

    git checkout main
    git pull origin main
    
  3. Stop the service. Please execute in the docker directory

    docker compose down
    
  4. Back up data

    tar -cvf volumes-$(date +%s).tgz volumes
    
  5. Upgrade services

    docker compose up -d
    

[!NOTE]

If you encounter errors like below

2025/11/26 11:37:57 /app/internal/db/pg/pg.go:30
[error] failed to initialize database, got error failed to connect to `host=db_postgres user=postgres database=dify_plugin`: hostname resolving error (lookup db_postgres on 127.0.0.11:53: server misbehaving)

2025/11/26 11:37:57 /app/internal/db/pg/pg.go:34
[error] failed to initialize database, got error failed to connect to `host=db_postgres user=postgres database=postgres`: hostname > resolving error (lookup db_postgres on 127.0.0.11:53: server misbehaving)
2025/11/26 11:37:57 init.go:99: [PANIC]failed to init dify plugin db: failed to connect to `host=db_postgres user=postgres database=postgres`: hostname resolving error (lookup db_postgres on 127.0.0.11:53: server misbehaving)
panic: [PANIC]failed to init dify plugin db: failed to connect to `host=db_postgres user=postgres database=postgres`: hostname resolving error (lookup db_postgres on 127.0.0.11:53: server misbehaving)

Please use the following command instead. For details, please read this https://github.com/langgenius/dify/issues/28706

docker compose --profile postgresql up -d

Source Code Deployments

  1. Stop the API server, Worker, and Web frontend Server.

  2. Get the latest code from the release branch:

    git checkout 1.13.2
    
  3. Update Python dependencies:

    cd api
    uv sync
    
  4. Then, let's run the migration script:

    uv run flask db upgrade
    
  5. Finally, run the API server, Worker, and Web frontend Server again.


What's Changed

  • chore: bump version to 1.13.2 (#33681) by @QuantumGhost
  • fix: fix max_retries is hardcode (#33619) by #32715 @fatelei
  • fix(api): Preserving the content transform logic in fetch_prompt_messages (#33666) by @QuantumGhost
  • feat: remove weaviate client del method (#33593) by @fatelei
  • fix(api): make CreatorUserRole accept both end-user and end_user (#33638) by @fatelei

Full Changelog: https://github.com/langgenius/dify/compare/1.13.1...1.13.2

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

About

Stars
143,493
Forks
22,583
Languages
TypeScript Python JavaScript
Downloads/week
1,359 ↓15%
NPM Maintainers
3
Contributors
100
TypeScript
Types included ✓

Install & Platforms

Install via
docker-compose

Community & Support

Open source alternatives

Beta — feedback welcome: [email protected]