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
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
52dd4b82e6
fix: llm logs
2026-03-06 18:04:18 +08:00
f487b680f5
refactor: spilt context for better hmr ( #33033 )
2026-03-05 15:54:56 +08:00
ea0e1b52a8
refactor(web): make Switch controlled-only and migrate call sites ( #32399 )
2026-02-18 23:47:07 +08:00
26ace0da95
Merge branch 'main' into feat/support-agent-sandbox
2026-02-11 17:50:35 +08:00
e32490f54e
feat(workflow): enhance workflow run history management and UI updates ( #32230 )
2026-02-11 14:09:33 +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
2d6b30f3b8
fix: stop but tracing is still loaing and not show current tracing res
2026-02-09 14:39:06 +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
0fcddfe9a5
feat: invalidate sandbox files cache on workflow/chatflow run completion
...
Add useInvalidateSandboxFiles hook and call it alongside
fetchInspectVars/invalidAllLastRun so the Artifacts tab refreshes
automatically when a chatflow preview or workflow debug run finishes.
2026-02-03 16:47:05 +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
20a4a83129
feat: Refactor app export to support sandboxed bundle format
2026-01-29 23:36:19 +08:00
999587fbdd
fix(workflow): replace hardcoded strings with i18n in test run panel title
...
Use existing i18n keys for internationalization:
- singleRun.testRun: "Test Run" / "测试运行"
- common.running: "Running" / "运行中"
2026-01-28 23:03:49 +08:00
f16516549e
feat(workflow): add clear button to workflow test run panel
...
Features:
- Add refresh button to clear test run history (data, inputs, node highlights)
- Persist workflowRunningData when closing panel (from previous commit)
Code quality improvements:
- Refactor to declarative pattern: effectiveTab derived from state, not set in effects
- Replace && with ternary operators for conditional rendering (Vercel best practices)
- Fix created_by type: change from string to object to match backend API
- Remove `as any` type assertion, use proper type-safe access
- Title now declaratively shows status based on workflowRunningData presence
Files changed:
- use-workflow-interactions.ts: add handleClearWorkflowRunHistory hook
- workflow-preview.tsx: declarative tab state, clear button, type-safe props
- types.ts: fix created_by type definition
- test files: update mock data to match corrected types
2026-01-28 22:48:27 +08:00
3af927556e
fix: workflow result generation render
2026-01-28 21:01:47 +08:00
53bc060cea
fix: chat generation render
2026-01-27 13:37:08 +08:00
772dbe620d
fix(workflow): disable view switch during preview run instead of mounted guard
...
Simpler approach: disable the view picker toggle when preview is running,
preventing users from switching views during active runs.
This replaces the previous mounted ref guard approach (commits a0188bd9b5 ,
b7f1eb9b7b , 8332f0de2b ) which added complexity to handle post-unmount
operations. Disabling the toggle is more direct and follows KISS principle.
Changes:
- Add disabled prop to ViewPicker based on isResponding state
- Revert mounted ref guards in use-chat-flow-control.ts
- Revert isMountedRef parameter in use-nodes/edges-interactions-without-sync.ts
- Revert defensive type check in markdown-utils.ts (no longer needed)
2026-01-27 01:31:22 +08:00
8332f0de2b
fix(workflow): reinitialize mounted ref on effect setup for StrictMode
...
In React StrictMode (dev mode), effects are run twice to help detect
side effects. The cleanup-only pattern left isMountedRef as false after
StrictMode's simulated unmount-remount cycle, causing stop/cancel
operations to be skipped even when the component was mounted.
Now the effect setup explicitly sets isMountedRef.current = true,
ensuring correct behavior in both development and production.
2026-01-27 01:23:08 +08:00
a0188bd9b5
fix(workflow)!: add mounted guard to prevent ReactFlow operations after unmount
...
When switching from graph view to skill view during an active preview run,
SSE callbacks continue executing and attempt to update ReactFlow node/edge
states. This could cause errors since the component is unmounted.
Add optional `isMountedRef` parameter to `useNodesInteractionsWithoutSync`
and `useEdgesInteractionsWithoutSync` hooks. When provided, operations are
skipped if the component has unmounted, preventing potential errors while
allowing the SSE connection to continue running in the background.
BREAKING CHANGE: `useNodesInteractionsWithoutSync` and
`useEdgesInteractionsWithoutSync` now accept an optional `isMountedRef`
parameter. Existing callers are unaffected as the parameter is optional.
2026-01-27 00:43:58 +08:00
a9c5201485
refactor(workflow)!: persist the debug state of the chatflow preview panel to the zustand store and split useChat hook into modular files
2026-01-26 23:21:44 +08:00
4c596aaac2
Merge branch 'feat/collaboration2' into feat/support-agent-sandbox
2026-01-25 00:00:03 +08:00
edb4457684
Merge remote-tracking branch 'myori/main' into feat/collaboration2
2026-01-24 15:22:07 +08:00
e105dc6289
new restore
2026-01-23 14:22:58 +08:00
3de33f7a4e
fix: check and update doc links ( #30849 )
...
Co-authored-by: Riskey <36894937+RiskeyL@users.noreply.github.com >
2026-01-22 16:13:09 +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
468d84faba
Merge remote-tracking branch 'origin/main' into feat/support-agent-sandbox
...
# Conflicts:
# web/app/components/header/account-setting/model-provider-page/model-selector/popup-item.tsx
# web/package.json
2026-01-21 10:52:43 +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
0e66b51ca0
fix: history messages toolcalls
2026-01-20 17:37:23 +08:00
fdaf471a03
fix: answer node text
2026-01-20 13:59:49 +08:00
13d6923c11
Merge branch 'feat/llm-support-tools' into feat/support-agent-sandbox
2026-01-20 10:27:42 +08:00
4acca22ff0
whether resolved sync to canvas
2026-01-20 10:12:15 +08:00
cb8fc9cf2d
Merge remote-tracking branch 'myori/main' into feat/collaboration2
2026-01-19 21:15:53 +08:00
066d18df7a
Merge branch 'main' into feat/pull-a-variable
2026-01-19 15:00:15 +08:00
e8397ae7a8
fix(web): Zustand testing best practices and state read optimization ( #31163 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-01-19 10:31:34 +08:00
fc291e4ca2
Merge remote-tracking branch 'myori/main' into feat/collaboration2
2026-01-17 10:22:41 +08:00
2e10d67610
perf: Replace topOffset prop with withHeader in Panel component
2026-01-15 16:44:15 +08:00
5525f63032
refactor: sub-graph panel use shared Panel component
2026-01-15 16:12:39 +08:00
c323028179
feat: llm node support tools
2026-01-08 14:27:37 +08:00
1d93f41fcf
feat: llm node support tools
2026-01-07 16:28:41 +08:00
04f40303fd
Merge branch 'main' into feat/llm-node-support-tools
2026-01-04 18:04:42 +08:00
ececc5ec2c
feat: llm node support tools
2026-01-04 18:03:47 +08:00
2aaaa4bd34
feat(web): migrate from es-toolkit/compat to native es-toolkit ( #30244 ) ( #30246 )
2025-12-31 11:13:22 +08:00
5338cf85b1
fix: restore draft version correctly in version history panel ( #30296 )
...
Signed-off-by: majiayu000 <1835304752@qq.com >
2025-12-30 09:22:00 +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
3cbbb06dc4
chore(web): migrate lodash-es to es-toolkit compat ( #30126 )
2025-12-25 09:44:57 +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