ede716fca3
Merge remote-tracking branch 'origin/main' into feat/support-agent-sandbox
2026-03-25 12:45:48 +08:00
d7e49c388c
refactor(workflow): migrate legacy toast usage to ui toast ( #34002 )
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2026-03-25 12:42:18 +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
94b01f6821
Merge commit '92bde350' into sandboxed-agent-rebase
...
Made-with: Cursor
# Conflicts:
# api/controllers/console/app/workflow_draft_variable.py
# api/core/agent/cot_agent_runner.py
# api/core/agent/cot_chat_agent_runner.py
# api/core/agent/cot_completion_agent_runner.py
# api/core/agent/fc_agent_runner.py
# api/core/app/apps/advanced_chat/app_generator.py
# api/core/app/apps/advanced_chat/app_runner.py
# api/core/app/apps/agent_chat/app_runner.py
# api/core/app/apps/workflow/app_generator.py
# api/core/app/apps/workflow/app_runner.py
# api/core/app/entities/app_invoke_entities.py
# api/core/app/entities/queue_entities.py
# api/core/llm_generator/output_parser/structured_output.py
# api/core/workflow/workflow_entry.py
# api/dify_graph/context/__init__.py
# api/dify_graph/entities/tool_entities.py
# api/dify_graph/file/file_manager.py
# api/dify_graph/graph_engine/response_coordinator/coordinator.py
# api/dify_graph/graph_events/node.py
# api/dify_graph/node_events/node.py
# api/dify_graph/nodes/agent/agent_node.py
# api/dify_graph/nodes/llm/entities.py
# api/dify_graph/nodes/llm/llm_utils.py
# api/dify_graph/nodes/llm/node.py
# api/dify_graph/nodes/question_classifier/question_classifier_node.py
# api/dify_graph/runtime/graph_runtime_state.py
# api/dify_graph/variables/segments.py
# api/factories/variable_factory.py
# api/services/variable_truncator.py
# api/tests/unit_tests/utils/structured_output_parser/test_structured_output_parser.py
# api/uv.lock
# web/app/components/app-sidebar/app-info.tsx
# web/app/components/app-sidebar/app-sidebar-dropdown.tsx
# web/app/components/app/create-app-modal/index.spec.tsx
# web/app/components/apps/__tests__/list.spec.tsx
# web/app/components/apps/app-card.tsx
# web/app/components/apps/list.tsx
# web/app/components/header/account-dropdown/compliance.tsx
# web/app/components/header/account-dropdown/index.tsx
# web/app/components/header/account-dropdown/support.tsx
# web/app/components/workflow-app/components/workflow-onboarding-modal/index.tsx
# web/app/components/workflow/panel/debug-and-preview/hooks.ts
# web/contract/console/apps.ts
# web/contract/router.ts
# web/eslint-suppressions.json
# web/next.config.ts
# web/pnpm-lock.yaml
2026-03-23 09:39:49 +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
4d538c3727
refactor(web): migrate tools/MCP/external-knowledge toast usage to UI toast and add i18n ( #33797 )
2026-03-20 14:29:40 +08:00
978ebbf9ea
refactor: migrate high-risk overlay follow-up selectors ( #33795 )
...
Signed-off-by: yyh <yuanyouhuilyz@gmail.com >
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-03-20 14:12:35 +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
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
6100acb780
refactor(web): move component tests into sibling __tests__ directories ( #33623 )
...
Co-authored-by: CodingOnStar <hanxujiang@dify.com >
2026-03-18 10:49:30 +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
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
1a90c4d81b
refactor(web): migrate document list query state to nuqs ( #32339 )
2026-03-03 18:29:23 +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
210710e76d
refactor(web): extract custom hooks from complex components and add comprehensive tests ( #32301 )
...
Co-authored-by: CodingOnStar <hanxujiang@dify.com >
2026-02-13 17:21:34 +08: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
d6b025e91e
test(web): add comprehensive unit and integration tests for plugins and tools modules ( #32220 )
...
Co-authored-by: CodingOnStar <hanxujiang@dify.com >
2026-02-12 10:04:56 +08:00
2ab0b334a8
Merge remote-tracking branch 'origin/main' into feat/support-agent-sandbox
...
# Conflicts:
# web/app/components/rag-pipeline/components/update-dsl-modal.tsx
# web/app/components/workflow-app/hooks/use-nodes-sync-draft.ts
# web/app/components/workflow/variable-inspect/utils.tsx
# web/app/layout.tsx
# web/context/event-emitter.tsx
# web/eslint-suppressions.json
# web/next.config.ts
# web/package.json
# web/pnpm-lock.yaml
# web/types/feature.ts
2026-02-10 18:12:41 +08:00
18f14c04dc
fix(web): fill workflow tool output descriptions from schema ( #32117 )
2026-02-10 16:51:28 +08:00
db0c527ce8
Merge remote-tracking branch 'origin/main' into feat/support-agent-sandbox
2026-02-09 18:43:04 +08:00
63d965bc44
fix: pass user timezone from app context to the date picker component. ( #31831 )
...
Co-authored-by: yyh <92089059+lyzno1@users.noreply.github.com >
2026-02-09 15:39:24 +08:00
6f50915d2b
test: stable test ( #32108 )
2026-02-09 15:39:08 +08:00
6c63c6a221
fix: pass user timezone from app context to the date picker component. ( #31831 )
...
Co-authored-by: yyh <92089059+lyzno1@users.noreply.github.com >
2026-02-09 14:10:24 +08:00
0428ac5f3a
test: stable test ( #32108 )
2026-02-09 13:36:37 +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
8a9e0e3b31
Merge remote-tracking branch 'origin/main' into feat/support-agent-sandbox
...
# Conflicts:
# web/eslint-suppressions.json
2026-02-04 18:15:32 +08:00
297dd832aa
refactor(datasets): extract hooks and components with comprehensive tests ( #31707 )
...
Co-authored-by: CodingOnStar <hanxujiang@dify.com >
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com >
2026-02-04 18:12:17 +08:00
625163705b
Merge remote-tracking branch 'origin/main' into feat/support-agent-sandbox
2026-02-04 16:59:23 +08:00
ec7ccd800c
fix: fix mcp server status is not right ( #31826 )
...
Co-authored-by: Stephen Zhou <38493346+hyoban@users.noreply.github.com >
2026-02-04 16:55:12 +08:00
c111079624
Merge remote-tracking branch 'origin/main' into feat/support-agent-sandbox
...
# Conflicts:
# api/core/file/file_manager.py
# api/core/workflow/graph_engine/response_coordinator/coordinator.py
# api/core/workflow/nodes/llm/node.py
# api/core/workflow/nodes/tool/tool_node.py
# api/pyproject.toml
# web/package.json
# web/pnpm-lock.yaml
2026-02-04 13:15:49 +08:00
476946f122
test: fix test ( #31869 )
2026-02-03 17:43:27 +08:00
e2913d9ee1
Revert "refactor!: replace Zustand global store with TanStack Query for systemFeatures"
...
This reverts commit 806ece9a67 .
2026-02-01 19:06:45 +08:00
806ece9a67
refactor!: replace Zustand global store with TanStack Query for systemFeatures
...
Follow-up to SSR prefetch migration (2833965 ). Eliminates the Zustand
middleman that was syncing TanStack Query data into a separate store.
- Remove useGlobalPublicStore Zustand store entirely
- Create hooks/use-global-public.ts with useSystemFeatures,
useSystemFeaturesQuery, useIsSystemFeaturesPending, useSetupStatusQuery
- Migrate all 93 consumers to import from @/hooks/use-global-public
- Simplify global-public-context.tsx to a thin provider component
- Update 18 test files to mock the new hook interface
- Fix SetupStatusResponse.setup_at type from Date to string (JSON)
- Fix setup-status.spec.ts mock target to match consoleClient
BREAKING CHANGE: useGlobalPublicStore is removed. Use useSystemFeatures()
from @/hooks/use-global-public instead.
2026-02-01 19:06:08 +08:00
5d41f67fe1
Merge remote-tracking branch 'origin/main' into feat/support-agent-sandbox
...
# Conflicts:
# api/core/workflow/graph_events/__init__.py
2026-01-27 16:22:02 +08:00
c8abe1c306
test: add tests for dataset document detail ( #31274 )
...
Co-authored-by: CodingOnStar <hanxujiang@dify.ai >
Co-authored-by: CodingOnStar <hanxujiang@dify.com >
2026-01-27 15:43:27 +08:00
1beafd8558
Merge remote-tracking branch 'origin/main' into feat/support-agent-sandbox
2026-01-27 15:17:40 +08:00
c58647d39c
refactor(web): extract MCP components and add comprehensive tests ( #31517 )
...
Co-authored-by: CodingOnStar <hanxujiang@dify.ai >
Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com >
Co-authored-by: CodingOnStar <hanxujiang@dify.com >
2026-01-27 11:05:59 +08:00
2e954388f5
merge
2026-01-26 16:57:45 +08:00
d941201a3e
refactor(tool-selector): remove unused components and consolidate import ( #31018 )
...
Co-authored-by: CodingOnStar <hanxujiang@dify.ai >
2026-01-26 14:24:00 +08:00
a43d2ec4f0
refactor: restructure Completed component ( #31435 )
...
Co-authored-by: CodingOnStar <hanxujiang@dify.ai >
2026-01-26 14:03:51 +08:00
edb4457684
Merge remote-tracking branch 'myori/main' into feat/collaboration2
2026-01-24 15:22:07 +08:00
061feebd87
fix: check and update doc links ( #30849 )
...
Co-authored-by: Riskey <36894937+RiskeyL@users.noreply.github.com >
2026-01-21 16:31:48 +08:00
8056768106
fix: enforce no-leaked-conditional-rendering as error and fix violations ( #31262 )
...
Co-authored-by: Stephen Zhou <38493346+hyoban@users.noreply.github.com >
2026-01-20 23:08:59 +08:00
54921844bb
fix(web): disable HTML escaping for form field validation messages ( #31292 )
2026-01-20 18:43:01 +08:00
e36ee54a16
fix web style
2026-01-19 21:44:26 +08:00
511df81201
fix web style
2026-01-18 13:40:12 +08:00