Commit Graph

336 Commits

Author SHA1 Message Date
CodingOnStar
f331a1f5c6 add test for skills 2026-04-02 14:43:22 +08:00
CodingOnStar
4419d14887 refactor(web): streamline skill dependency fetching and batch upload flows 2026-04-01 16:58:20 +08:00
yyh
b5996085e1
fix: unify skill file upload status handling 2026-03-31 13:38:11 +08:00
Joel
11895d07c1 chore: upload file and auto insert 2026-03-30 16:55:11 +08:00
yyh
09b3e53c43
fix: support dropping file tree nodes to root blank area 2026-03-30 16:35:55 +08:00
twwu
9ae94b3217 fix(skill-editor): fix blur effects of tool-picker and file-picker 2026-03-30 16:03:31 +08:00
CodingOnStar
7046fd6728 test: enhance download operation tests to cover text and binary file handling scenarios 2026-03-30 15:06:31 +08:00
hjlarry
e6e9b7ae94 fix(skill): fallback to direct save for collaboration followers on sync failure or timeout 2026-03-27 17:30:21 +08:00
Joel
ee093a21c8 fix: click file missing 2026-03-27 16:05:53 +08:00
yyh
018b213ae1
fix(web): restore skill tab unsaved close dialog styling 2026-03-27 15:51:30 +08:00
yyh
327bbfa96a
refactor: use Base UI popover anchor for skill file picker 2026-03-27 15:29:28 +08:00
Joel
4c44fd7ca8 feat: add sandbox corner mark 2026-03-27 15:16:29 +08:00
Joel
43b1042285 chore: portoal to follow to popover 2026-03-27 15:16:28 +08:00
yyh
e13100098a
fix(skill): guard file collaboration initialization 2026-03-27 14:53:16 +08:00
Joel
edd2b040f3 fix: file upload bg 2026-03-27 14:12:53 +08:00
yyh
c43e496cc2
fix(skill): pin preview tabs when remote sync only dirties metadata 2026-03-27 14:04:40 +08:00
yyh
9e1638ca74
fix: use isClient 2026-03-27 14:00:17 +08:00
yyh
517f42ec3f
refactor(skill): split file content panel architecture 2026-03-27 13:59:07 +08:00
yyh
86bfbfc51a
perf(skill): cache normalized asset tree index 2026-03-27 12:51:00 +08:00
Joel
3cb7a5b613 chore: file to files 2026-03-26 18:07:14 +08:00
Joel
9c8a5ff527 chore: skill in query to file 2026-03-26 16:21:20 +08:00
yyh
a1a527902b
refactor: remove redundant skill file sync ref guard 2026-03-26 16:10:58 +08:00
Joel
d3c8af6aa9 chore: tests 2026-03-26 16:00:38 +08:00
Joel
e5947d518e feat: add insert @ info 2026-03-26 16:00:37 +08:00
yyh
5ce1dfa0bf
fix(skill): keep upload inputs mounted outside overlays 2026-03-26 15:55:26 +08:00
yyh
12ca422c8a
fix(app-assets): restore atomic batch upload for nested folder targets
The previous nested folder upload flow bypassed the backend batch-upload
contract when parentId was set. Instead of creating the whole metadata
tree in one backend operation, the frontend recursively called
createFolder/getFileUploadUrl for each node.

That introduced two regressions for uploads into subfolders:

- consistency regression: mid-sequence failures could leave partially
  created folder trees under the destination folder
- performance regression: metadata creation degraded from a single
  batch request to O(files + folders) round-trips before file bytes
  were uploaded

This change moves nested uploads back to the original batch semantics:

- add optional parent_id support to app asset batch-upload payload
- create the whole nested tree under the target parent in
  AppAssetService.batch_create_from_tree
- pass parentId through useBatchUpload instead of using per-node
  createFolder/getFileUploadUrl calls
- remove the now-unnecessary useBatchUploadOperation wrapper
- add a backend unit test covering batch tree creation under an
  existing parent folder

After this change, both root uploads and subfolder uploads use the same
single-request metadata creation path, preserving atomic tree creation
semantics and avoiding avoidable metadata round-trips.
2026-03-26 15:16:55 +08:00
yyh
6408300c35
feat: implement batch upload operation and integrate with create operations 2026-03-26 14:59:06 +08:00
yyh
80c5434f6f
chore: update skills templates 2026-03-26 10:49:25 +08:00
yyh
20dea1faa2
use base ui toast 2026-03-25 20:38:44 +08:00
Stephen Zhou
a7178b4d5c
tix test 2026-03-25 19:25:22 +08:00
yyh
3571bee55f
fix(web): use ScrollArea in skill start tab 2026-03-25 18:29:32 +08:00
yyh
720c950f9e
refactor(web): remove tooltip-plus and migrate to ui tooltip 2026-03-25 13:35:43 +08:00
yyh
4763c80a1b
fix(skill): align node menu to the right 2026-03-25 12:58:26 +08:00
yyh
ab63df602a
fix(skill): stabilize file tree local operations 2026-03-25 12:21:32 +08:00
yyh
88d82b5401
fix 2026-03-25 00:05:40 +08:00
yyh
84005bd25b
Align skill tree menu behaviors 2026-03-24 23:21:24 +08:00
yyh
612d90ac6f
fix: remove portal-to-follow-elem-plus shim 2026-03-24 22:18:30 +08:00
yyh
432e355dc4
fix: context menu 2026-03-24 21:04:13 +08:00
yyh
60e46854c6
fix: context menu 2026-03-24 20:39:07 +08:00
yyh
654890ed16
fix: style 2026-03-24 20:25:03 +08:00
yyh
7bc0ec8a36
fix: import skill modal 2026-03-24 20:18:38 +08:00
yyh
a3cd497dc0
fix: style 2026-03-24 20:14:40 +08:00
yyh
2e1888d37b
fix: tests 2026-03-24 20:10:17 +08:00
yyh
70767f756c
refactor(skill): migrate file tree menus to base ui overlays 2026-03-24 19:57:29 +08:00
yyh
29469a8600
fix: prevent duplicate skill file creation submits 2026-03-24 19:37:29 +08:00
Novice
d594365a45
feat: enhance configuration and environment setup for SSH sandbox and Creators Platform; update local excludes and improve component logic in the web app 2026-03-24 17:05:56 +08:00
Novice
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
Novice
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
yyh
9ff9942af1
refactor(web): move sandbox tree builder to workflow artifacts utils 2026-02-27 17:16:03 +08:00
yyh
f70d89e80b
refactor(web): remove useSandboxFilesTree and derive hasFiles in components
Migrate ArtifactsSection to queryOptions + useQuery composition and derive\nfile tree/hasFiles locally from flat data. Remove the now-unused\nuseSandboxFilesTree helper and update related tests to mock the new\nqueryOptions-based flow.
2026-02-27 12:42:40 +08:00