DeepSeek Harness 插件

dsh-sessions-rm

Session management for DeepSeek Harness (DSH): list all historical sessions in a settings page and physically delete a session's log directory (with a type-to-confirm dialog and an audit trail).(英文原文)

跳到安装方式

来源信息

GitHub 仓库
Temoa/dsh-sessions-rm
最近更新
2026年8月17日
分类
记忆
GitHub stars
0
载体类型
plugin
目录证据
上游声明已找到 dsh.bundle
证据路径
package.json#dsh.bundle
核对版本
0.1.0-rc.8
上游核对日期
2026-08-20

该证据由上游目录提供。本站没有安装、运行或安全审核这个插件。

安装

默认先复制一段 Prompt,让 Agent 读 GitHub 仓库和源码;需要自己装时再切到命令。

复制这段 Prompt,发给 DSH、Codex 或其他 Agent,让它先读 GitHub 仓库和源码。

请先不要安装或执行任何命令。阅读这个插件的 GitHub 仓库、README 和关键源码,然后用清楚、直接的方式回答以下问题,帮助我判断它是否适合我的需求:

1. 这个插件是什么,解决什么问题;
2. 适合哪些用户和典型使用场景;
3. 安装后如何使用,并给出一个最小使用示例;
4. 有哪些已知限制,以及隐私、安全、兼容性或维护风险;
5. 给出“推荐 / 有条件推荐 / 不推荐”的明确建议和理由。

请区分仓库明确说明、根据源码推断和未知信息。证据不足时请明确说明,不要猜测或照抄 README。

GitHub:https://github.com/Temoa/dsh-sessions-rm
插件名:dsh-sessions-rm
作者:Temoa

检查来源文件

安装前先看这个插件目录里的 README 和其他文件。

文件资源管理器4 个文件
README.zh.md来源说明 · 只读预览
README 语言

@temoa/dsh-sessions-rm

DeepSeek Harness (DSH) 的会话管理插件:在设置页列出全部历史会话,支持物理删除会话日志目录(不可恢复、输入确认防手滑、带留痕日志)。

English | 中文

功能

  • 设置 → 会话管理settings.section 增量插槽,不替换任何内置 UI
  • 会话列表 — 标题、相对时间、状态徽标(运行中 / 已持久化),空白会话与异常无标题区分显示
  • 输入确认删除 — 模态对话框显示会话与不可恢复警告,必须输入「确认删除」后「确定删除」才可点击(防手滑);Esc / 点遮罩 / 取消均可关闭
  • 物理删除 — Host 通过 sessionPersistence.locate() 定位日志,用 Node fs 直接删除整个会话目录(日志 + 会话专属附件,不经 shell / 沙箱,跨平台一致)
  • 留痕日志 — 每次删除请求(成功与失败)追加一行 JSON 到 ~/.dsh/sessions-rm.log(时间 / sessionId / 标题 / 结果 / 路径或错误)
  • 主题适配 — 使用官方主题 token,跟随浅色 / 深色 / 系统

安装

方式 A — 作为包安装(dsh plugin add,无需 --patch

直接从 GitHub 安装(pnpm 按 commit 固定版本并带完整性哈希):

dsh plugin --profile web add git+https://github.com/Temoa/dsh-sessions-rm.git

由于包声明了 dsh.bundle.patchcordis.patch.yml),reconciler 会自动把它追加到 profile 的 dsh.profile.bundles —— 插件在 PROFILE 级挂载,对该 profile 的每个会话生效。Client half 通过 dsh.clientexports["./client"])发现,Host Remote manifest 通过 exports["./typert"]dsh-typert-loader 自动注册),无需手写 patch 文件。

卸载:dsh plugin --profile web remove @temoa/dsh-sessions-rm

> 修改插件代码后必须完整重启 harness —— 模块按进程 URL 缓存。

方式 B — 源码安装(本地开发)

git clone git+https://github.com/Temoa/dsh-sessions-rm.git
cd dsh-sessions-rm
dsh web --patch ./cordis.patch.yml

依赖

不声明 dependencies —— 运行时依赖(@deepseek-ai/cordis@deepseek-ai/dsh-typert-protocol@deepseek-ai/dsh-home-pathszod)由 DSH 安装提供。两种解析方式:

1. 把 DSH 的 node_modules 符号链接到插件目录(推荐,离线可用): ``bash ln -s /path/to/dsh/node_modules node_modules ` 2. 或在插件目录 npm install(若 registry 提供 @deepseek-ai/*` 包)。

使用

打开 设置 → 会话管理:选择会话 → 点「删除」→ 在对话框中输入「确认删除」→ 确认。行消失、侧栏立即隐藏(归档)、日志目录物理删除、~/.dsh/sessions-rm.log 追加一行。

工作原理

  • Hostlib/index.js 注册 ctx.sessionRmTypertRemoteService 子类),暴露 list / deletelib/typert.host.js 是 Typert manifest(exports["./typert"]),由 dsh-typert-loader 自动注册;api-gatewaysessionRm/* 的 wire 调用路由到服务方法。
  • Clientlib/client.js(由 scripts/build-client.jssrc/client.js 构建的 factory-form CJS bundle)通过 ctx.remote.$mount() 注册同名描述符,以 ctx.remote.sessionRm.list()/delete() 调用。
  • 删除流程 — 拒绝运行中 agent → workspaceRegistry.archiveSession()(归档集合让侧栏立即隐藏)→ sessionPersistence.locate() → Node fs 删除目录 → 追加留痕日志。
  • 纯 JS + 手写装饰器标记@Remote 是 TS 装饰器;本项目通过手工构造装饰器上下文复用官方 Remote() 的标记逻辑(见 lib/index.jsaddRemote),无需 TS 工具链。

配置

无 —— 插件刻意零配置,行为全部由设计固定。

开发

npm run build:client   # node scripts/build-client.js → lib/client.js
npm test               # node test/index.mjs —— manifest/bundle 结构自检

测试覆盖:Host 服务类结构、Typert manifest 结构(package/face/codec/invocations)、client bundle 格式。

边界与限制

  • 运行中会话不可删 — DSH 无销毁 live agent 的公开 API,删除运行中会话日志会损坏运行时
  • 删除不可恢复 — 日志与附件永久丢失;归档步骤让侧栏立即隐藏,内存记录在重启后消失
  • 路径自校验 — 删除目标由 sessionPersistence.locate() 派生并校验为绝对路径,不接受外部输入;删除与留痕日志均用 Node fs 直接执行,不依赖 shell 或部署沙箱边界(Windows 挂载 pwsh 执行器,且 dsh web 从盘符根启动时沙箱不可用)
  • 用户态语义 — 设置页是增量 UI,不替换内置界面,也不读取模型上下文

License

MIT