插件目录 / Developer / dsh-session-dustbin
dsh-session-dustbin
已验证 · 实测可装 Github-CJX
✓ 持续维护 基于 2 个官方 DSH 包
0Stars
0Forks
0未关闭 issue
—语言
2026-08-21最近推送
跨平台平台
功能简介
DSH 会话管理插件归档/活跃会话、查看归档对话内容、删除会话。
我们的评价
可用 — 实测通过,早期项目
可用 — 实测通过,早期项目
DSH 会话管理插件归档/活跃会话、查看归档对话内容、删除会话。 实测能干净安装、正常启动。早期项目,但功能可用。
「已验证」表示我们的自动化 CI 在干净 profile 里实际执行了 dsh plugin add 并启动成功——仅此而已。功能描述与版本兼容性均为作者声明。这不是安全审计,也不代表对第三方代码的背书。
README
dsh-session-dustbin
DSH 会话纸篓 — 归档的会话像丢进纸篓的纸:随时翻出来看内容,不要了连文件一起倒掉,删除即时生效、无需重启。
在设置 → 插件 → 可配置 增加「会话纸篓」卡片:
- 归档会话纸篓:列出已归档会话,展开可查看对话内容(从会话日志解码,多帧 zstd 兼容)
- 删除会话:活跃与归档会话均可删除——先归档(侧边栏即时消失)再删文件(数据彻底清除),无需重启
- 恢复归档:一键把归档会话恢复为活跃会话
- 侧边栏快捷删除(实验性):会话行「…」菜单注入「🗑 删除对话」,DSH 风格确认框
工作原理
- 列表状态实时读取平台
workspaceRegistry内存服务(归档/恢复立即反映),磁盘~/.dsh/storages/workspace.json为兜底 - 会话内容从
~/.dsh/sessions/<项目>/<id>/session.jsonl.zstd多帧 zstd 逐帧解码(兼容 rc.7 追加式日志格式) - 所有操作走 loopback 围栏桥(
/api/dsh-session-dustbin/*),仅本机浏览器可访问 - 删除链路:
workspaceRegistry.archiveSession()(内存广播,侧边栏立即收走)→ 删除会话目录 → 清理 workspace.json 标记;列表读取时过滤目录已不存在的会话,标记残留不会显示
已知约束
- 活跃会话的事件日志未完整落盘(关闭才 flush)→ 只能查看归档会话全文;活跃会话只列出不读内容
- 删除不可逆(会话目录 + 标记一并清除),卡片与侧边栏均带 DSH 风格确认框(需勾选「无法恢复」才能确认)
- 删除后重启前,DSH 侧边栏的归档分组可能残留一个点不开的空条目(平台无移除归档标记的 API;插件列表不受影响,重启后彻底干净)
- 侧边栏注入为实验性:React 重渲染可能吞掉注入项(下次打开菜单重新注入);会话定位按标题反查,重复标题取第一个
仓库结构
dsh-session-dustbin/
├── lib/ # 宿主侧(Node ESM,零 cordis 工具依赖)
│ ├── index.js # 插件入口:设置段 + 路由挂载
│ ├── routes.js # loopback 围栏桥(list / get / delete / unarchive)
│ ├── sessions.js # workspace.json 读写 + 会话枚举/内容/删除/恢复
│ ├── zstd.js # 多帧 zstd 解码(rc.7 追加式日志格式)
│ ├── protocol.js # 与客户端共享的路径/命名空间常量
│ └── client.js # 预构建客户端 bundle(提交以便克隆即用)
├── src/client/ # 客户端(浏览器侧,rolldown 打包)
│ ├── index.ts # 入口:settings.plugin.item keyed 卡注册
│ ├── SessionAdminCard.tsx # 会话纸篓卡片(列表/内容/删除/恢复)
│ ├── sidebar-inject.tsx # 实验性:侧边栏会话菜单注入「删除对话」
│ ├── locales.ts # zh / en 文案
│ └── session-card.module.css
├── docs/ # installation / troubleshooting / architecture
├── build-client.mjs # 客户端构建脚本
├── sync-profile.mjs # 同步插件到 profile(清拷贝 + 重装 + 校验)
├── smoke-client.mjs # 客户端冒烟测试
├── test-sessions.mjs # 宿主逻辑测试
└── cordis.patch.yml # profile bundle 注册补丁
开发
node test-sessions.mjs # 宿主逻辑测试(临时目录,不碰真实数据)
node build-client.mjs # 重建客户端 bundle
node smoke-client.mjs # 客户端冒烟
node sync-profile.mjs # 同步到 profile(file: 实体拷贝),然后重启 DSH
架构细节见 docs/architecture.md,安装见 docs/installation.md,排障见 docs/troubleshooting.md。
安装
🧩 让 Agent 自动装(推荐)
装一次目录插件,之后本站所有插件都能让 DeepSeek Harness 自动找、自动装:
dsh plugin add dshbase-catalog 然后对 agent 说「帮我装 dsh-session-dustbin」,它会在目录里找到并自动安装。文档:dshbase-catalog · 已验证场景包。
该插件是 GitHub 源码(未发 npm)——直接从仓库装:
Web profile:
dsh plugin --profile web add github:Github-CJX/dsh-session-dustbin Headless(CLI)profile:
dsh plugin --profile headless add github:Github-CJX/dsh-session-dustbin 实测报告
验证通过:从 GitHub 源码完成 L1 安装 + L2 加载 + L3 运行(dsh 0.1.0-rc.6)。