27f32ce383
Merge remote-tracking branch 'origin/main' into feat/support-agent-sandbox
2026-03-24 19:30:56 +08:00
d14635625c
feat(web): refactor pricing modal scrolling and accessibility ( #34011 )
...
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2026-03-24 17:18:36 +08:00
499d237b7e
fix: pass all CI quality checks - ESLint, TypeScript, basedpyright, pyrefly, lint-imports
...
Frontend:
- Migrate deprecated imports: modal→dialog, toast→ui/toast, tooltip→tooltip-plus,
portal-to-follow-elem→portal-to-follow-elem-plus, select→ui/select, confirm→alert-dialog
- Replace next/* with @/next/* wrapper modules
- Convert TypeScript enums to const objects (erasable-syntax-only)
- Replace all `any` types with `unknown` or specific types in workflow types
- Fix unused vars, react-hooks-extra, react-refresh/only-export-components
- Extract InteractionMode to separate module, tool-block commands to commands.ts
Backend:
- Fix pyrefly errors: type narrowing, null guards, getattr patterns
- Remove unused TYPE_CHECKING imports in LLM node
- Add ignore_imports entries to .importlinter for dify_graph boundary violations
Made-with: Cursor
2026-03-24 10:54:58 +08:00
fd124e6d32
Merge main HEAD (segment 5) into sandboxed-agent-rebase
...
Resolve 83 conflicts: 10 backend, 62 frontend, 11 config/lock files.
Preserve sandbox/agent/collaboration features while adopting main's
UI refactorings (Dialog/AlertDialog/Popover), model provider updates,
and enterprise features.
Made-with: Cursor
2026-03-23 14:20:06 +08:00
5041d96bb1
Merge commit 'fb41b215' into sandboxed-agent-rebase
...
Made-with: Cursor
# Conflicts:
# .devcontainer/post_create_command.sh
# api/commands.py
# api/core/agent/cot_agent_runner.py
# api/core/agent/fc_agent_runner.py
# api/core/app/apps/workflow_app_runner.py
# api/core/app/entities/queue_entities.py
# api/core/app/entities/task_entities.py
# api/core/workflow/workflow_entry.py
# api/dify_graph/enums.py
# api/dify_graph/graph/graph.py
# api/dify_graph/graph_events/node.py
# api/dify_graph/model_runtime/entities/message_entities.py
# api/dify_graph/node_events/node.py
# api/dify_graph/nodes/agent/agent_node.py
# api/dify_graph/nodes/base/__init__.py
# api/dify_graph/nodes/base/entities.py
# api/dify_graph/nodes/base/node.py
# api/dify_graph/nodes/llm/entities.py
# api/dify_graph/nodes/llm/node.py
# api/dify_graph/nodes/tool/tool_node.py
# api/pyproject.toml
# api/uv.lock
# web/app/components/base/avatar/__tests__/index.spec.tsx
# web/app/components/base/avatar/index.tsx
# web/app/components/base/date-and-time-picker/time-picker/__tests__/index.spec.tsx
# web/app/components/base/file-uploader/file-from-link-or-local/index.tsx
# web/app/components/base/prompt-editor/index.tsx
# web/app/components/datasets/metadata/edit-metadata-batch/modal.tsx
# web/app/components/header/account-dropdown/index.spec.tsx
# web/app/components/share/text-generation/index.tsx
# web/app/components/workflow/block-selector/tool/action-item.tsx
# web/app/components/workflow/block-selector/trigger-plugin/action-item.tsx
# web/app/components/workflow/hooks/use-edges-interactions.ts
# web/app/components/workflow/hooks/use-nodes-interactions.ts
# web/app/components/workflow/index.tsx
# web/app/components/workflow/nodes/_base/components/editor/code-editor/index.tsx
# web/app/components/workflow/nodes/http/components/key-value/key-value-edit/index.tsx
# web/app/components/workflow/nodes/human-input/components/delivery-method/recipient/email-item.tsx
# web/app/components/workflow/nodes/loop/use-interactions.ts
# web/contract/router.ts
# web/env.ts
# web/eslint-suppressions.json
# web/package.json
# web/pnpm-lock.yaml
2026-03-23 10:52:06 +08:00
27ed40225d
refactor(web): update frontend toast call sites to use the new shortcut API ( #33808 )
...
Signed-off-by: yyh <yuanyouhuilyz@gmail.com >
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-03-20 16:02:22 +08:00
89b76d6c33
Merge commit '657eeb65' into sandboxed-agent-rebase
...
Made-with: Cursor
# Conflicts:
# api/core/agent/cot_chat_agent_runner.py
# api/core/agent/fc_agent_runner.py
# api/core/memory/token_buffer_memory.py
# api/core/variables/segments.py
# api/core/workflow/file/file_manager.py
# api/core/workflow/nodes/agent/agent_node.py
# api/core/workflow/nodes/llm/llm_utils.py
# api/core/workflow/nodes/parameter_extractor/parameter_extractor_node.py
# api/core/workflow/workflow_entry.py
# api/factories/variable_factory.py
# api/pyproject.toml
# api/services/variable_truncator.py
# api/uv.lock
# web/app/components/app/app-publisher/index.tsx
# web/app/components/app/overview/settings/index.tsx
# web/app/components/apps/app-card.tsx
# web/app/components/apps/index.tsx
# web/app/components/apps/list.tsx
# web/app/components/base/chat/chat-with-history/header-in-mobile.tsx
# web/app/components/base/features/new-feature-panel/conversation-opener/modal.tsx
# web/app/components/base/features/new-feature-panel/file-upload/setting-content.tsx
# web/app/components/base/features/new-feature-panel/moderation/moderation-setting-modal.tsx
# web/app/components/base/features/new-feature-panel/text-to-speech/param-config-content.tsx
# web/app/components/base/message-log-modal/index.tsx
# web/app/components/base/switch/index.tsx
# web/app/components/base/tab-slider-plain/index.tsx
# web/app/components/explore/try-app/app-info/index.tsx
# web/app/components/plugins/plugin-detail-panel/tool-selector/components/reasoning-config-form.tsx
# web/app/components/workflow/nodes/llm/components/json-schema-config-modal/visual-editor/edit-card/required-switch.tsx
# web/app/components/workflow/nodes/llm/panel.tsx
# web/contract/router.ts
# web/eslint-suppressions.json
# web/i18n/fa-IR/workflow.json
2026-03-19 17:38:56 +08:00
93f9546353
refactor(web): migrate core toast call sites to base ui toast ( #33643 )
2026-03-18 16:53:55 +08:00
296b7044af
refactor: route next/navigation through compat re-export ( #33636 )
2026-03-18 12:57:03 +08:00
69d1ccb7a7
refactor: route next/link through compat re-export ( #33632 )
2026-03-18 12:14:59 +08:00
bbe975c6bc
feat: enhance model plugin workflow checks and model provider management UX ( #33289 )
...
Signed-off-by: yyh <yuanyouhuilyz@gmail.com >
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: CodingOnStar <hanxujiang@dify.com >
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Coding On Star <447357187@qq.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: -LAN- <laipz8200@outlook.com >
Co-authored-by: statxc <tyleradams93226@gmail.com >
2026-03-18 10:16:15 +08:00
a01c384f5b
chore: remove next font ( #33512 )
2026-03-16 14:57:25 +08:00
c43307dae1
refactor(switch): Base UI migration with loading/skeleton variants ( #33345 )
...
Signed-off-by: yyh <yuanyouhuilyz@gmail.com >
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-03-12 14:40:43 +08:00
ea0e1b52a8
refactor(web): make Switch controlled-only and migrate call sites ( #32399 )
2026-02-18 23:47:07 +08:00
00591a592c
refactor(web): replace String.match() with RegExp.exec() for non-global regex ( #32386 )
2026-02-18 17:46:38 +09:00
e730124740
Merge remote-tracking branch 'origin/main' into feat/support-agent-sandbox
...
# Conflicts:
# api/uv.lock
# web/app/components/apps/__tests__/app-card.spec.tsx
# web/app/components/apps/__tests__/list.spec.tsx
# web/app/components/datasets/create/__tests__/index.spec.tsx
# web/app/components/datasets/metadata/metadata-dataset/__tests__/dataset-metadata-drawer.spec.tsx
# web/app/components/plugins/readme-panel/__tests__/index.spec.tsx
# web/app/components/rag-pipeline/__tests__/index.spec.tsx
# web/app/components/rag-pipeline/hooks/__tests__/index.spec.ts
# web/eslint-suppressions.json
2026-02-13 15:17:52 +08:00
b6d506828b
test(web): add and enhance frontend automated tests across multiple modules ( #32268 )
...
Co-authored-by: CodingOnStar <hanxujiang@dify.com >
2026-02-13 10:27:48 +08:00
80e6312807
test: add comprehensive unit and integration tests for billing components ( #32227 )
...
Co-authored-by: CodingOnStar <hanxujiang@dify.com >
2026-02-12 10:05:06 +08:00
db0c527ce8
Merge remote-tracking branch 'origin/main' into feat/support-agent-sandbox
2026-02-09 18:43:04 +08:00
ca243d7efc
chore(web): pre-align HITL frontend from build/feat/hitl
2026-02-09 15:34:15 +08:00
a1fc280102
feat: Human Input Node ( #32060 )
...
The frontend and backend implementation for the human input node.
Co-authored-by: twwu <twwu@dify.ai >
Co-authored-by: JzoNg <jzongcode@gmail.com >
Co-authored-by: yyh <92089059+lyzno1@users.noreply.github.com >
Co-authored-by: zhsama <torvalds@linux.do >
2026-02-09 14:57:23 +08:00
871ec3b0ca
Merge remote-tracking branch 'origin/main' into feat/support-agent-sandbox
...
# Conflicts:
# api/controllers/console/app/app.py
# web/eslint-suppressions.json
# web/eslint.config.mjs
2026-02-06 14:40:44 +08:00
f1c15e0a17
Revert "refactor!: migrate commonLayout to SSR prefetch with TanStack Query hydration"
...
This reverts commit 2833965815 .
2026-02-01 19:06:45 +08:00
2833965815
refactor!: migrate commonLayout to SSR prefetch with TanStack Query hydration
...
BREAKING CHANGE: commonLayout is now an async Server Component that
prefetches user-profile and current-workspace on the server via
TanStack Query's prefetchQuery + HydrationBoundary pattern. This
replaces the previous purely client-side data fetching approach.
Key changes:
- **SSR data prefetch (root layout)**: prefetch systemFeatures and
setupStatus in the root layout server component, wrap children with
HydrationBoundary to hydrate TanStack Query cache on the client.
- **SSR data prefetch (commonLayout)**: convert commonLayout from a
client component to an async server component that prefetches
user-profile (with x-version/x-env response headers) and
current-workspace. Client-side providers/UI extracted to a new
layout-client.tsx component.
- **Add loading.tsx (Next.js convention)**: add a Next.js loading.tsx
file in commonLayout that shows a centered spinner. This replaces the
deleted Splash component but works via Next.js built-in Suspense
boundary for route segments, not a client-side overlay.
- **Extract shared SSR fetch utilities (utils/ssr-fetch.ts)**: create
serverFetch (unauthenticated) and serverFetchWithAuth (with cookie
forwarding + CSRF token). getAuthHeaders is wrapped with React.cache()
for per-request deduplication across multiple SSR fetches.
- **Refactor AppInitializer**: split single monolithic async IIFE effect
into three independent useEffects (oauth tracking, education verify,
setup status check). Use useReducer for init flag, useRef to prevent
duplicate tracking in StrictMode. Now reads setupStatus from TanStack
Query cache (useSetupStatusQuery) instead of fetching independently.
- **Refactor global-public-context**: move Zustand store sync from
queryFn side-effect to a dedicated useEffect, keeping queryFn pure.
fetchSystemFeatures now simply returns the API response.
- **Fix usePSInfo SSR crash**: defer globalThis.location access from
hook top-level to callback execution time via getDomain() helper,
preventing "Cannot read properties of undefined" during server render.
- **Remove Splash component**: delete the client-side loading overlay
that relied on useIsLogin polling, replaced by Next.js loading.tsx.
- **Remove staleTime/gcTime overrides in useUserProfile**: allow the
SSR-prefetched data to be reused via default cache policy instead of
forcing refetch on every mount.
- **Revert middleware auth guard**: remove the cookie-based session
check in proxy.ts that caused false redirects to /signin for
authenticated users (Dify's auth uses token refresh, not simple
cookie presence).
2026-02-01 18:29:41 +08:00
90fe9abab7
revert: revert human input relevant code ( #31766 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-01-30 19:18:49 +08:00
fedd097f63
feat: Human Input node (Frontend Part) ( #31631 )
...
Co-authored-by: JzoNg <jzongcode@gmail.com >
Co-authored-by: Joel <iamjoel007@gmail.com >
Co-authored-by: yessenia <yessenia.contact@gmail.com >
Co-authored-by: QuantumGhost <obelisk.reg+git@gmail.com >
2026-01-30 10:16:46 +08:00
2973968cc6
feat: handle upgrade confirm and icon
2026-01-29 15:00:04 +08:00
8f414af34e
test: add comprehensive tests ( #31649 )
...
Co-authored-by: CodingOnStar <hanxujiang@dify.com >
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-29 11:16:26 +08:00
76a0249eaf
feat: enhance ProgressBar and UsageInfo for storage mode ( #31273 )
...
Co-authored-by: CodingOnStar <hanxujiang@dify.ai >
2026-01-21 14:04:33 +08:00
3bee2ee067
refactor(contract): restructure console contracts with nested billing module ( #30999 )
2026-01-15 10:41:18 +08:00
91da784f84
refactor: init orpc contract ( #30885 )
...
Co-authored-by: yyh <yuanyouhuilyz@gmail.com >
2026-01-13 23:38:28 +09:00
cd1af04dee
feat: model total credits ( #30727 )
...
Co-authored-by: CodingOnStar <hanxujiang@dify.ai >
Co-authored-by: Stephen Zhou <38493346+hyoban@users.noreply.github.com >
2026-01-08 14:11:44 +08:00
c29cfd18f3
feat: revert model total credits ( #30518 )
2026-01-04 18:29:19 +08:00
84cbf0526d
feat: model total credits ( #26942 )
...
Co-authored-by: CodingOnStar <hanxujiang@dify.ai >
Co-authored-by: Stephen Zhou <38493346+hyoban@users.noreply.github.com >
2026-01-04 15:26:37 +08:00
2bb1e24fb4
test: unify i18next mocks into centralized helpers ( #30376 )
...
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com >
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: yyh <yuanyouhuilyz@gmail.com >
2025-12-31 16:53:33 +09:00
1873b5a766
chore: remove useless __esModule ( #30366 )
2025-12-30 15:37:16 +08:00
6d0e36479b
refactor(i18n): use JSON with flattened key and namespace ( #30114 )
...
Co-authored-by: yyh <yuanyouhuilyz@gmail.com >
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2025-12-29 14:52:32 +08:00
5549ab66ff
chore: some test ( #30144 )
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-12-25 15:34:24 +08:00
1e3823e605
chore: fix type check for i18n ( #30058 )
...
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com >
Co-authored-by: yyh <yuanyouhuilyz@gmail.com >
2025-12-24 16:31:16 +08:00
0f41924db4
chore: some tests ( #30084 )
...
Co-authored-by: yyh <yuanyouhuilyz@gmail.com >
2025-12-24 16:17:59 +08:00
dcde854c5e
chore: some tests ( #30078 )
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-12-24 14:45:33 +08:00
403adefc07
chore: lint require and how to import react ( #30041 )
2025-12-23 18:02:10 +08:00
f2842da397
chore(web): new lint setup ( #30020 )
...
Co-authored-by: yyh <yuanyouhuilyz@gmail.com >
2025-12-23 16:58:55 +08:00
eabdc5f0eb
refactor(web): migrate to Vitest and esm ( #29974 )
...
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com >
Co-authored-by: yyh <yuanyouhuilyz@gmail.com >
2025-12-22 16:35:22 +08:00
a26881cb24
refactor: unified cn utils ( #29916 )
...
Co-authored-by: yyh <yuanyouhuilyz@gmail.com >
Co-authored-by: yyh <92089059+lyzno1@users.noreply.github.com >
2025-12-19 12:08:34 +08:00
c12f0d16bb
chore(web): enhance frontend tests ( #29869 )
...
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2025-12-18 17:47:13 +08:00
4ea2d31a79
chore(web): add some tests ( #29772 )
2025-12-18 10:06:02 +08:00
9812dc2cb2
chore: add some jest tests ( #29800 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2025-12-18 10:00:11 +08:00
c2f2be6b08
fix: oxlint no unused expressions ( #29675 )
...
Co-authored-by: daniel <daniel@example.com >
2025-12-16 18:00:04 +08:00
47cd94ec3e
chore: tests for billings ( #29720 )
2025-12-16 15:06:53 +08:00