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

归档会话清理 Htao-uu/dsh-archived-chat-cleanup

DeepSeek Harness
Htao-uu17 天前有提交已提供中文文档扫描:未发现敏感能力

删除已归档会话并回收无人引用的附件,可回滚

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

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

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

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么[目录]—
dsh 原生插件 · chat
暂无时间戳·判据 →
装得上吗[实装验证]—
本站尚未做安装检查
暂无时间戳·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/04·判据 →
还在维护吗[仓库]✓
活跃:最近一次提交在 17 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

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

验证判据与等级说明 →

可信度证据

安全扫描自动 · 静态分析源码
v2.7.0
🟢 扫描:未发现敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。

扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

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

社区实装还没有人打卡 · 装过的第一个就是你
依赖的 DSH / Cordis 模块
@deepseek-ai/dsh-typert-protocol
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

DSH 插件:删除已归档会话,同时按引用关系回收附件垃圾,整个过程是一个可回滚的事务。

README

由 DeepSeek 最新模型翻译生成
dsh-archived-chat-cleanup(已归档会话清理) 一个 DSH 插件,用来删除已归档会话,同时回收只被这些会话引用的附件实体和派生请求图片缓存——整个过程是一个事务,按引用关系判断,带 journal,可回滚。按包名安装:dsh-archived-chat-cleanup。 安装 在 DSH 里输入包名安装(推荐):在 DSH 插件管理器里输入 dsh-archived-chat-cleanup,或使用命令行: dsh plugin --profile web add dsh-archived-chat-cleanup 安装/升级后需要重启宿主(模块缓存按包说明符生效)。
展开完整文档(README 剩余 1 节)
dsh-archived-chat-cleanup(已归档会话清理)

一个 DSH 插件,用来删除已归档会话,同时回收只被这些会话引用的附件实体和派生请求图片缓存——整个过程是一个事务,按引用关系判断,带 journal,可回滚。按包名安装:dsh-archived-chat-cleanup。

安装

在 DSH 里输入包名安装(推荐):在 DSH 插件管理器里输入 dsh-archived-chat-cleanup,或使用命令行:

dsh plugin --profile web add dsh-archived-chat-cleanup

安装/升级后需要重启宿主(模块缓存按包说明符生效)。

从源码安装(本地开发):

dsh plugin --profile web add <插件目录的绝对路径>

English overview

DSH stores attachments content-addressed: one object can be referenced by many sessions, so
deleting a session must not blindly delete its attachments. This plugin deletes only archived
sessions, cascades into their subagent child sessions, scans every surviving session for
sha256: references, removes only unreferenced attachment objects, clears the
request-images derived caches, and updates the live indexes through the running services.
Every file move is journalled and reversible, including crash recovery on the next boot.

It ships a Host half (delete_archived_session tool + archivedCleanup Remote namespace) and
a browser half (two rows in the archived session's “…” menu). See the Chinese sections below for the full behaviour, transaction protocol and test coverage.

删除已归档会话,并按引用关系回收附件实体;整个过程是一个可回滚的事务。
Host 半 + 浏览器半在同一个包里,安装后提供三个入口:会话「...」菜单、模型工具、Remote API。

它解决什么

DSH 的附件是内容寻址的:同一张图被多个会话引用时磁盘上只有一份。
所以"删除会话"不能简单地把附件一起删掉,必须先判断还有没有别的会话在引用。
DSH 自身没有删除会话的 API(sessionPersistence / attachments 都没有 delete),这些数据只能由插件自己按事务方式落盘删除。

行为

一次删除调用按顺序完成:

1. 归档校验:目标必须在 workspaceRegistry.archivedSessionIds(界面上的"已归档")里。
非归档会话直接拒绝(session-not-archived)。
2. 运行中会话:one 模式整体拒绝(target-live);all 模式跳过该会话及其全部子会话并在结果里报告(skippedLive),绝不删正在写的日志。
3. 级联:递归带上目标会话的子代理子会话(它们是归档会话的内部会话,保留会让附件被"永久引用")。
4. 取目标会话的附件引用:完整读取会话日志,扫描其中出现的所有 sha256:<64hex>。
5. 取存活会话的引用:扫描除目标外的所有现存会话(磁盘 + 内存 live,不区分是否归档)。
6. 判定:
- 未被任何存活会话引用 → 删除附件实体(镜像对象 attachments/v1/objects/、文件对象 file-objects/、以及别名目录 files/);
- 仍被其他会话引用 → 不删,只随目标会话一起删除那条引用(引用存在会话日志里);
- 任何存活会话日志读不出来 → 整个操作中止(fail-closed,宁可不删)。
7. 删除派生缓存:<cacheRoot>/request-images 与旧版遗留的 attachments/v1/request-images 整体清掉(按"源对象+请求尺寸"派生,无法精确归属到某个会话,且下次看图会自动重建)。
8. 删除会话正文与索引引用:会话目录、投影缓存记录(session_projcache 域)、 message_feedback 记录、workspace 归属与归档集合。
索引一律走活着的服务/域,不直接改文件——workspaceRegistry 会在内存里缓存状态,直接改文件会被它写回(这正是前两次手工清理踩过的坑)。

事务与回滚

- 阶段一:把每个待删路径 rename 进隔离区(同卷、原子),每步写一次 journal;
- 阶段二:改索引(先快照原值);
- 阶段三:两者都成功后彻底清空隔离区。
- 任意一步失败:先回滚索引,再逆序把文件搬回原位,journal 记为 rolled-back(隔离区清掉,journal 留作审计)。
- 进程崩溃:下次启动时扫描 journal,自动恢复未完成的事务;rollback-incomplete 表示恢复不完全,需要人工查看 journal。
- 所有待删路径必须严格位于会话根、附件根、缓存根之内,否则以 unsafe-path 中止。

用法

| 入口 | 说明 |
| 会话「...」菜单 | 仅在该会话已归档时显示「删除已归档会话…」(order 500)与「清理全部已归档会话…」(order 501),点两次才执行 |
| 模型工具 delete_archived_session | { mode: "one"\|"all", session_id?, dry_run?, confirm };dry_run:true 只报告计划;真正删除需 confirm:true |
| Remote 命名空间 archivedCleanup | 端点 archivedCleanup/status、/preview、/deleteArchived,参数按名字传 { mode, sessionId, confirm } |

路径与数据

- 会话根:ctx.sessionPersistence.root(回退:Loader 配置 / DSH_HOME/sessions)
- 附件根:ctx.attachments.root(回退 DSH_HOME/attachments/v1)
- 派生缓存:ctx.attachments.cacheRoot(回退 DSH_HOME/cache/attachments)
- 插件数据:DSH_HOME/plugin-data/archived-cleanup/(transactions/ journal,reports/ 执行报告)
预览分享卡片长什么样 ↓Htao-uu/dsh-archived-chat-cleanup
分享 · DeepSeek Harness Hub
Htao-uu/dsh-archived-chat-cleanup

删除已归档会话并回收无人引用的附件,可回滚

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部