🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

会话删除 Linusteller/dsh-session-delete

DeepSeek 客户端
Linusteller12 天前有提交已提供中文文档扫描:含敏感能力兼容 / 相关生态

从侧栏菜单永久删除会话及其磁盘日志与缓存

30.7/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/23 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

相关生态插件(非 dsh 原生,按其对应运行时安装)
git clone https://github.com/Linusteller/dsh-session-delete.git

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么
生态应用
桌面端 / Web 外壳,不以 dsh plugin add 安装
装得上吗
本站尚未做安装检查
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 12 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件发起外部网络请求
查看扫描证据(共 4 处,展示前 4 条)
  • 删除本地文件递归
    lib/index.js:96
    await rm(target, { recursive: true, force: true });
  • 读取本地文件
    lib/index.js:146
    projects = await readdir(sessionsRoot, { withFileTypes: true });
  • 读取本地文件
    lib/index.js:155
    children = await readdir(dir, { withFileTypes: true });
  • 发起网络请求
    lib/client.js:109
    fetch(DELETE_SESSION_PATH, {
扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

DeepSeek Harness 插件:侧栏会话菜单「删除会话」(永久删除,非归档)

README

由 DeepSeek 最新模型翻译生成
dsh-delete-sessions 给 DeepSeek Harness 增加真正的 「删除会话」:从侧栏每个会话的「…」菜单永久删除它,而不是只能「归档」。 为什么需要这个插件 DSH 内建的「归档」(archive)只做一件事:把会话 id 加进 archivedSessionIds 集合,把它从分组界面里藏起来。它从不删除磁盘文件——会话日志(~/.dsh/sessions/<project>/<id>/session.v4.jsonl.zstd)和投影缓存(~/.dsh/storages/session_projcache/sessions/<id>.json)会一直留在硬盘上。 本插件补上缺失的「删除」:停止该会话正在跑的工作 → 摘除归档/置顶/工作区记账 → 删除投影缓存 → 删除日志目录 → 广播移除事件让界面立即刷新。 安装 方式一:作为 bundle 安装(推荐) dsh plugin --profile desktop add dsh-delete-sessions cordis.patch.yml 会自动插入一行,加载插件。 方式二:手动安装 1. 把本目录复制到 profile 的 node_modules/dsh-delete-sessions(或用 link: 依赖)。
展开完整文档(README 剩余 1 节)
dsh-delete-sessions

给 DeepSeek Harness 增加真正的 「删除会话」:从侧栏每个会话的「…」菜单永久删除它,而不是只能「归档」。

为什么需要这个插件

DSH 内建的「归档」(archive)只做一件事:把会话 id 加进 archivedSessionIds 集合,把它从分组界面里藏起来。它从不删除磁盘文件——会话日志(~/.dsh/sessions/<project>/<id>/session.v4.jsonl.zstd)和投影缓存(~/.dsh/storages/session_projcache/sessions/<id>.json)会一直留在硬盘上。

本插件补上缺失的「删除」:停止该会话正在跑的工作 → 摘除归档/置顶/工作区记账 → 删除投影缓存 → 删除日志目录 → 广播移除事件让界面立即刷新。

安装

方式一:作为 bundle 安装(推荐)

dsh plugin --profile desktop add dsh-delete-sessions

cordis.patch.yml 会自动插入一行,加载插件。

方式二:手动安装

1. 把本目录复制到 profile 的 node_modules/dsh-delete-sessions(或用 link: 依赖)。
2. 在该 profile 自己的 cordis.patch.yml 里加一行:

- insert:
- id: dsh-session-delete
name: 'dsh-delete-sessions'

注意:手动加行后不要再让 cordis.patch.yml(本目录里的那份)也被应用,否则同一插件会因 id 冲突重复加载。

3. 重启 DeepSeek Harness。

使用

1. 在侧栏任意会话上点「…」。
2. 菜单里「归档会话」正下方会多出「删除会话」(带删除图标,风格与其余菜单项一致)。
3. 点击后确认。删除后该行立即从列表消失。

行为细节

删除按固定顺序执行,任何一步失败都会整体报错,避免「界面里没了但磁盘还在」的半完成状态:

1. 停活动 —— 触发 workspace/session-stop(与归档「停止并归档」同一条路径,agent.cancel),并短暂等待最后一次事件落盘。
2. 摘除记账 —— unarchiveSession + unpinSession + 逐工作区 detachSession(均幂等)。
3. 删投影缓存 —— 走 storage-domain 的 session_projcache 域(内存与磁盘同步);域未挂载时跳过(缓存是派生数据,下次冷读会重建)。
4. 删日志目录 —— 优先用 sessionPersistence.locate() 拿精确路径(session id 已被安全编码,无路径穿越风险),带重试处理 Windows 上反病毒/索引短暂占用。
5. 广播移除 —— api-session/removed 已在 DSH 的转发白名单中,浏览器会立即移除该行。

安全

- 删除路由只接受回环来源的 POST,且 body 只承载一个 sessionId。
- session id 会先经 sessionPersistence.stat() 校验真实存在,才继续删除。
- locate() 路径由 DSH 自身的 encodeSegment 编码,无路径穿越。

局限

- 若 profile 未挂载 session_projcache 域或 ~/.dsh/sessions 无法定位,投影缓存/日志目录可能残留(缓存下次冷读自动重建;日志需手动清理)。
- 删除不可撤销,请确认后再点。

License

MIT
预览分享卡片长什么样 ↓Linusteller/dsh-session-delete
分享 · DeepSeek Harness Hub
Linusteller/dsh-session-delete

从侧栏菜单永久删除会话及其磁盘日志与缓存

这是你的仓库?认领条目

回到顶部