dsh-rewind-lite

DSH PLUGIN模型与账号接入

仓库 280832849/dsh-rewind-lite

模型与账号接入 L5 · 运行验证通过 安全审查:低风险 可信度:金 可安装插件
安装这个插件

DeepSeek Harness 插件:同窗口内就地回退对话到更早的用户消息,可一并还原被改过的文件(Claude Code /rewind 语义)

一句话选型结论

按资料字段整理

dsh-rewind-lite 是模型与账号接入类的 DSH 可安装插件,验证等级 L5 · 运行验证通过,安全审查为低风险,有可直接复制的安装命令。验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么;涉及密钥或系统权限的,建议先在隔离环境试装。

分类模型与账号接入 收录类型可安装插件 验证等级L5 · 运行验证通过 安全审查低风险
验证等级 L5 L5 · 运行验证通过
GitHub 星标 0 复刻 0 · 未关闭 issue 0
最近更新 2026-10-23 创建于 2026-10-23
README 6.8 KB 正文体量,越大说明说明书写得越细

安装

可安装插件
在 DSH 里执行,装完用 dsh plugin list 确认已挂上;标了 L4 / L5 的命令已在沙盒里真实跑通
dsh plugin --profile web add github:280832849/dsh-rewind-lite
  1. 1
    确认版本与运行环境

    仓库没有标注兼容版本与 Node.js 要求,先确认你的 DSH 版本能装,再继续。

  2. 2
    执行安装命令

    在 DSH 里执行上面的命令;多包仓库要注意区分具体子包名,别装错包。

  3. 3
    确认已挂载

    用 dsh plugin list 查看列表里是否出现这个插件,出现即挂载成功。

  4. 4
    试跑并检查权限

    加载后跑一个最小用例,确认它能正常工作;同时看它申请了哪些文件、命令或网络权限。

兼容 DSH 版本未标注版本不匹配时安装会报错
Node.js 要求未标注来自仓库 package.json 的 engines 字段
前置依赖无需要同时安装的同级依赖
npm 包名未发布到 npm可用 npm view 查看包信息

能做什么

模型与账号接入
字段来自项目仓库与公开索引,中文说明由本站标注

适用场景

文件读写

上游标签

deepseek-harnessdsh-pluginrewind

验证等级与安全审查

L5 · 运行验证通过
自动化流程结论,不是人工审核
验证等级L5 · 运行验证通过在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来
安全审查低风险静态分析结论,未标注不代表已通过审查
仓库健康度活跃按仓库活跃度与最近更新时间给出
可信度金综合仓库活跃度与验证结果

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 验证等级 L5:安装和运行都在沙盒里跑通过,装完能直接用的概率高。
  • 静态安全审查为低风险,没有发现明显可疑行为。
  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有声明 Node.js 版本要求,版本不匹配可能装不上。
  • 验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么。

更适合

  • 需要在模型与账号接入场景里给 DSH 补能力的人。
  • 想装完就能用、不想自己排依赖的人。
  • 能接受在本地装依赖、愿意自己确认权限的人。

不太适合

  • 只使用 DSH 官方内置能力、不接受第三方插件的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
插件验证等级安全审查星标兼容版本安装命令
dsh-rewind-lite当前 L5 · 运行验证通过 低风险 0 未标注 有
archify L4 · 沙盒安装通过 低风险 8.0 万 未标注 有
DeepSeek-Reasonix L4 · 沙盒安装通过 低风险 3.6 万 未标注 有
nocobase L3 · 安装规范通过 低风险 2.5 万 0.1.1-rc.2 无
learn-harness-engineering L4 · 沙盒安装通过 低风险 2.0 万 未标注 有
dsh-our-free-model 未做沙盒验证 未标注 8,064 未标注 无

仓库档案

模型与账号接入
字段来自项目仓库与公开索引,中文说明由本站标注
作者 / 维护方280832849仓库 dsh-rewind-lite · 默认分支 main
分类模型与账号接入ai
收录类型可安装插件声明了 dsh.bundle、可用 dsh plugin add 安装的条目
开发语言未标注仓库主语言
许可证MIT商用或二次分发前请确认条款原文
星标 / 复刻 / issue0 / 0 / 0收录时的数值,非实时
创建 / 更新2026-10-23 · 2026-10-23最后推送 2026-10-23
本站收录2026-10-30首次进入本站目录的时间

README 全文

6.8 KB
作者原文,中文版优先;只做安全转义,不改内容

dsh-rewind-lite

DeepSeek Harness (DSH) 插件:同窗口内就地回退对话到任意更早的用户消息,只往会话日志追加一条标记,不新建分支、不删改历史;被撤回的原提示词自动回填输入框,改完直接重发。附带文件还原:回退时把 AI 改过的文件恢复成改动前,目标之后新建的文件删掉。

In-window conversation rewind for DeepSeek Harness: jump back to any earlier user message without forking the session; the withdrawn prompt returns to the composer for editing. Optional file restore brings AI-edited files back to their pre-edit state.

  • 纯插件实现:调的是官方扩展点(session.append + surfaceOp.replace、commands、slots、commandUi.decorate、tools/* 事件),不改 DSH 客户端代码。
  • 行为对齐 Claude Code 的 /rewind,但只做一件事:就地回退(不建分支、不留副本)。

已实现(0.4.0)

能力 状态
/rewind、/undo 命令 ✅
裸命令打开官方 popupSelect 选目标 ✅
回退到任意更早的用户消息(撤回目标及其之后的所有内容) ✅
原提示词回填输入框(setDraft,失败退 DOM) ✅
聊天界面隐藏被撤回的行(持久化:刷新/换会话/重启后仍然隐藏) ✅
只追加不删改:日志保留全部原文,可搜索、可导出 ✅
守卫:生成中先取消再回退、并发回退加锁、被压缩遮蔽的目标拒绝、子会话拒绝 ✅
消息旁「↶」按钮(二次确认:只回退对话 / 对话+文件) ✅
文件还原:回退时把 AI 改过的文件还原、删掉目标之后新建的文件 ✅
撤销回退 ❌(设计如此,见下)

安装

要求:DSH >=0.2.1-rc.2 <0.3.0-0,Node 22+。

# 方式一:直接从 GitHub 装(推荐)
dsh plugin --profile desktop add "github:280832849/dsh-rewind-lite"

# 方式二:本地打包安装
npm install && npm run build && npm pack
dsh plugin --profile desktop add "file:$PWD/dsh-rewind-lite-0.4.0.tgz"

装完重启 DSH(宿主半侧在新的 boot 组装时加载),再刷新页面(客户端半侧)。

卸载:

dsh plugin --profile desktop remove dsh-rewind-lite

> 若 dsh plugin add 报 ERR_PNPM_UNEXPECTED_STORE(profile 的 node_modules 与 dsh 转发的 pnpm 版本不一致),用同版本 pnpm 包一层再执行:
> PATH=:$PATH dsh plugin --profile desktop add …。

使用

  1. 输入 /rewind(或 /undo)→ 弹出候选列表(最新的在前)。
  2. 选一条 → 回退执行:模型上下文截断到这条消息之前,界面隐藏这条及其之后的行,原提示词回到输入框。
  3. 修改后直接发送。

也可以手输 /rewind @123 直接指定目标(seq 见候选列表),效果相同。

文件快照(v0.4.0)

  • 写前备份:write / edit 工具执行前把原文件按字节暂存,执行成功后按「最近一条用户消息 seq」锚点提交。
  • 回退还原:回退到 N 时,每个文件取「锚点 >= N 的最早一条」——N 之后第一次被改之前的状态;当时不存在的文件(= N 之后新建的)直接删掉。
  • 存储:/rewind-lite-snapshots///(只留最新几组,不自动清理,体积很小)。
  • 安全:只还原记录过、且落在会话工作目录内的普通文件;符号链接、超 5MB 的文件不备份也不还原;写回用「同目录临时文件 + rename」保持原子性。
  • 不备份:子代理会话的写操作;插件加载之前发生的改动(没有备份可用)。

原理(一句话版)

回退 = 往会话日志追加一条 user/message 标记,带 surfaceOp: {op:'replace', startSeq, endSeq} 覆盖「目标消息及其之后的所有表面节点」。DSH 重放日志时,模型可见表面自动从目标处截断;日志本身一个事件都不动。

客户端另算一遍:扫描持久化的 command 节点(@seq + outcome.sourceEventSeq)得到撤回区间,把落在区间里的 DOM 行隐藏。

已知限制

  • 回退不可撤销:想恢复只能重新发消息;被撤内容仍在日志里,但界面上没有一键恢复。
  • 文件不还原:AI 已经改过的文件不会跟着回退(P2)。
  • 目标消息被压缩(compaction)遮蔽后不能再回退到它——模型上下文已经到不了那里。
  • 回退标记会短暂出现在模型上下文里(内容为 (已回退,等待重新发送)),用户重发后与新消息并存,属正常现象。
  • 「对话+文件」会覆盖你在 AI 之后又手动改过的文件——这是还原的定义,介意就只选「只回退对话」。
  • 文件备份从插件加载后开始记录;插件装上之前的改动没有备份,无法还原。

维护须知

唯一脆弱点:客户端 DOM 约定

客户端依赖 harness 内部属性定位聊天行与输入框:

选择器 用途
[data-chat-anchor-key] / [data-chat-node-key] 聊天行 → 快照节点 → anchorSeq(判断是否隐藏)
[data-composer-input] 输入框 DOM 兜底回填

这些属性随 UI 升级可能改名。DSH 大版本升级后第一件事:在浏览器里确认这两类属性还在;不在就改 src/client/index.js 里的选择器与 applyHidden() 的解析逻辑。

其它升级适配点

  1. session.snapshotEvents() 已被标记 deprecated —— 若某次升级删掉它,改用新的只读事件读取 API(src/host.js 的两处调用)。
  2. surfaceOp 的 replace 语义与 sourceEventSeqs 完整性校验 —— 若语义变化,src/marker.js + src/host.js 的 append 调用要跟着改。
  3. uiConversation 服务的 binding().target('chat') 视图名与 conversation.input.for(scope).setDraft —— 若改名,改 src/client/index.js 的 chatOf / setComposerText。
  4. commandUi.decorate 的 popupSelect 契约 —— 若变化,退化成「裸命令只列候选、手输 @seq 执行」。

改动流程

npm run build      # esbuild:宿主 ESM + 客户端 __ModuleLoader__ 闭包
npm test           # 34 个离线测试(真 SDK 建会话 + 纯逻辑 + 宿主命令面)
npm pack           # 出 tgz,供 dsh plugin add

升版本前必须先跑测试:test/session.test.mjs 用真的 @deepseek-ai/dsh-session 验证「追加标记 = 表面截断」,这个测试挂了就说明 SDK 语义变了,插件必须改,不能硬装。

致谢

思路与兼容性经验来自 SiriLee/dsh-rewind(MIT):本项目的回退语义、客户端隐藏行与输入框回填的做法与其一致,代码为独立实现,只保留「就地回退 + 轻量文件快照」这一件事。

License

MIT

常见问题

6 问
答案由本站依据条目字段整理,不引用上游原文
dsh-rewind-lite 怎么安装?

在 DSH 里执行 `dsh plugin --profile web add github:280832849/dsh-rewind-lite` 即可。

dsh-rewind-lite 的验证等级是什么意思?

L5 · 运行验证通过。在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来

dsh-rewind-lite 安全吗?

低风险。

dsh-rewind-lite 装之前要先确认什么?

先看它会读写哪些文件、执行哪些命令、连接哪些网络地址;验证等级只说明装得上、跑得起来,不等于安全。涉及密钥或系统权限的,建议先在隔离环境试装。

dsh-rewind-lite 用的是什么许可证?

上游标注为 MIT。商用或二次分发前请到仓库确认许可证原文。

这条记录的数据可靠吗?

本站按仓库名去重后合并整理,字段以作者仓库与 npm 元数据为准;安装命令、仓库地址与 README 保持原文,带 L4 / L5 标记的安装命令已在隔离沙盒里真实跑通。

模型与账号接入
按星标排序,可作替代方案

archify

archify

从仓库或系统描述生成经过校验的自包含交互式架构图、流程图、时序图、数据流图和生命周期图。

L4 · 沙盒安装通过 8.0 万 星

nocobase

nocobase

L3 · 安装规范通过 2.5 万 星

dsh-our-free-model

dsh-our-free-model

为 DeepSeek Harness 挂载免登录、免 API Key 的免费前沿模型通道,装完即用,并附用量看板与 OpenAI 兼容本地转

未标注验证等级 8,064 星

dsh-purge

dsh-purge

dsh-purge 是一款 DeepSeek Harness 设置插件,可修改默认副本、权限策略和工具限制,并添加规则卡片以分组应用补丁,支

L5 · 运行验证通过 4,573 星

插件的元信息来自作者仓库;分类、验证等级与安全结论的中文说明为中文整理,最近核验 —。