DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

qyy2005 /

qyy2005/dsh-session-trash

Verified

DSH(DeepSeek Harness)桌面版的两段式会话删除插件:会话行尾垃圾桶移入回收站(连同子智能体与派生对话家族),设置 → 回收站可恢复、彻底删除或清空;运行中的会话拒绝删除,恢复后自动挂回原工作区。纯 JS、无构建,MIT。

★ 1 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: main@bc135722

dsh-session-trash

DSH(DeepSeek Harness)桌面版的两段式会话删除插件:行尾垃圾桶把会话移入回收站,回收站里二次确认才彻底删除。

DSH 官方只有「归档」——dsh-session-persistence 文档写得很明确:无删除或保留接口。归档只把会话从侧栏藏起来,日志、投影缓存、工作区记账全都还在。这个插件补上删除,并且把删除拆成两步,避免误删。

功能

  • 会话行尾垃圾桶(悬停会话行出现):确认后把会话移入回收站,连同它的子智能体 / 派生对话家族一起。
  • 设置 → 回收站:列出回收站里的条目(标题、原工作区、会话数、移入时间、占用大小),支持:
    • 恢复:目录搬回原位、重新挂回原工作区、恢复归档 / 置顶标记;页面自动刷新。
    • 彻底删除:点一次变「确认彻底删除?」,再点才真删。
    • 清空回收站:同样两段确认。
  • 运行中的会话会被拒绝:还有未结束的回合 / 子智能体 / 后台任务 / 定时提醒时,提示等它结束再移入,绝不会替你停掉工作再删。

存储与删除范围

项 说明
回收站目录 <DSH_HOME>/session-trash/<会话 id>/
索引 <DSH_HOME>/session-trash/index.json(记录原目录、工作区、归档/置顶标记、大小)
移入时 移动会话目录、删投影缓存 storages/session_projcache 对应记录、从所有工作区记账中脱离、发 api-session/removed 让侧栏立刻消行
彻底删除 直接删除回收站里该条目的目录与索引;不进系统回收站,不可恢复

恢复时如果原工作区已经不在了,会话仍会还原到它原来的会话目录,并出现在侧栏「未分组」里。

安装

  1. 把整个目录复制到 profile 的 node_modules/dsh-session-trash:

    <DSH_HOME>/profiles/<profile>/node_modules/dsh-session-trash/
    
  2. 在 profile 的 package.json 中登记:

    {
      "dsh": { "profile": { "bundles": [ "...", "dsh-session-trash" ] } },
      "dependencies": { "...": "...", "dsh-session-trash": "0.1.0" }
    }
    
  3. 完全退出 DSH 再打开(客户端 bundle 只在启动时组装)。

实现

  • Host 半(index.js):/dsh-session-trash/{list,trash,restore,purge,empty} 五个同源路由挂在 ctx.webServer 上(这是无构建的纯 JS 插件能用的 UI→Host 通道;带类型的 ctx.remote 需要生成的 Typert 描述符)。

  • Client 半(client.js):无构建,window.__ModuleLoader__.load 注册三个座位:

    座位 用途
    sidebar.workspaces.session.row.action 行尾垃圾桶按钮(带空 inject face,否则 dsh-better-workspace 会过滤掉)
    shell.overlay 移入回收站的确认框
    settings.section 设置里的「回收站」页面(order 25,排在 Agent 预设与 Web 插件之间)

已知限制

  • 恢复不能换工作区:会话的 cwd 写死在日志头部(SessionHeader.cwd 只读),DSH 用它校验工作区归属(workspace.attachSession() 要求 realpath(header.cwd) === workspace.path),并且 persistence.locate() 按 cwd 反推目录。换目标文件夹就得改日志头部并搬目录,官方不支持,硬做会得到一个打不开的会话。
  • 和 dsh-better-workspace 共存时,会话的右键菜单由它硬编码,第三方 menu.item 条目不会显示;所以入口只有行尾按钮 + 设置页。
  • 插件升级/重装会覆盖 node_modules 里的文件。

License

MIT

—/ 5

No ratings yet

Verified DSH bundle

Commit bc135722dfbb

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout