Commit Graph

980 Commits

Author SHA1 Message Date
d47bc3abc4 feat: Thread nodeOutputVars through HITL and workflow variable components 2026-02-10 00:55:06 +08:00
yyh
db0c527ce8 Merge remote-tracking branch 'origin/main' into feat/support-agent-sandbox 2026-02-09 18:43:04 +08:00
b014e91740 chore: refact tool and filepreveiw context to zustand to reduce rerender 2026-02-09 16:06:23 +08:00
yyh
ca243d7efc chore(web): pre-align HITL frontend from build/feat/hitl 2026-02-09 15:34:15 +08:00
b289e6a2b6 fix: basic app crash by llm editor use the workflow context 2026-02-09 15:19:52 +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
yyh
e9bff0b7b7 feat(sandbox): use official brand assets for provider icons
Replace placeholder sandbox provider icons with official brand assets:
- Docker: white whale SVG on brand blue (#1D63ED) background
- E2B: official PNG logo via CSS module
- Local: Dify-branded SVG icon (SandboxLocal)
2026-02-08 02:04:20 +08:00
776fb04bf0 chore: use more good availableNodes 2026-02-06 18:10:32 +08:00
dae2e3b6fb feat: support choose var in tool config in sandbox prompt editor 2026-02-06 17:52:35 +08:00
81715426d2 chore: plugin in sandbox auto set to true 2026-02-06 17:23:30 +08:00
yyh
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
7202a24bcf chore: migrate to eslint-better-tailwind (#31969) 2026-02-05 18:36:08 +09:00
7446779198 perf: Update agent extraction UI styling and labels 2026-02-05 16:57:20 +08:00
yyh
23f7f188bd chore(web): add FileAdd and FolderAdd icons 2026-02-05 16:56:27 +08:00
yyh
7dcb0897c4 chore(web): add UploadCloud02 icon 2026-02-05 16:56:27 +08:00
882ad92c24 feat: can show file preview 2026-02-05 15:44:10 +08:00
yyh
e92b9afd4e Merge remote-tracking branch 'origin/main' into feat/support-agent-sandbox 2026-02-05 15:33:01 +08:00
ef0d18bb61 test: fix test (#31975) 2026-02-05 14:31:21 +08:00
0618b2532f feat: Add Enter key handler support to assemble variables generate modal 2026-02-05 01:36:13 +08:00
9bd714623e feat: Add mutual exclusion between structured output and tools in LLM
node
2026-02-04 22:36:19 +08:00
23f98652e1 perf: Add null check for onAssembleVariables callback 2026-02-04 17:52:13 +08:00
yyh
e2913d9ee1 Revert "refactor!: replace Zustand global store with TanStack Query for systemFeatures"
This reverts commit 806ece9a67.
2026-02-01 19:06:45 +08:00
yyh
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
b6465327c1 fix: Fix race condition in prompt editor reference sync 2026-01-31 22:10:38 +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
yyh
4338632a78 fix(skill): use Dialog initialFocus to focus input on modal open
Expose initialFocus prop on Modal component (passthrough to Headless
UI Dialog) so the create blank skill modal reliably focuses the name
input when opened, replacing the ineffective autoFocus attribute.
2026-01-30 16:10:19 +08:00
ed9efba039 fix: variable of sync display in prompt editor 2026-01-30 15:13:32 +08:00
e9c2279b80 fix: chat message generation render 2026-01-30 13:19:56 +08:00
yyh
d2a60b3b94 Revert "fix(icons): normalize SVG fill/stroke colors to black for CSS Icons pipeline"
This reverts commit a886bfef8a.
2026-01-30 12:42:20 +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
206d56358d feat(prompt-editor): add external search and keyboard navigation to
variable picker
2026-01-30 02:54:50 +08:00
yyh
a886bfef8a fix(icons): normalize SVG fill/stroke colors to black for CSS Icons pipeline
Hardcoded colors (#354052, #676F83, #98A2B3, #155EEF, white) prevent
the Iconify parseColors callback from converting them to currentColor,
causing the icons to render as background-image instead of mask-image
and making text-* color utilities ineffective.
2026-01-29 21:56:52 +08:00
yyh
6ee9078349 Merge remote-tracking branch 'origin/main' into feat/support-agent-sandbox
# Conflicts:
#	api/.env.example
#	api/uv.lock
#	web/app/components/app/create-app-modal/index.tsx
#	web/app/components/app/create-from-dsl-modal/index.tsx
#	web/app/components/apps/app-card.tsx
#	web/pnpm-lock.yaml
2026-01-29 21:25:28 +08:00
807d0e5fba chore: llm editor prompt placeholder support sandbox 2026-01-29 16:57:04 +08:00
b9ac7af9c5 refactor(web): consolidate download helpers (#31664) 2026-01-29 16:02:49 +08:00
2973968cc6 feat: handle upgrade confirm and icon 2026-01-29 15:00:04 +08:00
yyh
bacc5c32f5 feat(portal): add useContextMenuFloating hook for coordinate-based context menus
Replace useClickAway + fixed positioning in file tree context menu with
a floating-ui based hook that provides collision detection (flip/shift),
ARIA role="menu", Escape/outside-click dismiss, and scroll dismiss via
passive capture listener with ref-stabilized callback.
2026-01-29 14:01:36 +08:00
yyh
27639600f9 feat(web): add FileDownload01 icon and use it in artifacts tab
Replace RiDownloadLine with a file-specific download icon for the
artifacts file list and remove the unused copy-path button.
2026-01-28 14:11:18 +08:00
yyh
a38b8987b4 Merge remote-tracking branch 'origin/main' into feat/support-agent-sandbox
# Conflicts:
#	api/core/app/apps/workflow/app_runner.py
2026-01-28 11:41:58 +08:00
6fff46bc29 feat: summary index (#31523) 2026-01-28 11:09:34 +08:00
17807dbf18 fix: llm generation log 2026-01-27 17:13:40 +08:00
yyh
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
yyh
1beafd8558 Merge remote-tracking branch 'origin/main' into feat/support-agent-sandbox 2026-01-27 15:17:40 +08:00
53bc060cea fix: chat generation render 2026-01-27 13:37:08 +08:00
54fce5e903 feat: Add @agent icon and implement agent alias variables in workflow
inspector
2026-01-27 02:42:37 +08:00
yyh
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
yyh
b7f1eb9b7b fix(markdown)!: return empty string for non-string content in preprocessors
Related to a9c5201485 - when switching views during active preview run,
the markdown preprocessors could receive non-string content (e.g., frozen
arrays from immer). Returning the original value caused ReactMarkdown to
fail with "Cannot assign to read only property" error.

Now both preprocessLaTeX and preprocessThinkTag return '' for non-string
input, preventing runtime errors during view switches.
2026-01-27 01:10:00 +08:00
e48419937b feat: chatflow support multimodal (#31293)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-01-27 00:24:48 +08:00
yyh
87d033e186 Merge remote-tracking branch 'origin/main' into feat/support-agent-sandbox 2026-01-26 23:12:44 +08:00