编辑历史消息并从该回合重新分支执行
31.3/100
综合分
3
GitHub 星标
66
npm 周下载
—/5
用户评分
数据截至 2026/9/19 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add dsh-turn-forknpm 源 · dsh-turn-fork 的发布者账号已校验与本仓库一致
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
是什么
dsh 原生插件 · skill
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 54 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✓npm 包dsh-turn-fork @ 0.1.4
✓Node 引擎要求 >=22 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/12 01:48:42
安全扫描自动 · 静态分析源码v2.7.0🟢 扫描:未发现敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。
发起外部网络请求
查看扫描证据(共 3 处,展示前 3 条)
- 发起网络请求client.js:388
const response = await fetch(`${TURN_FORK_PATH}?sessionId=${encodeURIComponent(this.sessionId)}`, { - 发起网络请求client.js:457
const response = await fetch(TURN_FORK_PATH, { - 发起网络请求client.js:493
const response = await fetch(TURN_FORK_PATH, {
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-agent@deepseek-ai/dsh-agent-presets@deepseek-ai/dsh-client-locale@deepseek-ai/dsh-client-runtime@deepseek-ai/dsh-client-ui-conversation@deepseek-ai/dsh-client-ui-slots@deepseek-ai/dsh-host-webserver@deepseek-ai/dsh-llm@deepseek-ai/dsh-session@deepseek-ai/dsh-session-persistence@deepseek-ai/dsh-session-persistence-jsonl给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 编辑历史消息
- 从回合重新分支执行
- 版本树导航
为 DeepSeek Harness 会话提供按轮原子化的消息编辑、重试、重roll 和版本树导航——dsh-message-edit 的重启安全继任者
README
由 DeepSeek 最新模型翻译生成dsh-turn-fork
为 DeepSeek Harness 会话提供回合级(turn-atomic)的消息编辑、重试、重新生成与版本树导航。
- 编辑任意已落定的用户消息,并从该回合重新分支执行(后续回合 截断 或 保留)。
- 重试任意历史回合;重新生成最后一轮的回复。
- 版本树 Timeline + 跨分支撤销/重做导航。
- 分支日志在 dsh 进程重启后仍可读取——这正是社区插件 dsh-message-edit 未通过的 P0 耐久性保证(见下文)。
- 只使用官方插槽:Timeline 标签页、会话头部操作、每条助手消息的操作区。
无 DOM 注入、无文本猜测定位。
- 通过 dsh-client-locale 接入的中英双语界面。
安装
dsh plugin add dsh-turn-fork
重启 dsh 后生效。插件会注册一个 回合分支(Turn Fork) 标签页(位于 Trajectory 与 Prompt Studio 之间)、会话头部的撤销/重做/重新生成按钮,以及每条已落定助手消息上的重试/重新生成按钮。
为什么会有这个插件
dsh-message-edit(v0.2.3)存在一个 P0 致命缺陷:其持久化溯源事件 message-edit/version 没有 ignorable 标记。
展开完整文档(README 剩余 1 节)
dsh-turn-fork
为 DeepSeek Harness 会话提供回合级(turn-atomic)的消息编辑、重试、重新生成与版本树导航。
- 编辑任意已落定的用户消息,并从该回合重新分支执行(后续回合 截断 或 保留)。
- 重试任意历史回合;重新生成最后一轮的回复。
- 版本树 Timeline + 跨分支撤销/重做导航。
- 分支日志在 dsh 进程重启后仍可读取——这正是社区插件 dsh-message-edit 未通过的 P0 耐久性保证(见下文)。
- 只使用官方插槽:Timeline 标签页、会话头部操作、每条助手消息的操作区。
无 DOM 注入、无文本猜测定位。
- 通过 dsh-client-locale 接入的中英双语界面。
安装
dsh plugin add dsh-turn-fork
重启 dsh 后生效。插件会注册一个 回合分支(Turn Fork) 标签页(位于 Trajectory 与 Prompt Studio 之间)、会话头部的撤销/重做/重新生成按钮,以及每条已落定助手消息上的重试/重新生成按钮。
为什么会有这个插件
dsh-message-edit(v0.2.3)存在一个 P0 致命缺陷:其持久化溯源事件 message-edit/version 没有 ignorable 标记。live 写盘路径照单全收,但 dsh 重启后持久层的冷读词汇表守卫(assertEventsSupported)会以 SessionFormatUnsupportedError 拒绝整条日志——所有分支会话集体打不开。
复现与回归见 tests/p0-persistence.test.mjs(live 写入 OK → 重启 → 冷读 REJECTED;补上 ignorable → 重启 → 冷读 PASS),测试直接驱动真实的 dsh-session + dsh-session-persistence-jsonl,并在全新子进程中完成"重启"。
本插件同时修复了评审发现的设计遗漏:
| 缺陷 | 本插件做法 |
| 自定义事件必须 ignorable: true | turn-fork/version 一律 ignorable,且带 schemaVersion 供未来迁移 |
| HTTP 路由无信任围栏(CSRF / DNS 重绑定、烧 token) | Origin/Host 回环围栏 + content-type 校验 + 64 KiB body 上限 |
| 用 DOM 文本猜测定位消息 | 仅官方插槽(conversation.view、conversation.session.header.actions、conversation.chat.assistant-actions) |
| 分支丢失 reasoningEffort 等配置 | provider/model/maxTokens 取自最后一条 request/header;reasoningEffort 与 adapterDefaults 随 seed 内继承的 header 原样传递 |
| 重放时 steering 插话丢失 | 回合内全部用户输入按序保留并重放 |
| 编辑助手回复伪造 source: {kind:'model'} 且丢工具链 | 不支持(诚实的能力边界,见下) |
| 撤销导航后旧分支仍在后台空转 | 显示运行中分支并提供显式"停止"控制 |
| preserve 一键重放 N 回合无确认 | 保存前展示成本提示与显式的级联选择 |
| 无测试、无 i18n | node:test 套件 + P0 回归 + dsh-testkit 生命周期门禁;中英词典 |
使用
- 编辑用户消息——打开 回合分支 标签页,选中一条消息,改好文本,选择后续回合策略并保存。插件会从已落定前缀创建新分支会话并重跑该回合。
- 重试 / 重新生成——标签页内有逐回合按钮,助手消息上有逐条按钮,头部有针对最后一轮的重新生成按钮。
- 版本树——标签页列出每个分支及其操作摘要(原文 "…" → 改为 "…"),标注当前版本,支持撤销/重做导航与打开任意分支。正在运行的分支会显示警告和"停止"控制。
- 级联策略——截断 丢弃编辑回合之后的所有内容;保留 重放编辑后的回合及其后所有回合(每个重放输入成为独立回合,原同一回合内的输入保持顺序)。
编辑器会在确认前显示 保留 将重放多少个回合。
设计说明
- fork 语义。 官方 session.fork(atSeq) RPC 的切割包含锚定回合,无法表达"编辑第 N 回合并重跑它"。因此本插件使用官方 fork 内部所用的同一事务缝——ctx.agents.create——在目标回合之前切割 seed,写入官方血缘 meta (parentSession、seedLength、cwd、agentPreset),重挂载源会话的 preset,并在分支发布前完成持久化 flush。
- 工作区。 分支继承源会话的工作区挂载,语义与官方 fork 完全一致(重新 attach,不做文件系统快照)。重跑会改写文件的任务时,工作树会停留在新分支的状态;需要工作区状态回滚请配合快照类插件(如 dsh-checkpoint-rewind)。
- 分支删除 / GC。 平台目前没有会话删除 API,分支尚无法回收;版本树即对该谱系的如实披露。
- 从 dsh-message-edit 迁移。 坏格式写出的日志被持久层本身拒绝读取,任何读取方(包括本插件)都无法就地修复。Timeline 会检测这一拒绝并明确报错。升级前请先用官方导出流程留存旧会话,或等待 upstream 修复。
HTTP 信任围栏
宿主路由 /turn-fork 挂在 dsh web server 上,后者本身不做任何来源检查。
每个请求都必须通过插件围栏:浏览器 Origin 必须是
http(s)://localhost|127.0.0.1|[::1] 且端口与服务器监听端口一致(仅当服务器
监听 0.0.0.0、即运维显式选择对外暴露时放宽);无 Origin 的请求必须携带回环 Host。POST 请求体必须是 application/json 且不超过 64 KiB。
开发
npm install
npm run build # tsc 类型检查 + tsdown 宿主/客户端打包
npm test # 构建 + node:test(core、lineage、P0 持久化回归)
测试
- tests/p0-persistence.test.mjs —— P0 回归:用本插件真实的 fork seed 构建路径,经真实 dsh-session 存储与 dsh-session-persistence-jsonl 后端写盘,再由全新子进程冷读(即"重启")。阴性对照证明:去掉标记的同一份日志会被守卫拒绝。
- tests/core.test.mjs —— steering 保真、计划边界、seed 构造、模型配置推导、信任围栏矩阵、body 上限、操作解码。
- tests/lineage.test.mjs —— 版本投影、撤销/重做栈、运行中标记。
- dsh-testkit.yaml —— 真实宿主生命周期门禁(安装 → 启动 → 注册 → 卸载 → 重启 → 残留检查),基于社区 dsh-testkit,并生成 .github/workflows/dsh-lifecycle.yml CI 工作流。
Testkit 说明
dsh-test --suite full 在 --runner local 下会报告 flaky:每次尝试的所有阶段都以完全一致的断言通过,但重复性摘要包含按尝试隔离的绝对路径与时间戳,它们天然互不相同(默认的 Docker runner 下运行根路径稳定,不受影响)。quick 套件是此处的权威生命周期门禁;CI 工作流在 Docker 下运行它。
许可证
MIT。scripts/dsh-client-preset.ts 中的客户端打包预设来自 DeepSeek Harness 仓库(MIT, © DeepSeek)。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
ruby1304/dsh-turn-fork
编辑历史消息并从该回合重新分支执行
相关插件 · 技能 / 提示词
人设统管ZiChuanLan/agent-purge
一份人设,统一管理多个 coding agent。
★ 1,141已汉化DSH
74.1
人物画像蒸馏titanwings/distilly
Distilly — 把他们的思考方式提炼成可复用的技能,供任何智能体或机器人使用。原名 Colleague Skill(原同事 Skill)。
★ 25,659已汉化DSH
71.3
推理工作空间套件Tiger3807861189/J-Space-Cognition-Suite
J-Space 是面向复杂推理、大型仓库工程、子代理协作与授权安全分析的推理时工作空间和控制套件。
★ 2,957已汉化DSH
70.5
两阶段工具锚定预设xiaobright/dsh-anchored-standard
实验性 DeepSeek Harness agent preset…
★ 3,742已汉化DSH
70.1
智能体工作流编排nrslib/takt
不再日夜盯着 AI 编码智能体。
★ 1,402已汉化DSH
70
Agent 运行时手册Electricitysheep/dsh-handbook
DeepSeek Harness dsh 从 0 到 1 深度手册:安装/插件开发/性能调优/实测案例/同模型多…
★ 827已汉化DSH
68.7
这是你的仓库?认领条目