DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

daxianya /

daxianya/dsh-session-manager-archive

Verified

DeepSeek Harness 会话管理插件:在侧边栏列出会话,按时间/体积/回合排序,勾选批量硬删除,支持清理空会话与失效记录

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

dsh-session-manager

release license platform downloads

给 DeepSeek Harness 桌面版用的会话管理插件:在左侧导航栏加一条「会话管理」,集中查看、筛选、批量删除会话与工作区。

硬删除,不留备份。 删掉就是删掉。

主界面

装

一条命令,装完重启就出现在左侧,不需要任何手工配置:

dsh plugin --profile desktop add https://github.com/daxianya/dsh-session-manager/releases/latest/download/dsh-session-manager.tgz

然后 ⌘Q 退出再打开。

也可以用本地 tgz:

dsh plugin --profile desktop add ./dsh-session-manager-0.2.0.tgz

dsh plugin add 会自动装依赖、登记 dependencies、并把包写进 dsh.profile.bundles——手不用碰配置文件。

确认装好了:

dsh --profile desktop --dump-config | grep -A2 session-manager

卸载:

dsh plugin --profile desktop remove dsh-session-manager

能干什么

功能 说明
会话列表 标题、回合数、体积、最后活动、所属工作区
批量删除 勾选后一次删掉,两步确认,删目录 + 清索引 + 清缓存
单条删除 行尾垃圾桶图标,点两下确认
排序 按时间 / 体积 / 回合 / 标题,可切升降序
只看无项目 筛出工作区已被删掉的孤儿会话
空会话清理 点了「新会话」但一句话没发的空壳,软件本身不显示,可在设置里清掉
失效记录清理 名单上还留着、文件已经不在的残留条目
5 种布局 表格 / 卡片 / 按项目分组 / 左右分栏 / 带体积条
外观 浅色 / 深色 / 跟随系统,字号 3 档,只作用于本面板

安全设计

  • 不删当前正在对话的会话:服务端读会话状态,正在跑回合的直接拒绝,理由回传「正在运行回合」
  • 同源校验:非本机 Origin 的 POST 一律 403
  • id 白名单:只接受 session-<uuid> 格式,../ 这类路径穿越直接判非法
  • 原子写:改 workspace.json 走临时文件 + rename,不会写出半个文件

界面

卡片视图 左右分栏
设置面板 空列表

想看五种布局的对比,用浏览器打开 design/preview.html。

结构

client.js         前端:面板 UI、5 种布局、设置、事件委托
lib/index.js      后端:4 个 HTTP 接口、会话扫描、删除、修复
cordis.patch.yml  告诉宿主「把我挂进去」
package.json      dsh.bundle / dsh.client 声明

接口

方法 路径 作用
GET /dsh-sm/sessions 列出会话、工作区、孤儿、统计
POST /dsh-sm/delete 批量删除 {ids: [...]}
POST /dsh-sm/repair 清理失效记录 {dryRun?}
POST /dsh-sm/purge-blank 清理空会话 {dryRun?}

侧边栏从哪来

插件自己注册,不依赖宿主预留位置:

ctx.slots.inject("sidebar.panellist", () =>
  ctx.slots.register(
    { name: "sidebar.panellist", id: PANEL_ID, order: 20, label: "会话管理" },
    PanelIcon));
ctx.slots.inject("main", () =>
  ctx.slots.register({ name: "main", key: PANEL_ID, inject: () => ({}) },
    SessionManagerPage));

order 控制排序,label 控制显示名。

已知限制

  • 删完请重启一次:宿主内存里还留着会话对象,它下次写 workspace.json 时可能把 id 写回去,产生「名单上有、磁盘上没有」的失效记录。设置面板里的「清理失效记录」能修,但要先 ⌘Q 退出再点,否则会被覆盖回去。
  • 只测过 macOS + DeepSeek Harness 桌面版。

License

MIT

—/ 5

No ratings yet

Verified DSH bundle

Commit b4adcab44980

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