DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

chwb0505 /

chwb0505/dsh-archive-toolkit

Verified

DSH conversation archive toolkit: session cascade delete, message tombstone delete, fork from message, whole-message quote

★ 0 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: main@226d27c5

dsh-archive-toolkit

给 DeepSeek Harness 的会话归档工具:删会话、删消息、按消息分叉、整条消息引用。

DSH 的会话日志是只追加(append-only)的:官方只提供归档,没有消息级删除、任意消息分叉或“整条消息引用”的入口。本插件把这些能力补成一个 bundle,并且不改写任何历史日志。

这是一个整合型插件:消息删除的 surface 折叠与转录隐藏改编自 dsh-delete-turn,会话级联删除改编自 dsh-session-delete-cascade,两者均为 MIT。分叉与整条引用为本项目新增的胶水层。详见 NOTICE。

功能

位置 能力
左侧会话 ⋯ 菜单 删除会话:连同子代理子孙一起删除;运行中的会话会被拒绝并指出是哪一条
消息悬停操作行 删除:删除该消息或整轮;分叉:保留该条之前的记录,打开新会话;引用:把整条消息作为引用带入输入框
助手回复操作条 分叉、引用、删除三个按钮,位于官方复制/反馈按钮旁
会话标题栏 多选删除:一次勾选多条消息/步骤/回复,合并为一次替换请求
  • 删除是“遮蔽”而非改写:追加一条官方 surfaceOp: { op: 'replace', startSeq, endSeq } 载体事件,后续模型请求不再包含被遮蔽内容;原始日志逐字节保留,可审计。界面隐藏依据从日志里的替换事件重建,刷新、重启后仍然生效。
  • 分叉语义:用户消息 → 切在该轮开始之前,新会话保留之前的记录,原提问回填到新会话输入框;助手回复 → 切在它回答的那条提问之后,新会话保留提问、丢掉这条回复,便于换一种答法。
  • 引用语义:整条消息(提问或回答)作为 QuoteNode 进入输入框,可继续编辑、补充后发送。

安装

从 GitHub 安装(推荐,个人重装用)

桌面端:

  1. 设置 → 插件 → 添加插件

  2. 粘贴仓库地址:

    https://github.com/chwb0505/dsh-archive-toolkit
    
  3. 完全退出并重开 App(或刷新页面)。

命令行 profile(非 desktop):

dsh plugin --profile <profile> add github:chwb0505/dsh-archive-toolkit

desktop profile 由桌面端独占管理,不能使用 CLI 安装;请走“设置 → 插件”。

从本地目录安装(开发)

dsh plugin --profile <profile> add file:C:/path/to/dsh-archive-toolkit

卸载

桌面端:设置 → 插件,找到本插件点卸载。卸载不会恢复已遮蔽的内容(原始日志仍在,可用官方工具重建)。

使用

  1. 删会话:侧栏会话行 ⋯ → 删除会话。确认框会列出将被连带删除的子会话;运行中的会话会被拒绝。
  2. 删消息:悬停任意消息,点垃圾桶;用户消息上还有“删除这一轮”。助手回复的删除按钮在官方操作条里。
  3. 分叉:悬停消息点分叉图标。新会话打开后,输入框已回填原提问,改完直接发送即可。
  4. 引用:悬停消息点引用图标,整条消息进入输入框,继续输入你的问题。
  5. 多选删除:会话标题栏右侧的勾选按钮进入多选,勾选后底部浮条“删除选中”。

技术说明

  • Host 半:注册 GET /api/archive-toolkit/state、GET /api/archive-toolkit/context、POST /api/archive-toolkit/delete、POST /api/archive-toolkit/session-delete;只接受回环地址与同源请求。
  • Client 半:通过官方 slot(conversation.chat.assistant-actions、conversation.input.overlay、conversation.session.header.utilities、shell.overlay)和 data-chat-flow-* DOM 锚点接入,不读取 React fiber,不依赖 CSS Module 哈希类名。
  • 删除的 surface fold、范围规划与转录隐藏逻辑改编自 dsh-delete-turn;会话血缘遍历与有序删除改编自 dsh-session-delete-cascade。

兼容性

  • 实测:DSH 0.2.2-rc.1(Windows 桌面端,Chromium 内核)。
  • Node:>=22。
  • 0.2.x 的客户端 slot 或 Chat DOM 锚点若有改动,插件可能需要跟进;删除 Host 侧只依赖 sessionQuery / sessions / sessionPersistence 等公开服务。

安全边界

  • 所有 Host 路由只接受回环地址与同源请求。
  • 不发送任何遥测,不访问外部网络,不读取会话之外的用户文件。
  • 会话删除只删除 DSH 会话根目录内的会话目录,并对会话 id 做字符校验。
  • 删除前有确认框;运行中的会话拒绝删除。

已知限制

  • 删除不可撤销:被遮蔽的内容无法“反删除”(原始日志仍在,但插件不提供恢复入口)。
  • 分叉要求源会话有可用的切点;首条提问之前没有记录,无法分叉。
  • 引用只取文本:附件不会随引用进入输入框。
  • 会话删除按持久化 header 遍历子代理血缘;纯内存中尚未落盘的子会话不在遍历范围(实际使用中子会话先落盘)。
  • 宿主插件树只在启动时加载,安装/升级后必须重启 DSH。

开发

npm test          # surface fold / 分叉切点 / 会话级联删除
node --check src/index.js
node --check src/client.js

目录:

src/index.js           Host 路由与消息删除
src/logic.js           surface fold、范围规划、血缘与隐藏台账
src/session-delete.js  会话级联删除
src/client.js          浏览器半:槽位、行内按钮、弹窗、引用/分叉
test/                  Node 测试

许可

MIT。第三方改编部分见 LICENSE-delete-turn、LICENSE-session-delete-cascade 与 NOTICE。

—/ 5

No ratings yet

Verified DSH bundle

Commit 226d27c58922

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout