QinLuza/dsh-rollback-visual

QinLuza★ 1TypeScript最后同步: 2026-08-15

在 GitHub 打开

Visual plugin for dsh /rollback: trajectory anchor badges with click-to-rollback. Data layer ready; native-node rendering planned.

README 摘要

dsh-rollback-visual DeepSeek Harness 会话回滚( /rollback )仓库: 后端三件套 (fork 子会话回滚,已可用)。前端可视化已放弃(DOM 注入方案有根本问题),踩坑记录见 docs/踩过的雷.md。 功能 回滚 = 在会话事件日志里选一个边界 seq,fork 出一个子会话—— 源会话历史不变 ,子会话从边界处开始新时间线。 - checkpoint 锚点 :每轮(turn)结束自动追加一条 rollback/checkpoint 事件(记录 turn 号 + 边界 seq,可用 checkpoints: false 配置关闭),供人按"第几轮"回退,不用记 seq。 - fork 回滚 :通过边界派生子会话,源会话留下成对的 rollback/start → rollback/end 事务标记(成功、失败都闭合,无悬空括号),全部落盘可重放。 - 边界验证 :非法边界一律拒绝——越界、落在 open turn 内、落在 compaction 区间内、agent 忙碌(busy)、信号中止(cancelled)。 如何使用(CLI) 在 GUI 输入框输入(或 CLI 环境执行): 命令 作用 /rollback 显示用法 + 当前会话所有 checkpoint 锚点列表 /rollback checkpoint 回退到 最近 一个锚点 /rollback checkpoint: 回退到指定 turn 的锚点 /rollback 精确回退到指定事件 seq(高级用法,易错) 示例: 成功后:新子会话已生成,在会话列表切过去继续;源会话保留原样,可随时切回。 注意 : - 回滚只 fork 会话历史, 工作区 / 沙箱文件不会回退 ; - 回滚必须在轮次之间进行(agent 空闲、边界落在 turn 结束处); - 失败时会返回人类可读原因: busy (忙碌)、 boundary (非法边界)、 cancelled 、 persistence 。 前端可视化(已放弃) DOM 注入渲染方案已放弃,不再重构。数据层( src/client/anchors.ts 的 conversationEvents/conversationViews 定义)写对了、可复用;渲染层(MutationObserver 钉 DOM)判死刑。完整踩坑记录与根因见 docs/踩过的雷.md。 重做前端时的路线图(供参考) - [ ] 饼 1:原生节点重构 。把渲染层从 DOM 注入换成轨迹原生节点:改 trajectory 源码,在渲染器的 kind 分发链里加 rollback-anchor / rollback-bracket 两个分支,锚点成为轨迹的一等公民(跟布局、折叠、tooltip 走),数据层照抄本仓库 anchors.…

在 GitHub 查看完整 README →
终端/TUIdeepseek-harnessdsh-pluginrollbackagent

分类