Skip to content

feat(recycle-bin): 资产删除改为软删除并新增回收站模块 - #17

Open
zhangz1w3nCode wants to merge 1 commit into
mainfrom
feature/asset-soft-delete-recycle-bin
Open

feat(recycle-bin): 资产删除改为软删除并新增回收站模块#17
zhangz1w3nCode wants to merge 1 commit into
mainfrom
feature/asset-soft-delete-recycle-bin

Conversation

@zhangz1w3nCode

Copy link
Copy Markdown
Owner

概述

将 Ocean 中各类资产的删除从物理删除改为逻辑删除(软删除),并新增侧边栏「回收站」业务模块。

背景

原先删除资产(智能体/技能/知识/工作流/节点/资源文件 6 类 + 技能子资源 + 工作流局部节点)均为物理删除,删后不可恢复。本次改为删除时把文件移动到 .ocean/.trashbox/{业务模块}/{产物} 并写入索引,回收站支持查看、恢复、彻底删除、清空。

主要变更

  • 主进程 electron/launch.cjs:9 处 delete handler 改为软删除(移动 + 写 index.json);新增 4 个 IPC:list-trash / restore-trash / delete-trash-permanent / clear-trash
  • 桥接 electron/preload.dev.cjs:暴露 4 个回收站 electronAPI
  • src/utils/storage.ts:新增回收站读写函数 + 浏览器 localStorage 兜底 + electronAPI 类型声明
  • src/types/index.ts:新增 TrashItem / TrashModule 类型
  • UI:新增 TrashPage(按模块分组/筛选、恢复、彻底删除、批量操作、清空);侧边栏接入「回收站」(appStore / Sidebar / MainContent)
  • 文案:资产删除确认文案由「此操作不可恢复」改为「删除后可在回收站恢复」
  • 恢复时若原位置已存在同名资产,拒绝恢复并提示(不覆盖)

验证

  • tsc 通过、pnpm build 通过
  • 端到端测试 20/20 通过:删除 → 软删除移入回收站 → 恢复(内容一致)→ 再次删除 → 彻底删除(文件 + 索引清空),三层交叉验证(UI + 落盘文件 + IPC)

说明

  • 纯内存的画布节点/连线删除(不落盘)不在本次范围内
  • 浏览器 dev 兜底:仅原本真实落 localStorage 的删除路径接入了回收站,其余保持既有行为

相关任务

.tasks/2026-08-17/TASKS/asset-soft-delete-recycle-bin/

将 6 类资产(智能体/技能/知识/工作流/节点/资源文件)以及技能子资源、工作流局部节点的删除从物理删除改为逻辑删除,并新增侧边栏「回收站」模块。

- 主进程 launch.cjs:9 处 delete IPC handler 改为将文件/目录移动到 .ocean/.trashbox/{模块}/{产物} 并写入 index.json;新增 list-trash / restore-trash / delete-trash-permanent / clear-trash 四个 IPC
- 渲染层 storage.ts:新增回收站读写函数与浏览器 localStorage 兜底;新增 trashStore、TrashItem 类型
- UI:新增 TrashPage(按模块分组筛选、恢复、彻底删除、批量操作),侧边栏接入「回收站」入口
- 文案:资产删除确认文案从「不可恢复」改为「删除后可在回收站恢复」

影响范围:六类主资产 + 技能子资源 + 工作流局部节点
测试:tsc 通过、pnpm build 通过、端到端测试 20/20 通过(删除→回收站→恢复→彻底删除)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant