DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

Forget Session — DeepSeek Harness 插件(DSH Plugin)
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins

dsh-forget-session

Forget Session

DeepSeek Harness 插件:在会话行「…」菜单加入「遗忘会话」,两段式确认后把会话从侧栏与磁盘(会话日志、投影缓存、工作区记账、归档/置顶集合)彻底移除;内置复活守卫与官方列表重拉,根治「已删会话回到未分组」。灵枢记忆不受影响。

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add dsh-forget-session@2.1.0
README兼容性版本

兼容性与来源证明

Forget Session 以 dsh-forget-session 发布,当前版本为 2.1.0。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
npm
Registry 更新时间
2026/10/15

版本

2.1.0stable
2026/10/15
1.0.0stable
2026/10/11

相关插件

正在加载相关插件…

最新版
2.1.0
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
45.3 kB
文件数
7
Surface
web
许可证
MIT
发布源
npm
GitHub
★ 1
周下载
0
最近提交
2026/10/15
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题

相关插件

继续浏览 memory-context 分类下经过校验的插件。

Hindsight Coding Agents@vectorize-io/hindsight-coding-agents面向编程代理的仅反思式 Hindsight 长期记忆(可插拔支持多种运行框架:opencode、……),自动在后台导入(无需设置 CLI)。Ab Memorydsh-ab-memory--- description: "dsh-ab-memory 包:一种跨会话、基于文件的智能体记忆,提供五个工具(remember / recall / forget / load_skill / distill)以及始终启用的轻量注入。" kind: "package-reference" ---Contextdsh-context用于上下文洞察和管理的 DeepSeek Harness 插件,提供上下文仪表板和上下文命令,帮助了解上下文的构成及其演变过程。Memsearch Dsh@zilliz/memsearch-dsh适用于 DeepSeek Harness 的 MemSearch 插件:在多个代理之间共享 Markdown 记忆,支持捕获、步骤前上下文注入、记忆召回技能和技能候选审核面板。

README

dsh-forget-session

DeepSeek Harness(DSH)插件:在会话行「…」菜单里加一个**「遗忘会话」**, 把该会话从侧栏与磁盘上彻底移除。灵枢记忆插件的沉淀数据不受影响。 桌面端与 Web 端通用(插件 UI 运行在两端同源的浏览器渲染层,行为一致)。

功能

仅在会话行「…」菜单新增一项:

  • 「遗忘会话」(order 500,排在官方「置顶 / 重命名 / 分支 / 归档」之后)
  • 点击后两段式确认:该行变成「再次点击确认遗忘」,再点一次才执行 (菜单内完成,不弹窗;失败信息直接显示在这一行上,不静默)
  • 成功后该行消失,顶部 Toast 汇报删除摘要(删了几个工件、几条警告)
删除对象方式
正在运行的工作官方 workspace/session-stop 瀑布(stopActivity 归档路径)
工作区记账(workspace.json 的 sessionIds)官方 detachSession 通道(domain 写链)
归档集合 / 置顶集合官方 unarchiveSession / unpinSession
会话日志目录 ~/.dsh/sessions/<项目键>/<id>整目录删除(含 _no-cwd、历史无前缀布局、占用重试)
投影缓存分片 ~/.dsh/storages/session_projcache/sessions/<id>.json删除
投影缓存总表 ~/.dsh/storages/session_projcache.json 的表项读-改-写,其余内容原样保留
复活文件(句柄残留 / 迟到写入重建)Host「复活守卫」在 ~2 分钟窗口内自动再删
侧栏会话行(客户端会话列表)官方 sessions.handleSessionRemoved(id) + sessions.refresh()

不动的数据:灵枢记忆(~/.dsh/.dsh-memory)、附件、其他任何会话。

修复了什么(为什么已删会话还会回到「未分组」)

「未分组」= 客户端会话列表里的 id − 所有 workspace.sessionIds 的并集。 对官方源码逐包取证后确认了两个复活路径:

根因机制对策
Windows 活体删除竞态会话打开过就有 write handle / 跨进程 lease:rm 目录报 EBUSY/EPERM,v1 静默失败 → 文件残留 → 重启后 registry 重新收编;且删除后活体 teardown 的迟到 append 会重建已删目录删除后验证性复查,占用类错误退避重试;布置复活守卫:2s 起指数退避(封顶 32s)、总窗 ~130s 周期复查,目录被重建立即再删
客户端列表复活Host 的 session.list 仍会列出活体会话;客户端任何一次 refreshList(重连即触发)都会把已删行合并回来删除后调用官方 sessions.refresh() 重拉基线,让复活行在可见前被再次摘掉

v2 一度还加过「会话体检 / 空壳清扫 / audit 盘点」等额外远端点,但它们并未 随客户端契约挂载,点了只会得到 typert gateway 错误,属于无用面 —— 已全部 移除,契约面只保留 delete 一个方法。

远端契约

forgetSession 服务只暴露一个方法:

方法参数行为
delete{ sessionId }全瀑布删除(权威状态 + 磁盘工件 + 复活守卫)

安装

用 DSH 官方命令安装(装进哪个 profile,就在哪个端生效):

dsh plugin --profile web add github:2026heshao/dsh-forget-session

装完重启 DSH 即生效(--profile 后换成你实际使用的 profile 名)。

卸载

dsh plugin --profile web remove dsh-forget-session

remove 会同时移除依赖与补丁层,重启 DSH 后菜单恢复原状。

工作原理(给维护者)

  • Host 半(lib/index.js):TypertRemoteService,服务名 forgetSession, inject: ["workspaceRegistry"]。delete() 走官方状态通道 (stop / unarchive / unpin / detach),再按 session-persistence-jsonl 的 同构路径算法(projectKey + encodeSegment)删除磁盘工件(占用类错误 退避重试 + 验证性复查),清投影缓存,最后布置复活守卫。全程不手改 workspace.json —— 记账由 registry 的官方 mutate 写链完成。
  • 浏览器半(lib/client.js):window.__ModuleLoader__ 包, ctx.remote.$mount 只挂 delete 一个方法契约(strict codec 两键并写), ctx.slots.inject("sidebar.workspaces.session.menu.item", ...) 注册菜单行; Toast 走 primitives.Toast,经模块级 toast bus + shell.overlay 常驻组件 渲染(React hook 绝不能在 apply() 里调用 —— 渲染上下文之外没有 dispatcher,会让整个 fiber FAILED)。
  • 复活守卫:delete() 成功后启动(无论本轮是否全清);每档复查日志目录 (cwd 已知按项目键定位,未知全扫)与分片缓存,删除再次成功会连带清分片。 同一会话再次显式删除会重置守卫。

测试

cd <本仓库目录>
node test/verify.mjs

隔离 HOME(DSH_FORGET_SESSION_HOME 指向临时目录),13 项断言覆盖: 契约面只含 delete、delete 全瀑布(目录/分片/总表项/detach)、正常会话零误伤、 幂等、缺参报错、复活守卫清除被重建目录。

测试需要 @deepseek-ai/cordis 与 @deepseek-ai/dsh-typert-protocol (peer 依赖,随 DSH 提供),在装了本插件的 profile 内可直接运行。

已知边界

  • DSH 官方设计是「会话只归档不删除」(见 dsh-client-ui-workspace README), 本插件是官方通道之外的用户级补充;
  • 若被删会话是本进程活体,Host 先 flush 落盘再删文件;活体摘除归它的宿主 fiber 生命周期,守卫窗口(~130s)内 teardown 的迟到写入都会被补删。 建议在空闲会话上使用删除;
  • 会话搜索索引(session-query-sqlite)的 openAt 非 never 时,已删会话行 会在下次 _reconcile(任何一次搜索)自动收敛 —— 持久化列表已不含该 id, 索引走 persistentDeletes 清掉它;openAt: never(默认)为内存态,自愈。

许可

MIT