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

会话延迟删除 Firefly-Star/dsh-session-delete

DeepSeek Harness
Firefly-Star11 天前有提交已提供中文文档扫描:含敏感能力

标记会话待下次启动清除,复用后自动撤销

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

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

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add Firefly-Star/dsh-session-delete
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么
dsh 原生插件 · browser
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 11 天前
档位由哪些信号合成

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

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

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

读写/删除本地文件发起外部网络请求
查看扫描证据(共 7 处,展示前 7 条)
  • 写入本地文件
    index.js:178
    await writeFile(staging, `${JSON.stringify({ ids: [...marks] }, null, 2)}\n`, 'utf8');
  • 写入本地文件
    index.js:179
    await rename(staging, file);
  • 删除本地文件
    index.js:182
    await rm(staging, { force: true }).catch(() => {});
  • 读取本地文件
    index.js:191
    raw = await readFile(marksFile(), 'utf8');
  • 删除本地文件递归
    index.js:236
    await rm(dir, { recursive: true, force: true });
  • 发起网络请求
    client.js:118
    const response = await fetch(MARKS_ENDPOINT);
  • 发起网络请求
    client.js:131
    response = await fetch(MARK_ENDPOINT, {
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

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

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

DSH 侧边栏插件:给会话打上删除标记(显示删除线),下次启动 DSH 时清除;会话再次使用时自动取消标记

README

由 DeepSeek 最新模型翻译生成
dsh-session-delete DSH(DeepSeek Harness)Web 侧栏增强插件:给会话加一个标记删除入口,就放在内置「归档」按钮旁边。标记后会话名被划掉,等 DSH 进程退出、下次启动时统一清除记录;标记期间只要该会话又被追加了对话,标记自动取消。 仓库名是 dsh-session-delete,包名是 dsh-session-delete-button——因为 npm 上 dsh-session-delete 已被另一个插件占用。安装时以包名为准。 功能 | 入口 | 菜单项 | 行为 | | 会话行悬停 | 归档图标右侧的垃圾桶按钮 | 标记删除(再点一次取消) | | 会话行 … 菜单 | 标记删除 / 取消删除标记 | 同上 | | 标记之后 | 会话行整行变灰并划掉 | 纯视觉标记,不删任何文件 | 为什么不立即删除 DSH 只要在 GUI 里打开过一个会话,就会把它连同日志写入权一直留在 Host 进程里,直到进程退出。此时删文件会得到"界面里还在、磁盘上没了"的坏状态,当前正在聊的会话更是不能删。
展开完整文档(README 剩余 1 节)
dsh-session-delete

DSH(DeepSeek Harness)Web 侧栏增强插件:给会话加一个标记删除入口,就放在内置「归档」按钮旁边。标记后会话名被划掉,等 DSH 进程退出、下次启动时统一清除记录;标记期间只要该会话又被追加了对话,标记自动取消。

仓库名是 dsh-session-delete,包名是 dsh-session-delete-button——因为 npm 上 dsh-session-delete 已被另一个插件占用。安装时以包名为准。

功能

| 入口 | 菜单项 | 行为 |
| 会话行悬停 | 归档图标右侧的垃圾桶按钮 | 标记删除(再点一次取消) |
| 会话行 … 菜单 | 标记删除 / 取消删除标记 | 同上 |
| 标记之后 | 会话行整行变灰并划掉 | 纯视觉标记,不删任何文件 |

为什么不立即删除

DSH 只要在 GUI 里打开过一个会话,就会把它连同日志写入权一直留在 Host 进程里,直到进程退出。此时删文件会得到"界面里还在、磁盘上没了"的坏状态,当前正在聊的会话更是不能删。所以删除做成两段:

1. 标记(立即):只写一条记录 $DSH_HOME/session-delete-marks.json,随时可撤,任何会话都能标记——包括你正在打开看的那个;
2. 清除(下次启动):DSH 启动时、还没有任何会话被打开,插件逐个删掉被标记会话的目录,并清算工作区账目。

行为细节

| 场景 | 结果 |
| 标记任意会话(含已打开、正在看的) | 立即生效:行变灰 + 划掉 |
| 再次点击 / 菜单「取消删除标记」 | 撤销标记,行恢复正常 |
| 标记后又往该会话发消息 | Host 收到 session/event 里的对话活动事件,自动取消标记 |
| 标记的 id 找不到记录 | 返回 404,提示"可能已经被清除" |
| DSH 启动时 | 删除标记对应目录,并 unarchive / detachSession |
| 解析出的路径不在 $DSH_HOME/sessions 内 | 拒绝删除,只记日志 |

只有真实对话活动会取消标记:user/message、assistant/message、developer/message、system/message、tool/call、tool/result、turn/start、turn/end。后台的 session/title(标题重新生成)、session/flush、压缩、模型切换等不会取消标记。

划掉效果用一条动态 CSS 实现([data-row-key="session:<id>"]{text-decoration:line-through}),随标记列表重写;页面重新可见时重新拉取标记,多标签页和"Host 自动取消标记"都能同步。

安装

本插件未发布到 npm,按 profile 本地安装:

git clone https://github.com/Firefly-Star/dsh-session-delete.git
$src = ".\dsh-session-delete"
$dst = "$env:DSH_HOME\profiles\web\node_modules\dsh-session-delete-button"
New-Item -ItemType Directory -Force -Path $dst | Out-Null
Copy-Item "$src\*.js","$src\package.json","$src\cordis.patch.yml" -Destination $dst -Force

再把 dsh-session-delete-button 追加到 $DSH_HOME\profiles\web\package.json 的 dsh.profile.bundles 数组末尾,然后重启 DSH(Host 半需要重启,浏览器半随页面刷新加载)。

该 profile 之后跑 pnpm install 会清掉手工放进 node_modules 的目录,需要重新复制。

组成

- index.js(Host 半,Cordis 插件)
- GET /dsh-session-delete-button/marks → { ok, ids }
- POST /dsh-session-delete-button/mark → { sessionId, marked } → { ok, ids }
- GET /dsh-session-delete-button/state → 诊断:live 会话、live agent、当前标记、标记文件路径
- 启动时执行一次 purge(异步,不阻塞启动)
- client.js(浏览器半,dsh.client web bundle):注册官方插槽
- sidebar.workspaces.session.row.action(order 101,紧跟归档 100)
- sidebar.workspaces.session.menu.item(order 401,紧跟归档 400)
- shell.overlay(Toast 提示)
- cordis.patch.yml:随包分发的 profile 层,安装后自动挂载

兼容性

适配 DSH 0.2.0-rc.2:sessionPersistence.list() 的 { header } 快照、locate() 的 { path }、 workspaceRegistry 的 unarchiveSession / list() / detachSession、ctx.on('session/event'),客户端插槽 API(ctx.slots / ctx.locale)与 data-row-key 行标记。Linux / Windows 均可(纯 node:fs,无 shell 调用)。

DSH(DeepSeek Harness)侧边栏增强:在内置归档按钮旁边加一个标记删除操作。标记后会话立刻显示删除线;下次 DSH 启动时,一次性清除它的记录。如果标记期间该会话收到新的对话事件,标记会自动清除。

仓库名是 dsh-session-delete;包名是 dsh-session-delete-button(前者在 npm 上已被无关插件占用)。

为什么分两步

DSH 会把你在 GUI 里打开过的每个会话都保留在 Host 进程里,并持有其日志的写权限,直到进程退出。如果直接从运行中的会话底下删文件,就会出现「侧边栏还在、磁盘上已没了」的情况,而且你正在聊天的会话永远没法这样删掉。所以:

1. 标记(立即生效):在 $DSH_HOME/session-delete-marks.json 里写一条记录,可撤销,对所有会话都有效,包括你正打开的那个;
2. 清除(下次启动):在任何会话打开之前,Host 删除每个已标记会话的目录,并结算工作区账目。

细节

- 已标记的行会置灰并加删除线,靠一条生成的 CSS 规则实现,以 data-row-key="session:<id>" 为键;不改动 DOM。
- 真正的对话事件会清除标记(user/message、assistant/message、developer/message、system/message、tool/call、tool/result、turn/start、turn/end)。后台的 session/title 刷新、flush、压缩和模型切换不会。
- 清除操作只会删除能证明位于 $DSH_HOME/sessions 之下的目录;其他路径一律拒绝并记日志。
- GET /dsh-session-delete-button/state 返回活跃会话、活跃智能体、当前标记和标记文件路径。

安装

未发布到 npm。克隆仓库,把包复制到你配置档的 node_modules(目录名必须是 dsh-session-delete-button),在 $DSH_HOME/profiles/<profile>/package.json 的 dsh.profile.bundles 里加上 dsh-session-delete-button,重启 DSH。

兼容性

面向 DSH 0.2.0-rc.2(会话持久化快照、workspaceRegistry、session/event、客户端 slot API、data-row-key)。支持 Linux 和 Windows。

License

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

标记会话待下次启动清除,复用后自动撤销

这是你的仓库?认领条目

回到顶部