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

会话回退重问 apherchin/dsh-session-rewind

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

作废某轮及之后的对话,回填原提示词重新提问

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

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

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

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:待复验
是什么
dsh 原生插件 · chat
装得上吗
曾在 dsh 0.2.0-rc.2 下真实安装成功,但当前 dsh 已更新至 0.2.1-rc.5,本站尚未在新版下复验
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 28 天前
档位由哪些信号合成

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

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

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

写入剪贴板(不计风险)发起外部网络请求
查看扫描证据(共 2 处,展示前 2 条)
  • 发起网络请求
    client.js:154
    const response = await fetch(REWIND_PATH, {
  • 写入剪贴板
    client.js:247
    await clipboard.writeText(text);
扫描于 2026/11/2(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

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

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

功能亮点

  • 作废某轮及之后对话
  • 原提示词回填输入框
  • 支持分支找回

(已合并进 dsh-wonder-tools)重新生成(从这里重来):把某轮及之后从模型视野作废、原提示词回填输入框,支持分支找回。

README

由 DeepSeek 最新模型翻译生成
⚠️ 已被 dsh-wonder-tools 取代(本包已合并进那个工具箱)。 请改用 dsh plugin add dsh-wonder-tools —— 一个插件装好五个功能:删除对话 / 重新生成 / 队友命令 / 跨会话提醒 / 首轮结束自动命名。 本包现在只作为该工具箱的依赖存在。 dsh-session-rewind 会话「重新生成(从这里重来)」的 DSH 插件:把某一轮连同它之后的全部对话从模型视野里作废,并把那一轮的原始提示词重新填回输入框,让你改一下再问一次。不改 app.asar(host 半边走 profile insert,客户端半边走 dsh.client)。 状态:本地在用中(cordis.patch.yml 的 insert 已启用)。2026-10-04 对 DSH 0.2.0-rc.2 做过兼容核对,见下文「0.2.0 兼容性」。 它做什么 - 入口:助手动作行里的「重新生成(从这里重来)」按钮 + 轮次页脚槽位(含「已作废 · 模型不再看到」标记与「分支找回」入口)。 - 预览先行:先调 op: "preview",弹窗列出将被作废的轮次、区间、原提示词(只读)、被遮蔽的 surface 节点数;再带 previewToken 调 op: "apply"。会话在预览之后发生变化 ⇒ STALE_PREVIEW,要求重新预览。
展开完整文档(README 剩余 1 节)
⚠️ 已被 dsh-wonder-tools 取代(本包已合并进那个工具箱)。
请改用 dsh plugin add dsh-wonder-tools —— 一个插件装好五个功能:删除对话 / 重新生成 / 队友命令 / 跨会话提醒 / 首轮结束自动命名。
本包现在只作为该工具箱的依赖存在。

dsh-session-rewind

会话「重新生成(从这里重来)」的 DSH 插件:把某一轮连同它之后的全部对话从模型视野里作废,并把那一轮的原始提示词重新填回输入框,让你改一下再问一次。不改 app.asar(host 半边走 profile insert,客户端半边走 dsh.client)。

状态:本地在用中(cordis.patch.yml 的 insert 已启用)。2026-10-04 对 DSH 0.2.0-rc.2 做过兼容核对,见下文「0.2.0 兼容性」。

它做什么

- 入口:助手动作行里的「重新生成(从这里重来)」按钮 + 轮次页脚槽位(含「已作废 · 模型不再看到」标记与「分支找回」入口)。
- 预览先行:先调 op: "preview",弹窗列出将被作废的轮次、区间、原提示词(只读)、被遮蔽的 surface 节点数;再带 previewToken 调 op: "apply"。会话在预览之后发生变化 ⇒ STALE_PREVIEW,要求重新预览。
- 语义边界(弹窗里明写):
- 只作废模型视野(surface)里的内容,文件与外部副作用不回滚;
- 该轮含附件时只能带回文字;
- 原会话内不可撤销,要找回请用该轮下方的「分支找回」(在作废点之前 fork 出新会话,原文原样回来)。
- 拒绝条件:会话不在内存里(NOT_ATTACHED)、日志里有未闭合轮次或 agent 收件箱还有排队/steering 输入(SESSION_ACTIVE)、轮次不存在(TURN_NOT_FOUND)、区间非法(RANGE_INVALID)。
- 写入方式:session.append 一条 user/message 替换体 + surfaceOp: { op: "replace", startSeq, endSeq }, sourceEventSeqs 列全被遮蔽的 surface 节点。不发明自定义事件类型。

0.2.0 兼容性(2026-10-04 核对)

| 检查项 | 结论 |
| session.snapshotEvents() | DSH 0.2.0-rc.1 起被标记弃用;官方政策「存量调用可暂不迁移,禁止新增调用」⇒ 本插件是存量调用方,合规。0.2.0-rc.2 的 asar 里该方法仍有 110 处 / 76 个文件(官方自己在用) |
| session.surface.nodes / session.append(type, data, { surfaceOp, sourceEventSeqs }) | 均存在(asar 里 surfaceOp 315 处、sourceEventSeqs 328 处) |
| ctx.connection.fetch.register 注册 POST /api/session.rewind | 存在(asar 里 fetch.register 8 处) |
| 离线测试 | node smoke-test.mjs → 44/44 通过 |
| 页面级实测 | ⏳ 未做(改/装插件都要整机重启 DSH;打包版没有「刷新页面」) |

替代方向(将来真要迁移时):官方方向是"显式异步分页 / 显式存储读取",用来替换同步读取任意历史;但 0.2.0 还没有与"一次拿全量事件 + surface 节点"等价的异步接口,届时 core.mjs 的纯函数入参形状需要一起改。

文件结构

| 文件 | 角色 |
| index.mjs | host 半边:live 会话探测、忙碌判定、调 core、映射 HTTP 状态码 |
| core.mjs | 纯函数:校验 / 定位 / 区间计算 / 替换体构造 / 恢复记录折叠(离线全测) |
| client.js | 客户端半边:动作行按钮、轮次页脚标记、确认弹窗、提示条、分支找回(三处槽位注册各自 try/catch,外层兜底) |
| smoke-test.mjs | 离线测试台(44 条) |
| package.json | 含 dsh.client(exports["./client"]),客户端半边由平台供应,无需改 asar |

跑测试

node D:\DSH\Day1\plugins\dsh-session-rewind\smoke-test.mjs

安装 / 停用

安装:在 ~\.dsh\profiles\desktop\cordis.patch.yml 追加

- insert:
- id: session-rewind
name: "D:/DSH/Day1/plugins/dsh-session-rewind/index.mjs"

停用:注释掉这段 insert + 整机重启。备份见 Day1\work\session-rewind-20260927\cordis.patch.yml.bak-before-rewind。

三条改代码前必读的铁律

1. 不写自定义会话事件类型 —— 只用官方 user/message + surfaceOp(session-repair 的毒化教训)。
2. 不 import "@deepseek-ai/*" —— 会解到 CLI 版本线(与桌面壳不同版本线)。
3. 不把 "sessions" 放进插件级硬门禁 inject —— 名字不被满足时 apply 会静默永不执行;一律用 ctx.get(name) + try/catch 做"有则用、无则降级"。(connection 是路由必需的硬依赖,保留在 inject 里。)
预览分享卡片长什么样 ↓apherchin/dsh-session-rewind
分享 · DeepSeek Harness Hub
apherchin/dsh-session-rewind

作废某轮及之后的对话,回填原提示词重新提问

回到顶部