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

会话回收站 sunshaobei/dsh-session-manager

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

把会话移入回收站,可批量还原或彻底删除

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

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

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

状态速览

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

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

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

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

读写/删除本地文件发起外部网络请求
查看扫描证据(共 19 处,展示前 12 条)
  • 读取本地文件
    index.js:49
    const bytes = await readFile(IMPL_URL);
  • 发起网络请求
    client.js:541
    const response = await fetch(path, {
  • 读取本地文件
    packages/session-trash-host/lib/index.js:224
    return (await stat(path)).isFile();
  • 读取本地文件
    packages/session-trash-host/lib/index.js:244
    const projects = await readdir(root);
  • 读取本地文件
    packages/session-trash-host/lib/index.js:247
    const names = await readdir(sessionDir).catch(() => []);
  • 删除本地文件递归
    packages/session-trash-host/lib/index.js:372
    await rm(sessionDir, { recursive: true, force: true });
  • 读取本地文件
    packages/session-trash-host/lib/index.js:375
    const entries = await readdir(projectDir);
  • 删除本地文件
    packages/session-trash-host/lib/index.js:376
    if (entries.length === 0) await rmdir(projectDir);
  • 读取本地文件
    packages/session-trash-host/lib/index.js:580
    projects = await readdir(root);
  • 读取本地文件
    packages/session-trash-host/lib/index.js:587
    for (const sessionId of await readdir(projectDir).catch(() => [])) {
  • 删除本地文件递归
    packages/session-trash-host/lib/index.js:800
    await rm(sessionDir, { recursive: true, force: true });
  • 删除本地文件
    packages/session-trash-host/lib/index.js:804
    if (entries.length === 0) await rmdir(projectDir);
扫描于 2026/10/31(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

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

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

README

由 DeepSeek 最新模型翻译生成
dsh-session-manager DSH 会话回收站与彻底删除插件(DeepSeek Harness)。 会话详情头部一键移入回收站,设置页多选还原/彻底删除,活跃会话安全拦截。 界面会自动跟随浏览器语言:中文区域显示中文,其他区域显示英文。 ✨ 功能特性 - 会话详情头部归档按钮 — 会话页顶部一键把当前会话移入回收站(免确认,随时可找回)。 - 不与 DSH 自带入口重复 — 侧边栏会话行的归档入口统一使用 DSH 自带的悬浮归档按钮;本插件不再注入第二个、措辞不同的图标(0.4.4 起移除了旧的行内垃圾桶,并去掉了驱动它的全文档 MutationObserver)。 - 回收站管理器(设置 → 🗑 会话回收站)— 已归档会话多选:批量还原、批量彻底删除;条目显示 ID 与路径。 - 真正的彻底删除 — 物理清除磁盘日志与投影缓存;无日志的幽灵会话被彻底清理,不会残留。 - 活跃会话保护 — 正在运行(有活跃 agent)的会话拒绝删除。 - 子会话可见可控 — 每行可显示该会话留下的子代理会话数量(任意层级全树),并可就地展开:标题、大小、时间、运行状态,逐个勾选。彻底删除会一并清除整棵子树;未勾选的会保留,并以「已删除的主会话 · 保留 N 个子会话」的形式继续可见,而不是变成看不见、够不着的残留。
展开完整文档(README 剩余 1 节)
dsh-session-manager

DSH 会话回收站与彻底删除插件(DeepSeek Harness)。

会话详情头部一键移入回收站,设置页多选还原/彻底删除,活跃会话安全拦截。

界面会自动跟随浏览器语言:中文区域显示中文,其他区域显示英文。

✨ 功能特性

- 会话详情头部归档按钮 — 会话页顶部一键把当前会话移入回收站(免确认,随时可找回)。
- 不与 DSH 自带入口重复 — 侧边栏会话行的归档入口统一使用 DSH 自带的悬浮归档按钮;本插件不再注入第二个、措辞不同的图标(0.4.4 起移除了旧的行内垃圾桶,并去掉了驱动它的全文档 MutationObserver)。
- 回收站管理器(设置 → 🗑 会话回收站)— 已归档会话多选:批量还原、批量彻底删除;条目显示 ID 与路径。
- 真正的彻底删除 — 物理清除磁盘日志与投影缓存;无日志的幽灵会话被彻底清理,不会残留。
- 活跃会话保护 — 正在运行(有活跃 agent)的会话拒绝删除。
- 子会话可见可控 — 每行可显示该会话留下的子代理会话数量(任意层级全树),并可就地展开:标题、大小、时间、运行状态,逐个勾选。彻底删除会一并清除整棵子树;未勾选的会保留,并以「已删除的主会话 · 保留 N 个子会话」的形式继续可见,而不是变成看不见、够不着的残留。
- 运行中的子代理会拦住删除 — 只要该会话的子树里还有子会话在运行就拒绝删除,并点名是哪一个。
- 批量容错 — 批量操作逐条执行,收集并汇报失败项。
- 浅色/深色自适应界面 — 所有颜色以 CSS 变量(设计令牌)收敛在 client.css,组件优先跟随 DSH 应用外观(data-ds-dark-theme),并以 prefers-color-scheme 作为系统级兜底,无硬编码色板。界面与代码文字同样跟随 DSH 全局字体(--dsw-font-family / --ds-font-family-code),「设置 → 字体」对本插件同样生效。

📋 环境要求

- DSH 0.2.0-rc.2 及以上(本版仅在该版本上测试通过;更低版本未测试)。

回收站列表的标题与轮数不再读取会话日志,而是取自会话投影缓存(SessionProjectionCache.cachedSnapshot,以及为跨格式代际准备的 cachedPredecessorTitle)——这正是 DSH 自身会话列表使用的零 I/O 门面。缺少这两个方法的旧宿主上,插件仍能挂载、归档与还原,但列表会退化为「未命名会话」且不显示轮数。

该下限以 dsh.engines.dsh 声明。注意:DSH 0.2.0-rc.2 并不读取该字段,因此它是给用户与插件市场看的文档性声明,不是运行时强校验。

📦 安装

从插件市场一键安装(dsh-market)

收录进 awesome-dsh-plugin 注册表后:打开 设置 → 插件市场 → 搜索 dsh-session-manager → 安装。

手动安装

dsh plugin --profile web add dsh-session-manager

安装完成后重启 Web 服务(停止 dsh web 进程后重新启动)。

本地开发安装

dsh plugin --profile web add link:/绝对路径/harness-session-delete

卸载

dsh plugin --profile web remove dsh-session-manager

🚀 使用说明

1. 移入回收站 — 在会话页顶部点「移入回收站」图标:会话进入回收站,并弹出可撤销提示。归档后的会话是否仍显示在左侧列表,由 DSH 侧边栏「视图选项 → 筛选会话」的档位决定(隐藏已归档 / 全部对话 / 仅显示已归档),本插件不做干预,与 DSH 自带按钮行为一致。
2. 设置页回收站 — 打开「设置 ⚙️ → 🗑 会话回收站」:
- 复选框多选 → 还原(批量解除归档)或 彻底删除(批量清除)。
- 每个条目显示会话名、ID 与工作路径(悬浮查看完整信息)。
3. 彻底删除 物理清除日志与投影缓存;活跃会话受保护。
4. 撤销 — 还原操作带撤销提示,可重新归档。

🛠 开发

pnpm test # 运行测试套件(host 逻辑 + HTTP 路由层)

仓库结构:

harness-session-delete/
├── package.json # 单包 bundle 声明(dsh.bundle.patch + dsh.client) ├── cordis.patch.yml # bundle patch:一行 insert 挂载 host 行 ├── index.js # node 半边:host 入口(inject + apply) ├── client.js # browser 半边:会话头部动作 + 设置页回收站 ├── client.css # 插件样式表:设计令牌 + 浅色/深色自适应组件 └── packages/ └── session-trash-host/ # host 实现(persistence/workspace/cache 补丁、HTTP 路由)

更新日志规范

CHANGELOG.md 与 CHANGELOG.zh.md 一一对应。每条按下面写:

- 版本段用 ## [版本] - YYYY-MM-DD,其下只列实际涉及的 ### Added / ### Changed / ### Fixed / ### Performance / ### Removed。
- 每条一个主题:加粗短句点明结论,随后 1–2 句说明「改了什么 + 为什么、对用户有什么影响」。
- 不写实现细节、不贴代码、不写测试或验证过程 —— 那些属于 commit / PR。
- 只写用户可感知或破坏性的变化;纯内部重构若无可见影响则不写。

🔌 工作原理

- 单包 bundle 同时覆盖两端,与其它已发布插件一致:host 半边由 cordis.patch.yml 挂载;浏览器半边经 dsh.client + exports["./client"] 自动进入模块图。
- 浏览器通过插件自身的 /api/session-trash/* HTTP 路由与宿主通信(webserver 注册;非 GET 请求携带 x-dsh-plugin CSRF 头)。

📄 许可证

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

把会话移入回收站,可批量还原或彻底删除

回到顶部