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

会话编辑器 wodebilu/dsh-session-editor

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

DeepSeek Harness(DSH)的非官方插件:永久删除会话、重新生成或编辑某一轮对话,还能编辑你自己发的消息。

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

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

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

状态速览

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

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

验证判据与等级说明 →

可信度证据

⚠︎ 实装验证未通过(unknown · 2026/10/21) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

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

读写/删除本地文件写入剪贴板(不计风险)
查看扫描证据(共 10 处,展示前 9 条)
  • 读取本地文件
    index.js:233
    const remains = await lstat(directory).then(() => true, () => false)
  • 读取本地文件
    index.js:282
    entries = await readdir(directory, { withFileTypes: true })
  • 删除本地文件
    index.js:293
    await rm(file, { force: true })
  • 读取本地文件
    index.js:532
    projects = await readdir(resolvedRoot, { withFileTypes: true })
  • 读取本地文件
    index.js:563
    const info = await statFile(path).catch(() => undefined)
  • 读取本地文件
    index.js:593
    const info = await lstat(resolvedDirectory).catch(() => undefined)
  • 读取本地文件
    index.js:610
    entries = await readdir(directory, { withFileTypes: true })
  • 删除本地文件递归
    index.js:629
    await rm(directory, { recursive: true, force: true, maxRetries: 3, retryDelay: 80 })
  • 写入剪贴板
    client.js:543
    clipboard.writeText(text).then(
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

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

社区实装还没有人打卡 · 装过的第一个就是你
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

README

由 DeepSeek 最新模型翻译生成
会话编辑器(Session Editor for DSH) 非官方 DeepSeek Harness(DSH)插件,与 DeepSeek 官方无关。 给 DSH 网页端加上会话删除,以及类似 SillyTavern 的“直接改、直接删”对话编辑。 删除是永久的:没有回收站,没有撤销。 删除会把会话日志从磁盘抹掉。如果不确定某个会话是否真的必须删,请先归档:归档只是把会话从侧边栏隐藏,数据仍然保留,随时可以取消归档恢复。 功能 | 操作 | 位置 | 行为 | | 删除会话 | 会话行 … 菜单 →「永久删除会话…」 | 先解析并校验磁盘路径、归档会话、停止进行中的工作,再把目录从磁盘抹掉。必须先勾选“我已了解,删除后无法恢复”。 | | 重新生成 | 已完成回答的操作行 | 确认 → 在该轮之前 fork 新会话 → 重发同一提问 → 打开新会话 → 原会话永久删除。 | | 编辑提问并重发 | 同一操作行 | 确认 + 编辑框 → 用新提问创建新会话 → 原会话永久删除。 | | 删除此轮及之后 | 同一操作行 | 生成截止到该轮之前的新会话 → 原会话永久删除。 | | 编辑我的输入 | 悬停在用户消息气泡上 | 复制 / 编辑自己的消息;同样走替换并永久删除的流程。 | 删除,还是归档?
展开完整文档(README 剩余 1 节)
会话编辑器(Session Editor for DSH)

非官方 DeepSeek Harness(DSH)插件,与 DeepSeek 官方无关。

给 DSH 网页端加上会话删除,以及类似 SillyTavern 的“直接改、直接删”对话编辑。

删除是永久的:没有回收站,没有撤销。 删除会把会话日志从磁盘抹掉。如果不确定某个会话是否真的必须删,请先归档:归档只是把会话从侧边栏隐藏,数据仍然保留,随时可以取消归档恢复。

功能

| 操作 | 位置 | 行为 |
| 删除会话 | 会话行 … 菜单 →「永久删除会话…」 | 先解析并校验磁盘路径、归档会话、停止进行中的工作,再把目录从磁盘抹掉。必须先勾选“我已了解,删除后无法恢复”。 |
| 重新生成 | 已完成回答的操作行 | 确认 → 在该轮之前 fork 新会话 → 重发同一提问 → 打开新会话 → 原会话永久删除。 |
| 编辑提问并重发 | 同一操作行 | 确认 + 编辑框 → 用新提问创建新会话 → 原会话永久删除。 |
| 删除此轮及之后 | 同一操作行 | 生成截止到该轮之前的新会话 → 原会话永久删除。 |
| 编辑我的输入 | 悬停在用户消息气泡上 | 复制 / 编辑自己的消息;同样走替换并永久删除的流程。 |

删除,还是归档?

| | 删除 | 归档 |
| 会话数据 | 从磁盘永久移除 | 保留 |
| 能否恢复 | 不能 | 可以(取消归档) |
| 从侧边栏消失 | 是 | 是 |
| 释放磁盘空间 | 是 | 否 |

删除只能由你自己决定。如果目的只是“让它从侧边栏消失”,请用归档——数据还在,删除唯一能换来的只有磁盘空间。

“直接改 / 直接删”是怎么实现的

DSH 的会话日志是 append-only 的,不支持原地改写。所以每次编辑会:

1. 在目标轮之前 fork 一个子会话(标题保持不变);
2. 需要重发时把提问发进子会话;
3. 打开子会话;
4. 永久删除源会话。

你看到的对话立刻变成修改后的内容,原会话从侧边栏消失。

代价:

- 会话 id 会变,侧边栏那一行被替换(标题保留);
- 没有可回退的分支历史;
- 只能“从这一轮起”截断,不能“只删中间一条、保留后面”;
- 改文字会重新生成回答,不是纯文本替换;
- 消息里的附件(图片 / 文件)不会跟着重发:日志里存的是附件 id,prompt 接口只收新上传的内容。带附件的消息在编辑时会明确警告并要你再勾一次,而不是默默丢掉。

删除的安全性

插件不会猜一个路径然后直接删。任何状态改变之前,它会:

1. 用 sessionPersistence.stat 读会话头;若还有子代理引用它则拒绝删除(fork 出来的子会话允许存在);
2. 依次尝试解析磁盘路径:
- harness 若提供后端 locate(header),先用它;
- 再用 JSONL 后端的 listArtifacts()(带校验的 header → path);
- 最后在候选根目录(sessionPersistence.root、其 config.root、$DSH_HOME/sessions)下扫描 <root>/<project>/<sessionId>;
3. 校验目录恰好位于某个根目录下一层、不是符号链接、且内部有 session*.jsonl[.zstd];
4. 若会话在运行,先停止并等待空闲(最多 15 秒,超时则什么都不删;停止需要先归档这一行);
5. sessionPersistence.flush() 之后,把目录从磁盘抹掉,并删掉该会话的投影缓存(<库>/storages/session_projcache/sessions/<id>.json——日志不是对话的唯一副本:这个缓存里存着标题、首条提问和每轮问答的轮廓);
6. 归档该会话,让侧边栏立刻移除这一行,不需要重启。

顺序很重要:先删文件、后归档。所以删文件失败会直接报错,不会出现“看不见但文件还在”的情况——运行中的会话为了停下来会先被归档,一旦随后的删除失败,这一行会被取消归档、重新出现在列表里。归档只是把这一行隐藏起来;会话 id 会在 DSH 下次启动、按磁盘重建注册表时自动消失。插件从不写入 workspace.json。

路径解析失败发生在任何状态改变之前,所以找不到路径时原会话完全不受影响。

删除之后没有任何恢复途径。如果可能还想找回这段对话,请取消确认框并改用归档。

环境要求

- 在 DSH 0.2.1-rc.2 上测试。
- Host 半使用公开服务(commands、agents、sessionPersistence、workspaceRegistry),另用两个后端细节定位路径:JSONL 后端的 listArtifacts() 与其 root 字段。两者都做了特性检测;未来 harness 移除它们时会回落到 $DSH_HOME/sessions;全都拿不到时安全失败,不删。
- Client 半使用内部 slot key 与 conversation.chat.user.content 工厂,DSH 升级可能导致失效。
- 无第三方运行时依赖、无网络请求、无遥测。

安装

从 GitHub 安装

1. DSH 左侧 插件 → 添加插件。
2. 粘贴仓库地址:

https://github.com/wodebilu/dsh-session-editor

或 github:wodebilu/dsh-session-editor。
包名与仓库名现在都是 dsh-session-editor。
3. 安装后重启一次 DSH。

不要从 npm 安装 dsh-session-toolkit:那个名字属于另一个插件。

从本地文件夹 / ZIP 安装

1. 下载仓库 ZIP,解压到一个以后不会移动的位置。
2. 在 添加插件 里粘贴解压后文件夹的绝对路径(包含 package.json 的那一层)。
3. 安装并重启 DSH。

文件夹安装是 link: 依赖,装完不能移动或删除该文件夹;Git/tarball 安装会把包复制进 profile,移动安全。

先移除旧的本地版本

早期版本使用过 @local/dsh-session-toolkit 或 dsh-session-toolkit 包名。安装本版本前,先在 插件 → Installed plugins 里移除旧的 bundle,否则两个客户端模块会注册同一批 slot。

使用

- 删除会话:会话行 … →「永久删除会话…」→ 勾选“我已了解”→ 确认。
- 编辑/删除某一轮:悬停在已完成回答下的操作行 → 铅笔 / 垃圾桶 / 循环箭头 → 确认。
- 编辑自己的消息:悬停在用户气泡上 → 复制 / 铅笔。
- 手动删除(在任意其他会话里):/session-editor delete <sessionId> --confirm。菜单和替换流程走的也是这条命令。
手敲的命令没有对话框可勾选,--confirm 就是这个确认:不带它时命令只回一段用法、不碰任何东西,以免误粘贴一条就删掉会话。

删除命令会作为普通命令行记录。会话删除自己时(替换流程),Host 会等命令生命周期落盘后再抹掉目录。

配置

不需要配置。一个常量刻意固定、不开放:等待运行中会话停止的上限 15 秒。

兼容性与风险

- 替换了用户消息渲染器:插件注册 conversation.chat.node 的 user 键来加悬停操作,并复用官方 conversation.chat.user.content 工厂。DSH 一旦改动该节点契约,用户消息渲染可能受影响,直到插件跟进。
- 依赖内部 API:见“环境要求”。这是社区插件,不是稳定的公开扩展点。
- 无担保:请保留备份。

开发

无需构建,纯 ESM Host 代码 + 浏览器 bundle。

npm test
等价于:
node test/host.test.mjs
node test/client.test.mjs

Host 测试使用临时目录,不会触碰真实会话;它故意不提供 locate(),并断言路径解析失败时不会归档会话。

许可证

MIT,见 LICENSE。
预览分享卡片长什么样 ↓wodebilu/dsh-session-editor
分享 · DeepSeek Harness Hub
wodebilu/dsh-session-editor

DeepSeek Harness(DSH)的非官方插件:永久删除会话、重新生成或编辑某一轮对话,还能编辑你自己发的消息。

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