Skip to content

feat: add reusable network access group APIs - #41025

Merged
CodingOnStar merged 116 commits into
mainfrom
song/snp-682-ip-allowlist
Oct 20, 2026
Merged

CodingOnStar merged 116 commits into
mainfrom
song/snp-682-ip-allowlist

Conversation

@zyssyz123

@zyssyz123 zyssyz123 commented Aug 20, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • replace the old workspace scope-policy BFF with tenant reusable network access group APIs
  • add group list/create/get/update/delete under the current workspace
  • add per-app group binding GET/PUT, including explicit group_id: null unbind
  • inject the authenticated tenant and actor; require persisted owner/admin membership and tenant-scoped app lookup
  • preserve safe SaaS error reasons so name conflict, group limit/version conflict, bound deletion, and internal-secret failures produce actionable Console errors
  • support ProtoJSON camel/snake aliases, int64 strings, timestamps, omitted optional fields, and regenerated OpenAPI/oRPC/Zod/TypeScript contracts

Console APIs

  • GET|POST /console/api/workspaces/current/network-access-groups
  • GET|PUT|DELETE /console/api/workspaces/current/network-access-groups/{group_id}
  • GET|PUT /console/api/apps/{app_id}/network-access-group

Validation

  • 38 focused BFF/controller/client tests
  • 64 Swagger/schema/response-contract tests
  • 12 generated contracts tests and TypeScript type-check
  • Ruff, Pyrefly, and target Mypy: clean
  • GitHub API unit/integration, Web, CLI, CodeQL, DB migration, browser and full-stack E2E checks
  • dev BFF route authentication checks plus complete control-plane/Gateway E2E

Dependency

Linear: SNP-682

@dosubot dosubot Bot added the size:L This PR changes 100-499 lines, ignoring generated files. label Aug 20, 2026
@github-actions

github-actions Bot commented Aug 20, 2026 •

Copy link
Copy Markdown
Contributor

Pyrefly Type Coverage

Metric Base PR Delta
Type coverage 75.77% 75.98% +0.21%
Strict coverage 75.44% 75.66% +0.22%
Typed symbols 63,292 64,080 +788
Untyped symbols 20,330 20,343 +13
Modules 3814 3833 +19

@autofix-ci
autofix-ci Bot requested a review from crazywoola as a code owner August 20, 2026 10:35
@dosubot dosubot Bot added size:XL This PR changes 500-999 lines, ignoring generated files. and removed size:L This PR changes 100-499 lines, ignoring generated files. labels Aug 20, 2026
@github-actions github-actions Bot added the web This relates to changes on the web. label Aug 20, 2026
@codecov

codecov Bot commented Aug 20, 2026 •

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 97.13922% with 45 lines in your changes missing coverage. Please review.
✅ Project coverage is 88.64%. Comparing base (5b3b7cd) to head (109cbdd).

Files with missing lines Patch % Lines
...trollers/console/workspace/network_access_group.py 95.12% 11 Missing and 3 partials ⚠️
...pi/repositories/network_access_group_repository.py 86.36% 4 Missing and 2 partials ⚠️
.../header/account-setting/ip-policies-page/index.tsx 96.29% 5 Missing ⚠️
api/controllers/common/access_response.py 95.40% 3 Missing and 1 partial ⚠️
web/app/(shareLayout)/components/splash.tsx 92.10% 3 Missing ⚠️
api/core/network_access/client_ip.py 96.82% 1 Missing and 1 partial ⚠️
api/tasks/remove_app_and_related_data_task.py 90.90% 1 Missing and 1 partial ⚠️
web/app/components/base/chat/chat/hooks.ts 92.59% 2 Missing ⚠️
web/app/components/explore/try-app/index.tsx 93.10% 2 Missing ⚠️
...b/app/components/header/account-dropdown/index.tsx 93.93% 2 Missing ⚠️
... and 2 more
Additional details and impacted files
@@            Coverage Diff             @@
##             main   #41025      +/-   ##
==========================================
+ Coverage   88.55%   88.64%   +0.08%     
==========================================
  Files        5522     5567      +45     
  Lines      331163   333939    +2776     
  Branches    66215    67064     +849     
==========================================
+ Hits       293256   296005    +2749     
- Misses      32725    32751      +26     
- Partials     5182     5183       +1     
Flag Coverage Δ
api 88.84% <97.41%> (+0.06%) ⬆️
cli 94.06% <ø> (ø)
dify-ui 91.67% <ø> (ø)
web 88.06% <96.22%> (+0.13%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@dosubot dosubot Bot added size:XXL This PR changes 1000+ lines, ignoring generated files. and removed size:XL This PR changes 500-999 lines, ignoring generated files. labels Aug 21, 2026
@github-actions

github-actions Bot commented Aug 21, 2026 •

Copy link
Copy Markdown
Contributor

Pyrefly Diff

base → PR
--- /tmp/pyrefly_base.txt	2026-10-20 05:46:21.559716831 +0000
+++ /tmp/pyrefly_pr.txt	2026-10-20 05:46:12.443596989 +0000
@@ -1625,7 +1625,7 @@
 ERROR Argument `SimpleNamespace` is not assignable to parameter `form` with type `Form` in function `controllers.console.human_input_form.ConsoleHumanInputFormApi._ensure_console_access` [bad-argument-type]
   --> tests/unit_tests/controllers/console/test_human_input_form.py:96:57
 ERROR Type `Response` is not iterable [not-iterable]
-   --> tests/unit_tests/controllers/console/test_wraps.py:304:17
+   --> tests/unit_tests/controllers/console/test_wraps.py:305:17
 ERROR Argument value `Literal[0]` violates Pydantic `ge` constraint `Literal[1]` for field `page` [bad-argument-type]
    --> tests/unit_tests/controllers/console/workspace/test_endpoint.py:235:47
 ERROR Missing argument `plugin_id` in function `controllers.console.workspace.endpoint.EndpointListForPluginQuery.__init__` [missing-argument]
@@ -1677,9 +1677,9 @@
 ERROR Missing argument `payload` in function `protected_view` [missing-argument]
    --> tests/unit_tests/controllers/inner_api/plugin/test_plugin_wraps.py:394:36
 ERROR Object of class `FromClause` has no attribute `create` [missing-attribute]
-  --> tests/unit_tests/controllers/mcp/test_mcp.py:39:13
+  --> tests/unit_tests/controllers/mcp/test_mcp.py:41:13
 ERROR Attribute `payload` of class `Namespace` is a read-only property and cannot be set [read-only]
-  --> tests/unit_tests/controllers/mcp/test_mcp.py:58:5
+  --> tests/unit_tests/controllers/mcp/test_mcp.py:61:5
 ERROR Object of class `FunctionType` has no attribute `__handler__` [missing-attribute]
   --> tests/unit_tests/controllers/openapi/test_account.py:36:13
 ERROR Object of class `FunctionType` has no attribute `__handler__` [missing-attribute]
@@ -1813,19 +1813,19 @@
 ERROR Argument `() -> Session` is not assignable to parameter `session_factory` with type `sessionmaker[@_]` in function `sqlalchemy.orm.scoping.scoped_session.__init__` [bad-argument-type]
    --> tests/unit_tests/controllers/service_api/test_wraps.py:101:27
 ERROR Missing argument `app_model` in function `protected_view` [missing-argument]
-   --> tests/unit_tests/controllers/service_api/test_wraps.py:263:36
+   --> tests/unit_tests/controllers/service_api/test_wraps.py:273:36
 ERROR Missing argument `app_model` in function `protected_view` [missing-argument]
-   --> tests/unit_tests/controllers/service_api/test_wraps.py:338:61
+   --> tests/unit_tests/controllers/service_api/test_wraps.py:348:61
 ERROR Missing argument `end_user` in function `protected_view` [missing-argument]
-   --> tests/unit_tests/controllers/service_api/test_wraps.py:338:61
+   --> tests/unit_tests/controllers/service_api/test_wraps.py:348:61
 ERROR Missing argument `app_model` in function `protected_view` [missing-argument]
-   --> tests/unit_tests/controllers/service_api/test_wraps.py:399:36
+   --> tests/unit_tests/controllers/service_api/test_wraps.py:409:36
 ERROR Object of class `NoneType` has no attribute `last_used_at` [missing-attribute]
-   --> tests/unit_tests/controllers/service_api/test_wraps.py:403:16
+   --> tests/unit_tests/controllers/service_api/test_wraps.py:413:16
 ERROR Argument `Literal['abnormal']` is not assignable to parameter `value` with type `AppStatus | SQLCoreOperations[AppStatus]` in function `sqlalchemy.orm.base.Mapped.__set__` [bad-argument-type]
-   --> tests/unit_tests/controllers/service_api/test_wraps.py:438:28
+   --> tests/unit_tests/controllers/service_api/test_wraps.py:448:28
 ERROR Object of class `NoneType` has no attribute `last_used_at` [missing-attribute]
-   --> tests/unit_tests/controllers/service_api/test_wraps.py:937:16
+   --> tests/unit_tests/controllers/service_api/test_wraps.py:947:16
 ERROR Cannot index into `object` [bad-index]
    --> tests/unit_tests/controllers/test_swagger.py:151:20
 ERROR Cannot index into `object` [bad-index]
@@ -1863,7 +1863,25 @@
 ERROR Cannot index into `object` [bad-index]
    --> tests/unit_tests/controllers/test_swagger.py:672:12
 ERROR `object` is not assignable to attribute `request` with type `Request` [bad-assignment]
-  --> tests/unit_tests/controllers/trigger/test_trigger.py:12:22
+  --> tests/unit_tests/controllers/trigger/test_trigger.py:11:22
+ERROR Object of class `tuple` has no attribute `status_code` [missing-attribute]
+  --> tests/unit_tests/controllers/trigger/test_trigger.py:26:16
+ERROR Object of class `tuple` has no attribute `data` [missing-attribute]
+  --> tests/unit_tests/controllers/trigger/test_trigger.py:27:16
+ERROR Object of class `tuple` has no attribute `status_code` [missing-attribute]
+  --> tests/unit_tests/controllers/trigger/test_trigger.py:57:16
+ERROR Object of class `tuple` has no attribute `data` [missing-attribute]
+  --> tests/unit_tests/controllers/trigger/test_trigger.py:58:16
+ERROR Type `Response` is not iterable [not-iterable]
+  --> tests/unit_tests/controllers/trigger/test_trigger.py:62:9
+ERROR Cannot index into `Response` [bad-index]
+  --> tests/unit_tests/controllers/trigger/test_trigger.py:65:16
+ERROR Cannot index into `Response` [bad-index]
+  --> tests/unit_tests/controllers/trigger/test_trigger.py:66:16
+ERROR Type `Response` is not iterable [not-iterable]
+  --> tests/unit_tests/controllers/trigger/test_trigger.py:70:9
+ERROR Cannot index into `Response` [bad-index]
+  --> tests/unit_tests/controllers/trigger/test_trigger.py:73:16
 ERROR `_RequestStub` is not assignable to attribute `request` with type `Request` [bad-assignment]
   --> tests/unit_tests/controllers/trigger/test_webhook.py:32:22
 ERROR Object of class `Exception` has no attribute `data` [missing-attribute]
@@ -1907,9 +1925,9 @@
 ERROR Missing argument `inputs` in function `controllers.common.controller_schemas.WorkflowRunPayload.__init__` [missing-argument]
    --> tests/unit_tests/controllers/web/test_pydantic_models.py:337:31
 ERROR Expected 1 more positional argument [bad-argument-count]
-  --> tests/unit_tests/controllers/web/test_wraps.py:33:32
+  --> tests/unit_tests/controllers/web/test_wraps.py:36:32
 ERROR Expected 1 more positional argument [bad-argument-count]
-  --> tests/unit_tests/controllers/web/test_wraps.py:51:23
+  --> tests/unit_tests/controllers/web/test_wraps.py:54:23
 ERROR Argument `list[Unknown]` is not assignable to parameter `llm_response` with type `Generator[LLMResultChunk]` in function `core.agent.output_parser.cot_output_parser.CotAgentOutputParser.handle_react_stream_output` [bad-argument-type]
   --> tests/unit_tests/core/agent/output_parser/test_cot_output_parser.py:56:71
 ERROR No matching overload found for function `str.join` called with arguments: (list[AgentScratchpadUnit.Action | str]) [no-matching-overload]

@zyssyz123 zyssyz123 changed the title feat: add network access policy console API feat: add reusable network access group APIs Aug 21, 2026
zyssyz123 and others added 12 commits August 24, 2026 13:07
Show a PRO chip and upgrade popover for Cloud sandbox workspaces
on the Access Point page.
Paid Cloud workspaces open a config popover to pick an IP policy and apply it to access points. Sandbox still uses the paywall. Settings gains an IP Policies destination for the empty-state exit.
Paid Cloud chips show Off, ON, n of m, or paused. Clicking Off opens L2; configured chips open L1. Sandbox still uses the PRO paywall.
Add the New IP Policy dialog and empty list host. Allowlist rows validate IPv4, IPv6, and CIDR live, and Create stays disabled until the name and at least one valid entry are filled.
Clip overflow on the dialog shell and scroll only the allowlist rows so the scrollbar no longer squares the rounded corners.
CodingOnStar
CodingOnStar previously approved these changes Oct 20, 2026

@CodingOnStar CodingOnStar left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@CodingOnStar
CodingOnStar added this pull request to the merge queue Oct 20, 2026
Merged via the queue into main with commit 2a6764e Oct 20, 2026
57 checks passed
@CodingOnStar
CodingOnStar deleted the song/snp-682-ip-allowlist branch October 20, 2026 05:58
@dosubot

dosubot Bot commented Oct 20, 2026

Copy link
Copy Markdown

📄 Knowledge review

✏️ Documentation updates

1 page was updated by changes in this PR.

Page Library Status
MCP Protocol Integration for Dify Workflows dify ✅ Updated
📝 MCP Protocol Integration for Dify Workflows — changes
@@ -48,12 +48,13 @@
 
 When a POST arrives at `/mcp/server/<server_code>/mcp`, the controller:
 
-1. Parses the JSON-RPC payload and validates it against `MCPRequestPayload` [[7]](https://github.com/langgenius/dify/blob/451faa0e68fe51d5960d184e5dd234d9926a3848/api/controllers/mcp/mcp.py#L67-L69).
-2. Resolves the negotiated protocol version from the `MCP-Protocol-Version` request header (added in PR #37892 — see [Protocol Version Negotiation](#protocol-version-negotiation)).
-3. Looks up the `AppMCPServer` and associated `App` by `server_code`, then checks the server status is `active` [[8]](https://github.com/langgenius/dify/blob/451faa0e68fe51d5960d184e5dd234d9926a3848/api/controllers/mcp/mcp.py#L82-L97).
-4. Extracts the app's `user_input_form` to build the tool's `inputSchema` [[9]](https://github.com/langgenius/dify/blob/451faa0e68fe51d5960d184e5dd234d9926a3848/api/controllers/mcp/mcp.py#L142-L159).
-5. Routes **notifications** (e.g. `notifications/initialized`) to a lightweight handler that returns HTTP 202 with an empty body, and routes **requests** to the full handler pipeline [[10]](https://github.com/langgenius/dify/blob/451faa0e68fe51d5960d184e5dd234d9926a3848/api/controllers/mcp/mcp.py#L109-L120).
-6. For requests, retrieves or lazily creates an `EndUser` record scoped to the MCP server [[11]](https://github.com/langgenius/dify/blob/451faa0e68fe51d5960d184e5dd234d9926a3848/api/controllers/mcp/mcp.py#L234-L242), then dispatches to `handle_mcp_request` in `core/mcp/server/streamable_http.py`.
+1. Resolves identity **before** the request body is parsed, in a short read database session: it looks up the `AppMCPServer` by `server_code`, looks up the backing `App` scoped by `App.tenant_id == mcp_server.tenant_id`, and checks the server status is `active` [[8]](https://github.com/langgenius/dify/blob/451faa0e68fe51d5960d184e5dd234d9926a3848/api/controllers/mcp/mcp.py#L82-L97). Only scalar IDs (server id, app id, tenant id) leave this session, never ORM objects. Any failure is a single opaque `MCPServerNotFoundError` — see [Error Responses](#error-responses). The route's `expect` decorator uses `validate=False`, so malformed or oversized JSON bodies reach this step and get the same response.
+2. Parses the JSON-RPC payload and validates it against `MCPRequestPayload` [[7]](https://github.com/langgenius/dify/blob/451faa0e68fe51d5960d184e5dd234d9926a3848/api/controllers/mcp/mcp.py#L67-L69). Allowed requests use the full body and protocol parser; the 64 KiB cap applies only to opaque error responses.
+3. Resolves the negotiated protocol version from the `MCP-Protocol-Version` request header (added in PR #37892 — see [Protocol Version Negotiation](#protocol-version-negotiation)).
+4. Re-validates identity in the execution transaction with fresh, attached ORM records. The server, app, and tenant IDs must match the preflight identity; a `server_code` reassigned to a different server, app, or tenant yields the same "Server Not Found" response.
+5. Extracts the app's `user_input_form` to build the tool's `inputSchema` [[9]](https://github.com/langgenius/dify/blob/451faa0e68fe51d5960d184e5dd234d9926a3848/api/controllers/mcp/mcp.py#L142-L159).
+6. Routes **notifications** (e.g. `notifications/initialized`) to a lightweight handler that returns HTTP 202 with an empty body, and routes **requests** to the full handler pipeline [[10]](https://github.com/langgenius/dify/blob/451faa0e68fe51d5960d184e5dd234d9926a3848/api/controllers/mcp/mcp.py#L109-L120).
+7. For requests, retrieves or lazily creates an `EndUser` record scoped to the MCP server [[11]](https://github.com/langgenius/dify/blob/451faa0e68fe51d5960d184e5dd234d9926a3848/api/controllers/mcp/mcp.py#L234-L242), then dispatches to `handle_mcp_request` in `core/mcp/server/streamable_http.py`.
 
 ### Supported App Modes
 
@@ -409,12 +410,14 @@
 
 | Error | Code | Trigger |
 |---|---|---|
-| `INVALID_REQUEST` | `-32600` | Server not found, server not active, unsupported `MCP-Protocol-Version` header, or trigger-entry workflow invoked via MCP (manual runs not supported for trigger workflows) |
+| `INVALID_REQUEST` | `-32600` | Server not found, backing app not found (or in a different tenant), server not active (all returned as one opaque `"Server Not Found"` error with HTTP 404), unsupported `MCP-Protocol-Version` header, or trigger-entry workflow invoked via MCP (manual runs not supported for trigger workflows) |
 | `INVALID_PARAMS` | `-32602` | Malformed request payload, invalid input form variable types |
 | `METHOD_NOT_FOUND` | `-32601` | Unrecognized JSON-RPC method sent with an `id` (returned with HTTP 400) |
 | `INTERNAL_ERROR` | `-32603` | Unexpected server-side failure |
 
-All JSON-RPC errors follow the standard JSON-RPC 2.0 error envelope. The `id` field echoes the request's `id` [[17]](https://github.com/langgenius/dify/blob/451faa0e68fe51d5960d184e5dd234d9926a3848/api/controllers/mcp/mcp.py#L20-L26).
+All JSON-RPC errors follow the standard JSON-RPC 2.0 error envelope. The `id` field echoes the request's `id`, which may be an int, float, string, or `null` [[17]](https://github.com/langgenius/dify/blob/451faa0e68fe51d5960d184e5dd234d9926a3848/api/controllers/mcp/mcp.py#L20-L26).
+
+Identity failures are deliberately indistinguishable. A missing server, a missing or tenant-mismatched backing app, an inactive server, and a `server_code` reassigned between the preflight check and execution all return HTTP 404 with code `-32600` and the message `"Server Not Found"`. Because identity is resolved before the body is parsed, this also applies to malformed or oversized JSON bodies; in that case the response echoes a bounded string or number `id` from the request, or `null`.
 
 #### Unrecognized Methods
 

Leave Feedback Ask Dosu about dify

Awhitter added a commit to Awhitter/dify that referenced this pull request Oct 25, 2026
* feat(agent): stream Agent V2 text output in plain runs (langgenius#43986)

Co-authored-by: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* refactor(api): read provider configuration cache rows via pydantic (langgenius#44055)

* refactor(web): use Select for the Studio app type filter (langgenius#44070)

* refactor(web): model app settings with form primitives (langgenius#44073)

* fix(dify-ui): show destructive colors on keyboard focus (langgenius#44079)

* ci: require TypeBase for new models (langgenius#44087)

Co-authored-by: Codex <codex@openai.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>

* ci: enable Ruff E721 (langgenius#44096)

Co-authored-by: Codex <codex@openai.com>

* ci: enable Ruff SIM210 (langgenius#44095)

Co-authored-by: Codex <codex@openai.com>

* fix(web): align API key dialog lifecycle and copy behavior (langgenius#44077)

* test(dify-ui): wait for time picker visibility before axe scan (langgenius#44105)

* ci: enable Ruff B006 (langgenius#44099)

Co-authored-by: Codex <codex@openai.com>

* ci: enable Ruff FURB152 (langgenius#44091)

Co-authored-by: Codex <codex@openai.com>

* ci: enable Ruff E711 (langgenius#44088)

Co-authored-by: Codex <codex@openai.com>

* fix(knowledge): only batch-enable segments whose indexing completed (langgenius#44017)

* fix(nodejs-client): preserve SSE field value whitespace (langgenius#44083)

* fix(api): stage hit-testing query log with flush instead of committing caller session (langgenius#44084)

* fix(dify-agent): treat a confirmed-missing Home Snapshot as a success on Enterprise delete (langgenius#44085)

Co-authored-by: D41910 <d41910@users.noreply.github.com>

* fix(nodejs-client): override default headers case-insensitively (langgenius#44090)

* fix(nodejs-client): allow empty keyword filters in list APIs (langgenius#44097)

* fix(nodejs-client): replace stale user fields in native upload forms (langgenius#44120)

* fix(api): accept MCP protocol version 2025-11-25 (langgenius#44066)

* fix(api): compare datasource credentials as JSON on MySQL (langgenius#44039)

* fix(structured_output): skip reasoning JSON when selecting output (langgenius#44005)

Co-authored-by: crazywoola <427733928@qq.com>

* ci: enable Ruff E722 (langgenius#44098)

Co-authored-by: Codex <codex@openai.com>

* ci: enable Ruff UP032 (langgenius#44092)

Co-authored-by: Codex <codex@openai.com>

* ci: enable Ruff B905 (langgenius#44094)

Co-authored-by: Codex <codex@openai.com>

* ci: enable Ruff SIM113 (langgenius#44102)

Co-authored-by: Codex <codex@openai.com>

* fix(deps): upgrade Next.js to 16.4.1 for October security fixes (langgenius#44127)

* docs: record overlay ownership and focus lessons (langgenius#44126)

* refactor(workflow): use route identity and Console Query for webhook URLs (langgenius#44135)

* refactor(workflow): own preview chat requests with Console Query (langgenius#44136)

* perf(rag): reduce knowledge retrieval post-processing overhead (langgenius#43665)

* fix(api): fix typos in logger warning and docstrings (langgenius#44134)

* refactor(api): enable strict typing for enterprise telemetry exporter tests (langgenius#44138)

* refactor(api): enable strict typing for prompt transform tests (langgenius#44139)

* ci: enable Ruff TID252 (langgenius#44108)

Co-authored-by: Codex <codex@openai.com>

* ci: enable Ruff B026 (langgenius#44100)

Co-authored-by: Codex <codex@openai.com>

* ci: enable Ruff SIM103 (langgenius#44110)

Co-authored-by: Codex <codex@openai.com>

* ci: enable Ruff FURB113 (langgenius#44109)

Co-authored-by: Codex <codex@openai.com>

* refactor(tools): remove redundant nested cast in MCP tool (langgenius#44132)

* refactor(api): use Pydantic to validate crawl cache key (langgenius#44131)

* fix(mcp): collect all tool discovery pages (langgenius#43842)

* fix(deps): override fflate to 0.7.5 for CVE-2026-45820 (langgenius#44148)

* refactor(web): let layouts own viewport height instead of root h-full chain (langgenius#44143)

* refactor(web): centralize AppIcon data and Avatar rendering (langgenius#44149)

* fix(agent): fail closed on Landlock errors and require local tokens (langgenius#44152)

* chore(deps): bump mako from 1.3.12 to 1.4.2 in /api (langgenius#43607)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): bump multidict from 6.7.0 to 6.9.1 in /api (langgenius#43610)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): bump fsspec from 2026.3.0 to 2026.6.0 in /dify-agent (langgenius#43606)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): bump oauthlib from 3.3.1 to 4.0.0 in /api (langgenius#43257)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): bump pydantic-ai-slim from 2.31.0 to 2.53.0 in /api (langgenius#43725)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* ci: enable Ruff E712 (langgenius#44114)

Co-authored-by: Codex <codex@openai.com>

* refactor: migrate app tracing queries and harden monitoring configuration (langgenius#44150)

* ci: enable Ruff SIM108 (langgenius#44113)

Co-authored-by: Codex <codex@openai.com>

* refactor(api): remove redundant casts in tencent trace unit tests (langgenius#44158)

* fix(api): preserve timestamp ties in message pagination (langgenius#44023)

Co-authored-by: mac <mac@macdeMacBook-Pro.local>

* fix(web): keep the value selector of a Code node input when regenerating code (langgenius#44075)

* fix(e2e): share sandbox auth token across managed runtimes (langgenius#44164)

* chore: remove KnowledgeFS and New Knowledge from main (langgenius#44163)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* ci: enable Ruff SIM105 (langgenius#44112)

Co-authored-by: Codex <codex@openai.com>

* refactor(web): retire the app detail store in favour of the query cache (langgenius#44166)

* fix(api): let a removed active member sign in with a re-invite (langgenius#43667)

Co-authored-by: Matt Van Horn <455140+mvanhorn@users.noreply.github.com>
Co-authored-by: Stream <Stream_2@qq.com>

* refactor(web): clarify App modes and scope workflow editor resources (langgenius#44171)

* chore: mark generated files as linguist-generated (langgenius#44180)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* feat(api): let agents build, configure and ship Dify apps over openapi (langgenius#43067)

* ci: enable Ruff B007 (langgenius#44107)

Co-authored-by: Codex <codex@openai.com>

* ci: enable Ruff F821 (langgenius#44101)

Co-authored-by: Codex <codex@openai.com>

* ci: enable Ruff UP007 (langgenius#44106)

Co-authored-by: Codex <codex@openai.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>

* ci: enable Ruff N806 (langgenius#44116)

Co-authored-by: Codex <codex@openai.com>

* fix: accumulate workflow elapsed time across resumptions (langgenius#44161)

* refactor(web): migrate handwritten console API calls to the generated oRPC contract (langgenius#44169)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>

* chore(deps): bump unstructured from 0.24.0 to 0.24.1 in /dify-agent (langgenius#44189)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* fix(web): normalize collapsible indicator rotation (langgenius#44193)

* fix(workflow): generate template-compatible snippet node IDs (langgenius#43838)

* fix(api): return protocol errors for unsupported MCP requests (langgenius#44197)

* fix(api): align hosted moderation provider validation (langgenius#44200)

* feat(api): add inner API for enterprise admin app list and detail (langgenius#44044)

Co-authored-by: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>

* fix(dify-ui): let portal order stack overlays so nested modals block clicks (langgenius#44214)

* fix(nodejs-client): collect workflow text_chunk and apply message_replace in toText (langgenius#44177)

* fix(rag): preserve newlines in recursive character fallback (langgenius#44179)

* refactor(web): remove unnecessary type assertions with a migration-only tsslint rule (langgenius#44219)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* refactor: remove redundant TypeScript type aliases (langgenius#44225)

* refactor(web): replace straightforward explicit any types (langgenius#44228)

* refactor(dify-ui): give AlertDialog a header part and design defaults (langgenius#44223)

Co-authored-by: Claude <noreply@anthropic.com>

* refactor(web): remove unnecessary use prefixes (langgenius#44231)

* fix(web): clear Storybook and file preview lint suppressions (langgenius#44233)

* refactor(web): replace explicit any in test fixtures and mocks (langgenius#44235)

* refactor(dify-ui): compose dialogs from the Design Kit anatomy (langgenius#44221)

* refactor(web): exercise real frontend behavior in tests (langgenius#44243)

* chore(web): prefer vinext for frontend development (langgenius#44246)

* chore(contracts): upgrade @hey-api/openapi-ts to 0.99.0 (langgenius#44247)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* refactor(dify-ui): scroll dialog bodies and give AlertDialog a body (langgenius#44248)

Signed-off-by: yyh <yuanyouhuilyz@gmail.com>
Co-authored-by: Stephen Zhou <hi@hyoban.cc>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(web): align app and agent export feedback (langgenius#44251)

* refactor(web): migrate Notion page preview to Console Query (langgenius#44252)

* test(web): include untested sources in coverage (langgenius#44254)

* test(web): replace low-value suites with behavioral coverage (langgenius#44260)

* fix(api): preserve published triggers on draft sync (langgenius#44068)

Co-authored-by: mac <mac@macdeMacBook-Pro.local>

* fix: don't stringify list values for union-typed MCP tool parameters (langgenius#44182)

Co-authored-by: Stream <Stream_2@qq.com>

* fix(cli): observe SSE read failures while consumers process events (langgenius#43943)

Co-authored-by: huyengiang101086-spec <270684046+huyengiang101086-spec@users.noreply.github.com>

* fix(skills): preserve PPTX presentation slide order (langgenius#43893)

Co-authored-by: LimbC-C <329404569+LimbC-C@users.noreply.github.com>

* fix(dify): retry failed archive deletion instead of reporting success (langgenius#44061)

Co-authored-by: Stream <Stream_2@qq.com>

* refactor(api): enable strict typing for tasks unit tests (langgenius#44255)

* refactor(api): enable strict typing for easy UI app config manager tests (langgenius#44244)

* test(web): consolidate suites around real feature behavior (langgenius#44274)

* fix(web): separate app dialog group and control labels (langgenius#44261)

Co-authored-by: Stephen Zhou <38493346+hyoban@users.noreply.github.com>

* fix(ops): bind tracing service accounts to the app workspace (langgenius#44208)

* refactor(api): enable strict typing for libs unit tests (langgenius#44276)

* refactor(ui): clarify dialog header close button anatomy (langgenius#44283)

* fix(plugins): align provider overlays and background update feedback (langgenius#44284)

* fix(web): merge parallel tool results into their own agent thoughts (langgenius#43843)

Co-authored-by: Stream <Stream_2@qq.com>

* test(web): exercise real workflow canvas controls and note actions (langgenius#44287)

* test(web): cover node context menu clicks and drop hooks-store facade mocks (langgenius#44288)

* fix(web): label the Notion page search field (langgenius#44290)

* ci: enable Ruff B903 (langgenius#44117)

Co-authored-by: Codex <codex@openai.com>

* refactor(web): migrate Mermaid diagrams to Pele (langgenius#44293)

* fix(tests): satisfy Ruff B903 for hit-test fake (langgenius#44299)

Co-authored-by: mac <mac@macdeMacBook-Pro.local>

* refactor(api): enable strict typing for configs unit tests (langgenius#44294)

Co-authored-by: Asuka Minato <i@asukaminato.eu.org>

* refactor(api): bring vector store provider sources under type checking (langgenius#44237)

Co-authored-by: Asuka Minato <i@asukaminato.eu.org>

* ci: enable Ruff PT011 (langgenius#44122)

Co-authored-by: Codex <codex@openai.com>

* ci: enable Ruff E402 (langgenius#44123)

Co-authored-by: Codex <codex@openai.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>

* refactor: migrate Dataset to TypeBase (langgenius#40817)

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Codex <codex@openai.com>

* ci: enable Ruff F841 (langgenius#44115)

Co-authored-by: Codex <codex@openai.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>

* fix: honor RTF Unicode fallback lengths in skill attachments (langgenius#43789)

Co-authored-by: LimbC-C <329404569+LimbC-C@users.noreply.github.com>

* chore(deps): bump patch and minor pnpm catalog dependencies (langgenius#44319)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* chore(deps): drop unused postcss-selector-parser overrides (langgenius#43292)

* fix: preserve DOCX paragraph text in skill attachments (langgenius#43718)

Co-authored-by: LimbC-C <329404569+LimbC-C@users.noreply.github.com>

* feat(cli): let agents build Dify apps with difyctl and an embedded skill (langgenius#43819)

* refactor(api): enable strict typing for easy UI dataset and prompt template tests (langgenius#44320)

* fix(api): require a Tencent vector database name and type-check the provider (langgenius#44325)

* fix(web): open command menu instantly with a lighter backdrop (langgenius#44330)

* fix(cli): serialize token file updates (langgenius#44329)

Co-authored-by: mac <mac@macdeMacBook-Pro.local>

* fix(web): parse destructured and multi-line main signatures in Code node (langgenius#44046)

Co-authored-by: Stream <Stream_2@qq.com>

* refactor(web): simplify Mermaid preview layout and interactions (langgenius#44335)

* fix(web): stabilize Logs loading and conversation dialogs (langgenius#44338)

* fix(web): improve app access point accessibility (langgenius#44220)

Co-authored-by: lyzno1 <92089059+lyzno1@users.noreply.github.com>

* fix(vdb): restore TiDB on Qdrant full-text query filtering (langgenius#44339)

* fix(web): remove redundant plugin permission success toast (langgenius#44342)

* fix(web): handle default model form submission feedback (langgenius#44345)

* fix(web): save the shown timezone on new schedule trigger nodes (langgenius#43532)

* test(web): exercise variable assignment with real workflow stores (langgenius#44349)

* fix(api): initialize default LLMs during onboarding (langgenius#44350)

* fix: replace str(e) with generic messages in error responses (langgenius#43049)

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>

* ci: enable Ruff B904 (langgenius#44121)

Co-authored-by: Codex <codex@openai.com>
Co-authored-by: hjlarry <hjlarry@163.com>

* refactor(api): enable strict typing for tool encryption tests (langgenius#44348)

* refactor(api): enable strict typing for data source auth tests (langgenius#44347)

* refactor(workflow): adopt Graphon 0.8 execution orchestration (langgenius#40277)

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>

* test(web): verify canvas updates and debounced variable edits (langgenius#44361)

* refactor(api): enable strict typing for file fetcher, common controller and app factory tests (langgenius#44379)

* refactor(api): enable strict typing for unstructured extractor tests (langgenius#44380)

* fix(vdb): balance multi-keyword Qdrant results (langgenius#44352)

Co-authored-by: mac <mac@macdeMacBook-Pro.local>

* fix(cli): accept BOM-prefixed JSON input (langgenius#44386)

Co-authored-by: mac <mac@macdeMacBook-Pro.local>

* chore(deps): bump aiohttp from 3.14.3 to 3.14.4 in /api (langgenius#44387)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Yunlu Wen <yunlu.wen@dify.ai>

* refactor(api): enable strict typing for remaining libs unit tests (langgenius#44388)

* refactor(api): enable strict typing for storage unit tests (langgenius#44389)

* feat: add reusable network access group APIs (langgenius#41025)

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: CodingOnStar <hanxujiang@dify.com>
Co-authored-by: hjlarry <hjlarry@163.com>
Co-authored-by: yyh <92089059+lyzno1@users.noreply.github.com>
Co-authored-by: yyh <yuanyouhuilyz@gmail.com>

* feat: confirm clearing default models and refresh values on open (langgenius#44354)

Co-authored-by: yyh <yuanyouhuilyz@gmail.com>

* fix(cli): change local YAML files only through a locked update (langgenius#44375)

* chore(i18n): sync translations with en-US (langgenius#44397)

Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>

* fix: retain model selector focus after clearing defaults (langgenius#44399)

* fix(dataset): batch segment and document cleanup with retries (langgenius#38519)

Co-authored-by: hjlarry <hjlarry@163.com>

* test(web): exercise workflow actions against real stores (langgenius#44381)

* fix(web): upgrade TanStack Hotkeys and isolate search commands (langgenius#44401)

* fix(web): parse Python Code node parameters with commas (langgenius#44337)

Co-authored-by: mac <mac@macdeMacBook-Pro.local>

* refactor(tooling): centralize lint and format maintenance (langgenius#44404)

* refactor(web): unify app metadata forms and dialog ownership (langgenius#44405)

* refactor(tooling): migrate remaining sources to TypeScript (langgenius#44410)

* fix(web): improve app deploy accessibility (langgenius#44378)

Co-authored-by: yyh <yuanyouhuilyz@gmail.com>

* fix(e2e): seed workspace defaults and refresh post-merge filters (langgenius#44412)

* chore: add frontend code owner backups and refresh coverage (langgenius#44413)

* fix(agent): finalize run as failed when run_started cannot be appended (langgenius#43959)

* refactor(web): use generated oRPC query keys (langgenius#44415)

* fix: keep archive deletion loading until completion (langgenius#44203)

* refactor(web): remove redundant annotation list success toasts (langgenius#44031)

* fix(web): apply log annotations to the displayed branch (langgenius#43238)

* feat: optimize access token ui (langgenius#44422)

* fix(agent): use Redis 6.0-compatible event replay (langgenius#44420)

* test(api): isolate Celery initialization app state (langgenius#44433)

* refactor(web): migrate console API helpers to generated contracts (langgenius#44430)

* refactor(web): query installation bootstrap status (langgenius#44382)

* fix(workflow): track human input forms by execution identity (langgenius#42819)

* refactor(api): enable strict typing for rate limit test fixtures (langgenius#44391)

* refactor(api): enable strict typing for core helper tests (langgenius#44390)

* chore(web): guard handwritten requests with native lint rules (langgenius#44436)

* fix(nodejs-client): reject streamed API errors in toText (langgenius#44199)

Co-authored-by: Stream <Stream_2@qq.com>

* fix(cli): load PowerShell module in rate-limit test (langgenius#44439)

* fix(api): write built-in document metadata in a single format (langgenius#44218)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Stream <Stream_2@qq.com>

* feat(workflow): execute workflow tools as nested containers (langgenius#42820)

Co-authored-by: WH-2099 <wh2099@pm.me>

* feat(workflow): expose authorized nested tool traces (langgenius#42821)

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>

* feat(workflow): add nested tool trace drilldown (langgenius#42822)

* fix(tracing): exclude called tool internals from external exports (langgenius#42823)

* chore(web): replace deprecated third-party APIs (langgenius#44466)

* fix(plugin): pin daemon dispatches to package identifiers (langgenius#44396)

* fix(web): enforce schema depth limits through nested arrays (langgenius#44295)

* feat: network access group add rbac check (langgenius#44464)

* fix(api): validate builtin tool credentials outside the create lock (langgenius#44371)

Co-authored-by: Stream <Stream_2@qq.com>

* fix(trigger): stop leaking internal exception text from webhook 500 responses (langgenius#44395)

Co-authored-by: Stream <Stream_2@qq.com>

* fix(web): preserve Studio list filters across navigation (langgenius#44429)

Co-authored-by: Stream <Stream_2@qq.com>

* test(web): wait for goto-anything focus (langgenius#44454)

Co-authored-by: mac <mac@macdeMacBook-Pro.local>

* test(web): exercise workflow configuration and controls with real stores (langgenius#44471)

* test(web): exercise workflow controls and access points through real owners (langgenius#44423)

* fix(agent): attribute nested tool activity to its source (langgenius#42824)

* fix(cli): respect cancellation during device authorization retries (langgenius#44315)

Co-authored-by: huyengiang101086-spec <270684046+huyengiang101086-spec@users.noreply.github.com>

* feat(cli): send a folder as one part per file (langgenius#44356)

Co-authored-by: yunlu.wen <yunlu.wen@dify.ai>

* fix(web): handle autofilled Web App login credentials (langgenius#44474)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(api): handle non-object JSON auth error bodies (langgenius#44470)

* refactor: migrate agent models to TypeBase (langgenius#40816)

Co-authored-by: Codex <codex@openai.com>

* refactor(api): type-check vector store provider unit tests (langgenius#44458)

* refactor(api): enable strict typing for utils unit tests (langgenius#44331)

* test(web): replace node action mocks with real canvas behavior (langgenius#44495)

* fix(web): enforce focus style ownership and simplify invite recipients (langgenius#44504)

* fix: improve customization settings accessibility (langgenius#44492)

* fix(web): label workspace default model selectors (langgenius#44500)

* refactor(ui): split toast stories and align app toaster naming (langgenius#44510)

* chore(weaviate): bump bundled Weaviate to 1.39.13 (CVE-2026-111943) (langgenius#44508)

* chore: bump Node.js runtime to 24.22.1 (langgenius#44511)

* feat(tracing): export Agent app and Workflow Agent execution trees (langgenius#44144)

Co-authored-by: yyh <yuanyouhuilyz@gmail.com>

* feat(tracing): configure Agent tracing and link workflow runs to traces (langgenius#44186)

Co-authored-by: Yansong Zhang <916125788@qq.com>

* fix(web): make document metadata panel scrollable (langgenius#43621)

* test: split Build exit scenarios to reduce timeout flakiness (langgenius#44519)

* chore(web): improve Billing settings accessibility (langgenius#44487)

Co-authored-by: yyh <92089059+lyzno1@users.noreply.github.com>

* fix(deps): upgrade certifi and pillow (langgenius#44524)

* refactor(api): detach console app trigger management (langgenius#44457)

* refactor(web): highlight markdown code blocks with @pierre/highlights (langgenius#44522)

* fix(api): enforce cloud app quotas on DSL imports (langgenius#44525)

* perf(api): skip saved prompts when loading chat history (langgenius#44521)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* chore: improve Members settings accessibility (langgenius#44484)

* fix(web): preserve inline agent layout and clarify configure ownership (langgenius#44534)

Co-authored-by: hjlarry <hjlarry@163.com>

* fix: improve archived logs accessibility (langgenius#44535)

Co-authored-by: yyh <yuanyouhuilyz@gmail.com>

* fix: improve Preferences accessibility (langgenius#44539)

* fix: improve IP Policies accessibility (langgenius#44548)

* fix: preserve knowledge sidebar when adding files (langgenius#44552)

* fix: improve sort control accessibility and type safety (langgenius#44564)

* chore: type-check with tsrs (langgenius#44562)

* fix(api): stop leaking Redis result connections from fire-and-forget groups (langgenius#44551)

Co-authored-by: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* fix(api): upgrade NLTK to 3.10.4 (langgenius#44581)

* feat(agent): edit config prompts through the sandbox CLI (langgenius#44561)

* chore: port Document to TypeBase (langgenius#36084)

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Codex <codex@openai.com>

* feat: KnowledgeFS and New Knowledge (langgenius#44165)

Co-authored-by: Jyong <76649700+JohnJyong@users.noreply.github.com>
Co-authored-by: hjlarry <hjlarry@163.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: zhaohao1004 <zhaohao1004@gmail.com>
Co-authored-by: yyh <yuanyouhuilyz@gmail.com>
Co-authored-by: FFXN <lizy@dify.ai>

* refactor: migrate CustomizedSnippet to TypeBase (langgenius#40818)

Co-authored-by: Codex <codex@openai.com>

* fix(php-sdk): preserve custom API base URL paths (langgenius#44569)

* fix(api): combine UTF-16 surrogate pairs in RTF extraction (langgenius#44565)

Co-authored-by: jayachandra2003 <jayachandravennam.jc@email.com>

* chore(i18n): sync translations with en-US (langgenius#44566)

Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>

* refactor(ui): align floating positioning with Base UI (langgenius#44588)

* chore(i18n): sync translations with en-US (langgenius#44595)

Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>

* chore(deps): bump certifi from 2026.4.22 to 2026.10.19 in /dify-agent (langgenius#44462)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* fix(web): avoid redundant document enable success toast (langgenius#44594)

* test(web): replace workflow owner doubles with real canvas behavior (langgenius#44590)

* chore(release): prepare version 1.18.0 (langgenius#44546)

* Exclude generated Vercel deployment cache from source checks

---------

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: yyh <yuanyouhuilyz@gmail.com>
Co-authored-by: Yunlu Wen <yunlu.wen@dify.ai>
Co-authored-by: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: gongfpp <1360187968@qq.com>
Co-authored-by: yyh <92089059+lyzno1@users.noreply.github.com>
Co-authored-by: Asuka Minato <i@asukaminato.eu.org>
Co-authored-by: Codex <codex@openai.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: D41910 <158550716+D41910@users.noreply.github.com>
Co-authored-by: D41910 <d41910@users.noreply.github.com>
Co-authored-by: leilei3167 <imleilei123@gmail.com>
Co-authored-by: 非法操作 <hjlarry@163.com>
Co-authored-by: Shreyansh Jain <shreyanshjain646@gmail.com>
Co-authored-by: crazywoola <427733928@qq.com>
Co-authored-by: 呆萌闷油瓶 <253605712@qq.com>
Co-authored-by: Power <26699525@qq.com>
Co-authored-by: Eddy ZHANG <eddy.zhang24@gmail.com>
Co-authored-by: Lokesh Chauhan <lokesh0186@gmail.com>
Co-authored-by: Xiyuan Chen <52963600+GareArc@users.noreply.github.com>
Co-authored-by: 盐粒 Yanli <yanli@dify.ai>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Azusa010 <m3171470760@gmail.com>
Co-authored-by: mika <spacexstarship01@outlook.com>
Co-authored-by: mac <mac@macdeMacBook-Pro.local>
Co-authored-by: Yueliup <127648758+Yueliup@users.noreply.github.com>
Co-authored-by: Stephen Zhou <hi@hyoban.cc>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Matt Van Horn <mvanhorn@users.noreply.github.com>
Co-authored-by: Matt Van Horn <455140+mvanhorn@users.noreply.github.com>
Co-authored-by: Stream <Stream_2@qq.com>
Co-authored-by: 林玮 (Jade Lin) <linw1995@icloud.com>
Co-authored-by: xjh <87483213+xiajiahang@users.noreply.github.com>
Co-authored-by: Temitope Kadri <147322025+TemitopeKadri@users.noreply.github.com>
Co-authored-by: lorenzozane <w2898683706@gmail.com>
Co-authored-by: Yann Roberto <165009858+shoyann@users.noreply.github.com>
Co-authored-by: David Allada <davidanilallada@gmail.com>
Co-authored-by: huyengiang101086-spec <huyengiang101086@gmail.com>
Co-authored-by: huyengiang101086-spec <270684046+huyengiang101086-spec@users.noreply.github.com>
Co-authored-by: LimbC-C <limbcc2333@gmail.com>
Co-authored-by: LimbC-C <329404569+LimbC-C@users.noreply.github.com>
Co-authored-by: CRYPTONIKAV <29835619+CRYPTONIKAV@users.noreply.github.com>
Co-authored-by: Stephen Zhou <38493346+hyoban@users.noreply.github.com>
Co-authored-by: Liu Ziming <liuziming.lzm@alibaba-inc.com>
Co-authored-by: Metehan Biçer <metehanbicer006@gmail.com>
Co-authored-by: mechmaster20 <srujan.gowni@iitgn.ac.in>
Co-authored-by: Denis Ermakov <ide404@gmail.com>
Co-authored-by: Wu Tianwei <30284043+WTW0313@users.noreply.github.com>
Co-authored-by: Juhyuk choi <246447183+JHC56@users.noreply.github.com>
Co-authored-by: -LAN- <laipz8200@outlook.com>
Co-authored-by: zyssyz123 <916125788@qq.com>
Co-authored-by: CodingOnStar <hanxujiang@dify.com>
Co-authored-by: yyh <yuanyouhuilyz@gmail.com>
Co-authored-by: Joel <iamjoel007@gmail.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
Co-authored-by: Alexey Shabalin <a.shabalin@gmail.com>
Co-authored-by: Codada <108800975+Redestiny@users.noreply.github.com>
Co-authored-by: wangxiaolei <fatelei@gmail.com>
Co-authored-by: 青阳寻雪 <142769065+lulalalual@users.noreply.github.com>
Co-authored-by: Tianyu Cai <cai18633758993@gmail.com>
Co-authored-by: WH-2099 <wh2099@pm.me>
Co-authored-by: Miyar <14232275+gakugaku@users.noreply.github.com>
Co-authored-by: xhdnoah <40939515+xhdnoah@users.noreply.github.com>
Co-authored-by: Duda Nogueira <dudanogueira@gmail.com>
Co-authored-by: zhsama <torvalds@linux.do>
Co-authored-by: Mesrop Harutyunyan <104313591+mesrop2008@users.noreply.github.com>
Co-authored-by: Takuya <83127305+Takuya-ops@users.noreply.github.com>
Co-authored-by: Jyong <76649700+JohnJyong@users.noreply.github.com>
Co-authored-by: zhaohao1004 <zhaohao1004@gmail.com>
Co-authored-by: FFXN <lizy@dify.ai>
Co-authored-by: Winoren <158550716+Winoren@users.noreply.github.com>
Co-authored-by: Jaya Chandra Vennam <149901816+jayachandra2003@users.noreply.github.com>
Co-authored-by: jayachandra2003 <jayachandravennam.jc@email.com>
Co-authored-by: ZengLiangliang <zll21377105@126.com>
Co-authored-by: Alec Whitters <alecwhitters@Alecs-MacBook-Pro-26.local>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

e2e End-to-end tests and E2E test infrastructure. size:XXL This PR changes 1000+ lines, ignoring generated files. web This relates to changes on the web.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants