Commit Graph

14 Commits

Author SHA1 Message Date
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
20dea1faa2 use base ui toast 2026-03-25 20:38:44 +08:00
a7178b4d5c tix test 2026-03-25 19:25:22 +08:00
yyh
ab63df602a fix(skill): stabilize file tree local operations 2026-03-25 12:21:32 +08:00
yyh
84005bd25b Align skill tree menu behaviors 2026-03-24 23:21:24 +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
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
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
yyh
60b02e6d2b refactor(web): destructure mutation result to narrow useCallback dependencies 2026-02-25 21:04:20 +08:00
yyh
bad48e5deb refactor(web): replace query hooks with queryOptions factories (#32520) 2026-02-25 00:31:25 +08:00
yyh
a761ab5cee test(skill): add comprehensive unit tests for file-tree domain 2026-02-07 16:53:58 +08:00
yyh
11d5efc13e refactor(skill): regroup skill body, file tree, and tree hooks 2026-02-07 14:20:01 +08:00