DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

xrn1997 /

xrn1997/dsh-session-delete

Verified

会话删除插件

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

@xrn1997/dsh-session-delete

给 DeepSeek Harness(DSH)加一个删除会话的能力。DSH 官方有归档、没有删除——归档只是把会话从列表里挪走,文件还在。本插件补上删除,并且让删除可恢复:删除 = 移入回收站,另有一个显式的「彻底删除」。

左侧栏「回收站」面板:按项目分组的卡片列表,每条带「恢复」与「彻底删除…」,页脚是整页唯一的实心红按钮「清空回收站…」

  • 安装:dsh plugin --profile <profile> add @xrn1997/dsh-session-delete
  • 许可:Apache-2.0
  • 数据:回收站本体留在本机 ~/.dsh/session-trash/,不联网、不上传

目录

  • 功能特性
  • 安装
  • 用法
  • 回收站与数据
  • 界面语言
  • 常见问题
  • 开发
  • 贡献
  • 许可

功能特性

  • 删除 = 移入回收站:会话条目「…」菜单里的「删除」把会话搬进回收站,可随时恢复;删完有一条停留 6 秒的撤销提示
  • 显式彻底删除:单条「彻底删除…」或页脚「清空回收站…」,两者共用同一个二次确认
  • 回收站面板:按项目分组的卡片列表,每条两行(标题 / 删除时间 · 大小),头部是条数与合计占用 + 刷新,页脚交代本体位置与「清空后不可恢复」
  • 运行中的会话拒绝删除:菜单项置灰并说明原因——不替用户终止正在进行的活
  • 不自动过期:不设天数上限,清空是显式动作
  • 失败不吞:回收站读不到时把宿主原文上屏,并给一个「重试」
  • 不可用时不出现:取数通道探测不过就一个入口都不注册——页面上看不出本插件,但也不会因此把宿主拖死
  • 文案随宿主语言:中文 / English 挂在宿主 locale 服务上,跟随设置的界面语言

安装

dsh plugin --profile <profile> add @xrn1997/dsh-session-delete

装完重启宿主(Node 半不走 HMR)。卸载:

dsh plugin --profile <profile> remove @xrn1997/dsh-session-delete

卸载只是移除插件;~/.dsh/session-trash/ 下已有的目录仍留在原处,不会被自动清理。

也可以离线分发:pnpm pack 出 tarball 后 dsh plugin add ./dsh-session-delete-<版本>.tgz。包里带的是预构建产物(prepack 在打包时替你跑 build),所以这条路上用户不需要为构建脚本授权。

兼容性分两层,别混:

  • 装得上由 package.json 的 peerDependencies 决定——宿主 dsh plugin add 会拿运行中的宿主版本逐项比对插件的 @deepseek-ai/dsh* peer 区间,不满足即拒绝并回滚。本插件一条 dsh-* peer 都没有(界面用的控件与图标已固化成 src/client/ui/*,浏览器半只 require React 家族这三个冻结平台模块),所以这道闸不限制它装在哪些代上。
  • 真跑过由 dsh.compatibility.dshReleases 记录,只列实测过的宿主:DSH Desktop 0.2.0-rc.2(compatible)。别的 rc 装得上,但没验过。

用法

两个入口。

删除:会话条目右边的「…」菜单 → 「删除」→ 确认框(「移入回收站」)→ 会话进回收站。正在运行的会话这一行是置灰的,悬停给出「会话正在运行,先停止再删除」——本插件不替用户终止正在进行的活。

回收站:侧栏面板列表里常驻的「回收站」一行(与「插件」「小说」同层)。打开后是中央面板:

  • 清单按项目分组,每条两行——标题 / 「刚刚删除 · 24KB」或「删除于 7分钟前 · 350KB」;动作收在右侧,「恢复」是描边,「彻底删除…」是安静的红
  • 头部是条数与合计占用(「2 个会话 · 共 49KB」)加一个「刷新」;页脚是「清空回收站…」——整页唯一一块实心红
  • 面板四态:读数中 / 空(「回收站是空的」,此时底部不出现「清空回收站…」)/ 读数失败(宿主原文 + 「重试」)/ 有条目
  • 「恢复」按记录的原目录名放回原项目目录,并还原它原本的可见性:删除前未归档的,恢复后仍未归档;删除前已归档的,恢复后仍在归档态

回收站与数据

东西 位置
回收站本体 ~/.dsh/session-trash/<时间戳>-<原目录名>/
回收站清单 本插件自己的 storage domain(介质在 ~/.dsh/storages/)
  • 回收站与 ~/.dsh/sessions/ 同卷:搬进搬出靠整目录 rename,原子、瞬时
  • 清单丢了不致命:会话文件自描述,解压后第一行即 header,含 id 与 cwd
  • 不自动过期:不设天数上限,清空是显式动作;界面显示条数与占用
  • 附件不连坐:附件是全局内容寻址的,与会话不是父子关系——删除不连带,也不会回收;被删会话独享的附件会留成垃圾(要回收得先有引用计数,属另一件事)

界面语言

中文 / English 挂在宿主自己的 locale 服务上,跟随设置的界面语言;服务不可用时退回内置中文。

常见问题

装完侧栏没有「回收站」,会话菜单里也没有「删除」?

先重启宿主。若仍没有,确认这一代宿主上本插件激活过——取数通道探测不过时,本插件一个入口都不注册:页面上看不出它的存在,但它也不会因此把宿主拖死。这是有意用「入口不出现」表达不可用,不是禁用态。

删完之后侧栏那一行怎么还在?

本插件只在宿主确实不再列它时才通告客户端把那一行去掉;拿不准时宁可沉默(那时说「已移除」是假话)。刚巧遇上就刷新页面,那一行会自己消失。本机运行期没打开过的冷会话走的是正常路径,删完即走。

正在运行的会话为什么删不掉?

判据用的是宿主自己的活跃检查(与官方归档的准入同源)。首版一律拒绝,不替用户终止正在进行的活——先停下这个会话再删。

能恢复多久?

不存在时间上限。不自动过期,只有你显式清空或彻底删除才会真的丢字节。

开发

pnpm install
pnpm build        # tsdown:Node 半 + 浏览器半(含浏览器半的纯度门)
pnpm test         # vitest run
pnpm typecheck    # tsc --noEmit

本地源码调试

lib/ 是构建产物且不入库,从源码目录链进 profile 的安装方式不会替你构建它。

pnpm build        # 必须在源码目录手动跑一次
dsh plugin --profile <profile> add "link:<本仓绝对路径>"

改动生效分两半:浏览器半(src/client/)由宿主 HMR 推到浏览器,无需重启;Node 半不在热重载链路内,必须重启宿主。

设计(五个触点、边界、错误形状、验证门、界面规格)住在 docs/design/2026-09-30-session-delete-design.md,README 不复述。

贡献

欢迎 Issue 与 PR。提交改动前请确保 pnpm test 与 pnpm typecheck 都通过,且两条命令的退出码都亲眼看过——跑门要把输出先灌进文件、再单独打印退出码,管道会把红吃掉。提交即表示你同意以 Apache-2.0 协议授权你的贡献。

许可

Apache-2.0

—/ 5

No ratings yet

Verified DSH bundle

Commit 3fed02841adf

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