Skip to content

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

Merged
lyzno1 merged 11 commits into
mainfrom
claude/dialog-body-scroll
Oct 17, 2026
Merged

lyzno1 merged 11 commits into
mainfrom
claude/dialog-body-scroll

Conversation

@lyzno1

@lyzno1 lyzno1 commented Oct 17, 2026

Copy link
Copy Markdown
Member

Summary

Follow-up to #44221. The branch also carries fix(web): align app operation dialog ownership and sessions, committed separately. The dialog parts keep the Design Kit spacing, but the surface changes how it scrolls, DialogPopup becomes a bare element, AlertDialog gets a body part, and the lint contract tightens around what call sites may do.

Scroll model: the body scrolls, not the surface

DialogContent was the scroll container, so DialogHeader and DialogFooter were sticky with an opaque background and a z-index to stay above body content, EncryptedFooter in web added a second sticky layer, and DialogCloseButton only stayed put because the sticky header happened to be its positioned ancestor. The scrollbar ran through the header and footer, and six call sites already hand-rolled an inside-scroll layout with flex flex-col overflow-hidden plus a ScrollArea.

Now DialogContent and AlertDialogContent are a flex column, DialogBody is the scroll region (relative min-h-0 flex-1 overflow-y-auto), and the header and footer are plain shrink-0 rows: no sticky, no background, no z-index. The surface keeps overflow-y-auto as a fallback, so a custom surface that puts content outside DialogBody still scrolls as before. DialogBody is relative because Base UI's hidden form inputs (Switch, Select) are absolutely positioned; without a positioned body they escape its clip and add scrollable overflow to the surface. It clips horizontally (overflow-x-hidden): the body scrolls vertically only, and wide content such as a code editor must fit the gutter.

The cap moves from max-h-[80dvh] to max-h-[calc(100dvh-2rem)], the same viewport inset the width already used and the value AlertDialogContent had; twelve call sites restated it and no longer do.

A wrapper between the surface and its parts breaks the flex chain, so a <form> or <Form> around DialogBody and DialogFooter gets className="contents".

DialogPopup is bare

Of the eleven DialogPopup sites, six stripped its radius, border, background and shadow (full-screen shells, media previews) and the other five overrode the radius. The chrome now lives only on DialogContent; DialogPopup carries relative and the open/close animation. Side panels and mobile sheets state their surface classes, full-screen shells and previews drop their ! overrides.

Nested dialogs step back

Base UI sets --nested-dialogs and data-nested-dialog-open on a surface while a dialog opens on top of it, and skips the nested backdrop by default. DialogContent and AlertDialogContent now scale back by 5% per level and dim through an after overlay while nested, so a confirm opened from a dialog reads as a layer rather than a second dialog of the same size. Sites that pass backdropProps={{ forceRender: true }} keep their backdrop; whether those 49 sites still need it is a follow-up.

AlertDialog gets a body

Seven type-to-confirm dialogs put their Field inside AlertDialogHeader, two export confirms hand-wrote a px-6 block, and three error paragraphs sat between header and footer, because AlertDialog had no body part. AlertDialogBody is the gutter only (px-6) and does not scroll: the Design Kit Confirm component has no body section, so the header's pb-4 and the footer's p-6 give the vertical rhythm (16px from the description to the field, 24px from the field to the actions), and a confirm that outgrows the viewport scrolls as a whole. A scrolling body with no vertical padding would clip the focus ring of the field at its edge.

AlertDialogFooter drops the dead self-stretch and aligns items-center like DialogFooter. AlertDialogContent shares the surface constant with DialogContent (shadow-xl; it was shadow-lg) and the title constant, in internal/overlay.ts, instead of "change both together" comments.

Confirm tone

AlertDialogConfirmButton defaults to the destructive tone, which carried over from the legacy Confirm component's type="warning" default. Non-destructive confirmations render in the default tone now: publish pipeline, update MCP tools, the four DSL version-mismatch "import anyway" dialogs, and the skill version restore (the workflow and agent restores already used it). Reset-to-saved-config and overwrite-generated-prompt discard work and stay destructive. The component default is unchanged.

Other call-site changes

  • DialogHeader reserves the close-button gutter only when a DialogCloseButton is inside it; headers without one no longer leave 32px empty on the end side.
  • max-w-none and max-h-none are denied on the surface: they disabled the viewport guard. w-full max-w-X becomes w-X.
  • Footer buttons in stacked footers drop w-full!; items-stretch already stretches them. w-23.75! becomes min-w-24.
  • member-details-modal had two sibling bodies around a divider; it is one body with the divider inside, so only one region scrolls. The app DSL import dialog renders its tab panels as DialogBody, like the dataset one.
  • EncryptedFooter is removed; EncryptedBottom renders after DialogFooter as a plain column child.
  • The delete-account dialog composes the parts instead of p-6 and a padded title; member-details-modal drops overflow-visible (its only popover is portaled); schema-dialog uses DialogBody for its hand-rolled scroll region; install-from-marketplace drops its layout overrides but keeps its own header so initial focus stays on Cancel.
  • Stale shadcn/no-restyle suppressions pruned for delete-account and install-from-marketplace.

Lint contract

  • DialogContent / AlertDialogContent: sizing only (w-*, min-w-*, max-w-*, h-*, min-h-*, max-h-*, overflow-hidden); max-w-none, max-h-none, w-screen, h-screen denied.
  • DialogBody / AlertDialogBody: layout and gap; flex-1, overflow-* denied.
  • DialogPopup: anything except the centering classes.

Stories and docs

The Dialog and AlertDialog stories are rebuilt around the parts (see the story list in the stories commit). docs/overlays.md states the surface, body and popup contract.

Left for follow-ups

  • params-config, from-market-place (downgrade branch), readme-panel title and regeneration-modal keep their suppressions: their content has an internal header that does not map onto the parts.
  • hitl-input-block/input-field.tsx renders its own panel chrome inside the dialog surface (double chrome), untouched here.
  • Pure form dialogs still keep field state in React; Base UI Form and Field can own it (uncontrolled), to review separately.

@github-actions github-actions Bot added size:XXL This PR changes 1000+ lines, ignoring generated files. web This relates to changes on the web. and removed size:XXL This PR changes 1000+ lines, ignoring generated files. labels Oct 17, 2026
@ghfind-review ghfind-review Bot added the review: top ghfind author score; see https://ghfind.com label Oct 17, 2026
@codecov

codecov Bot commented Oct 17, 2026 •

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 91.04478% with 48 lines in your changes missing coverage. Please review.
✅ Project coverage is 89.25%. Comparing base (17cff2d) to head (89cfd8f).

Files with missing lines Patch % Lines
web/app/components/app-sidebar/app-info/index.tsx 50.00% 16 Missing ⚠️
...nents/app-sidebar/app-info/app-metadata-dialog.tsx 85.84% 15 Missing ⚠️
...ponents/app-sidebar/app-info/export-app-dialog.tsx 92.59% 4 Missing ⚠️
packages/dify-ui/src/alert-dialog/index.tsx 25.00% 3 Missing ⚠️
...eb/app/components/app-sidebar/app-info/metadata.ts 50.00% 2 Missing ⚠️
web/app/components/app/overview/settings/index.tsx 97.05% 2 Missing ⚠️
...-setting/model-provider-page/model-modal/index.tsx 88.88% 2 Missing ⚠️
packages/dify-ui/src/dialog/index.tsx 66.66% 1 Missing ⚠️
...pp/account/(commonLayout)/delete-account/index.tsx 0.00% 1 Missing ⚠️
...ts/plugins/plugin-auth/authorize/api-key-modal.tsx 83.33% 1 Missing ⚠️
... and 1 more
Additional details and impacted files
@@            Coverage Diff             @@
##             main   #44248      +/-   ##
==========================================
- Coverage   89.25%   89.25%   -0.01%     
==========================================
  Files        5325     5328       +3     
  Lines      327478   327594     +116     
  Branches    64418    64476      +58     
==========================================
+ Hits       292289   292378      +89     
- Misses      29994    30021      +27     
  Partials     5195     5195              
Flag Coverage Δ
cli 90.56% <ø> (ø)
dify-ui 91.67% <60.00%> (-0.09%) ⬇️
web 90.01% <91.63%> (-0.02%) ⬇️

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.

@github-actions

github-actions Bot commented Oct 17, 2026 •

Copy link
Copy Markdown
Contributor

Vinext bundle analysis

JS gzip: 🟢 −2.31 KiB (−0.02%) · CSS gzip: 🟠 +79 B (+0.02%)

All client output Base gzip → Merge gzip Gzip change
JS 9921.20 KiB → 9918.89 KiB 🟢 −2.31 KiB (−0.02%)
CSS 331.97 KiB → 332.05 KiB 🟠 +79 B (+0.02%)

Entry changes: 🟠 103 increased · 🟢 70 decreased (gzip).

Largest entry changes

Top 5 by absolute gzip delta. Static dependencies overlap; do not sum entries.

Source entry Base gzip → Merge gzip Gzip change
app/components/app-sidebar/app-detail-sidebar.tsx 477.55 KiB → 672.70 KiB 🟠 +195.14 KiB (+40.86%)
app/components/workflow/collaboration/core/crdt-runtime.ts 228.82 KiB → 241.84 KiB 🟠 +13.01 KiB (+5.69%)
app/components/workflow/nodes/agent-v2/panel.tsx 1644.77 KiB → 1643.89 KiB 🟢 −898 B (−0.05%)
app/components/integrations/modal.tsx 1262.49 KiB → 1261.64 KiB 🟢 −863 B (−0.07%)
app/components/explore/try-app/index.tsx 1330.60 KiB → 1329.76 KiB 🟢 −857 B (−0.06%)
Top 20 of 173 changed entries (full paths and raw sizes)
Source entry Base gzip → Merge gzip Gzip change Raw change
dynamic-entry: app/components/app-sidebar/app-detail-sidebar.tsx 477.55 KiB → 672.70 KiB 🟠 +195.14 KiB (+40.86%) 🟠 +641.12 KiB (+42.43%)
dynamic-entry: app/components/workflow/collaboration/core/crdt-runtime.ts 228.82 KiB → 241.84 KiB 🟠 +13.01 KiB (+5.69%) 🟠 +46.24 KiB (+5.21%)
dynamic-entry: app/components/workflow/nodes/agent-v2/panel.tsx 1644.77 KiB → 1643.89 KiB 🟢 −898 B (−0.05%) 🟢 −980 B (−0.02%)
dynamic-entry: app/components/integrations/modal.tsx 1262.49 KiB → 1261.64 KiB 🟢 −863 B (−0.07%) 🟢 −647 B (−0.02%)
dynamic-entry: app/components/explore/try-app/index.tsx 1330.60 KiB → 1329.76 KiB 🟢 −857 B (−0.06%) 🟢 −563 B (−0.01%)
dynamic-entry: app/components/workflow/nodes/agent/panel.tsx 1503.22 KiB → 1502.38 KiB 🟢 −856 B (−0.06%) 🟢 −911 B (−0.02%)
dynamic-entry: app/components/app/configuration/index.tsx 1376.73 KiB → 1375.89 KiB 🟢 −854 B (−0.06%) 🟢 −519 B (−0.01%)
dynamic-entry: app/components/workflow-app/index.tsx 1456.49 KiB → 1455.68 KiB 🟢 −832 B (−0.06%) 🟢 −1.04 KiB (−0.02%)
dynamic-entry: app/components/integrations/index.tsx 1261.25 KiB → 1260.44 KiB 🟢 −828 B (−0.06%) 🟢 −569 B (−0.01%)
dynamic-entry: app/components/workflow/nodes/trigger-plugin/panel.tsx 1449.79 KiB → 1448.99 KiB 🟢 −823 B (−0.06%) 🟢 −855 B (−0.02%)
dynamic-entry: app/components/workflow/nodes/tool/panel.tsx 1451.47 KiB → 1450.67 KiB 🟢 −822 B (−0.06%) 🟢 −855 B (−0.02%)
dynamic-entry: app/(commonLayout)/datasets/(datasetDetailLayout)/[datasetId]/pipeline/page.tsx 1406.39 KiB → 1405.59 KiB 🟢 −820 B (−0.06%) 🟢 −879 B (−0.02%)
dynamic-entry: app/components/explore/try-app/preview/agent-app-preview.tsx 1222.03 KiB → 1221.24 KiB 🟢 −804 B (−0.06%) 🟢 −481 B (−0.01%)
dynamic-entry: app/components/workflow/nodes/start/panel.tsx 1362.70 KiB → 1361.92 KiB 🟢 −799 B (−0.06%) 🟢 −777 B (−0.02%)
dynamic-entry: app/components/snippets/index.tsx 1368.54 KiB → 1367.76 KiB 🟢 −795 B (−0.06%) 🟢 −847 B (−0.02%)
dynamic-entry: app/components/workflow/features.tsx 1373.56 KiB → 1372.78 KiB 🟢 −793 B (−0.06%) 🟢 −755 B (−0.02%)
dynamic-entry: app/components/workflow/nodes/http/panel.tsx 1366.03 KiB → 1365.26 KiB 🟢 −785 B (−0.06%) 🟢 −710 B (−0.02%)
dynamic-entry: app/components/workflow/panel/record.tsx 1355.22 KiB → 1354.46 KiB 🟢 −779 B (−0.06%) 🟢 −742 B (−0.02%)
dynamic-entry: app/components/workflow/panel/chat-variable-panel/index.tsx 1359.71 KiB → 1358.95 KiB 🟢 −778 B (−0.06%) 🟢 −743 B (−0.02%)
dynamic-entry: app/components/workflow/panel/debug-and-preview/index.tsx 1408.77 KiB → 1408.01 KiB 🟢 −778 B (−0.05%) 🟢 −732 B (−0.02%)
🆕 / ➖ 3 added or removed entries

Showing 3 of 3. Entry-boundary changes are not size deltas from zero.

Source entry Change Static dependencies (gzip)
dynamic-entry: app/components/app/export-confirm-modal.tsx 🆕 New entry 120.75 KiB
dynamic-entry: app/components/app/switch-app-modal/index.tsx ➖ Removed entry 437.45 KiB
dynamic-entry: app/components/workflow/update-dsl-modal.tsx ➖ Removed entry 439.88 KiB
📦 0 package attribution changes (uncompressed modules)

Showing 0 of 0, ordered by absolute module-size delta.

Package Base Merge Δ
No package attribution changes — — —
Measurement details and build revisions

Base: 17cff2d80a4b31870c3c4af6375cc3ed44144a7a · Merge: 4b49d357b6c12fbdaed2f6d45cb1b23458db34b2
Vinext: 1.1.0 → 1.1.0; Rolldown: 1.2.12 → 1.2.12

Raw JS change: 🟢 −4.07 KiB (−0.01%) · Raw CSS change: 🟠 +52 B (+<0.01%)

🟠 Increase · 🟢 Decrease · ⚪ Unchanged. Colors indicate direction, not a performance budget verdict. Percentages use the base size.

Entries follow only static edges in the official Rolldown chunk graph, deduplicating shared files. Dynamic entries are measured when loaded; they are not page first-load metrics. Entry totals overlap and must not be summed.
Package attribution sums module sizes reported by Rolldown, not compressed emitted bytes. Gzip totals are measured per emitted file. This is Vinext output, not Next.js/Turbopack output.
Report only: increases do not fail this check. Missing or incompatible analysis data does.

Download base/merge snapshots and official Rolldown analysis reports.

Comparison: event base SHA vs the tested merge commit at GITHUB_SHA (PR or merge queue).

DialogContent and AlertDialogContent become a flex column capped at the
viewport inset; DialogBody and the new AlertDialogBody are the scroll
region, so the header and footer drop sticky, background and z-index.
DialogPopup is the bare dialog element; the modal surface and title
classes move to internal/overlay.ts for both dialogs. The lint contract
allows only sizing on the surface and denies max-w-none.
Forms around DialogBody and DialogFooter keep the flex chain with
contents; call sites drop the restated viewport cap, max-w-none, flex
column and overflow classes, the EncryptedFooter wrapper and stacked
footer button widths. Type-to-confirm fields and export tables move
from AlertDialogHeader into AlertDialogBody. Non-destructive
confirmations use the default button tone. DialogPopup sites drop the
chrome strip-offs and side panels state their own surface.
…parts

Each story is one scenario composed from the anatomy: form submit with
initial focus, body scrolling, viewport scrolling, a docked side panel,
detached triggers, unsaved-changes veto, type-to-confirm, pending
confirm. Play functions drive one action at a time and assert on roles
and Base UI state attributes.
@lyzno1
lyzno1 force-pushed the claude/dialog-body-scroll branch from 54c6039 to b0492df Compare October 17, 2026 03:23
@github-actions github-actions Bot added the size:XXL This PR changes 1000+ lines, ignoring generated files. label Oct 17, 2026
@lyzno1
lyzno1 marked this pull request as draft October 17, 2026 03:23
@lyzno1
lyzno1 marked this pull request as ready for review October 17, 2026 04:07
@lyzno1
lyzno1 enabled auto-merge October 17, 2026 04:07
@lyzno1
lyzno1 added this pull request to the merge queue Oct 17, 2026
Merged via the queue into main with commit 1a79410 Oct 17, 2026
51 checks passed
@lyzno1
lyzno1 deleted the claude/dialog-body-scroll branch October 17, 2026 04:13
hyoban added a commit that referenced this pull request Oct 17, 2026
Keep the branch's agent knowledge dialog against main's dialog body scrolling
change (#44248); its content already relies on the new DialogContent layout.
The stricter restyle contract adds two suppressed findings each in three branch
dialogs that predate the dialog anatomy.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
hyoban added a commit that referenced this pull request Oct 21, 2026
#44248 moved the panel radius, border, background and shadow from
DialogPopup to DialogContent. The create page and the golden question
dialogs render DialogPopup directly, so after the main merge they lost
their background and showed the overlay through. Give them the panel
surface explicitly.
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

review: top ghfind author score; see https://ghfind.com 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.

2 participants