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

消息撤回重编辑 Renzic-Stone/DSH-EasyRewrite

DeepSeek Harnessv2.6.0
Renzic-Stone39 天前有提交已提供中文文档扫描:含敏感能力

dsh deepseek-harness 撤回 气泡编辑 重编辑 版本翻页器 i18n 多语言

59.4/100
综合分
116
GitHub 星标
711
npm 周下载
—/5
用户评分

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

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add dsh-easyrewrite
npm 源 · dsh-easyrewrite 的发布者账号已校验与本仓库一致

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · market
装得上吗
本站已在 dsh 0.2.1-rc.2 下真实安装成功
非静态推断
L5 · 运行时冒烟等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 39 天前
档位由哪些信号合成

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

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过
展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✓npm 包dsh-easyrewrite @ 2.6.0
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/29 17:41:30

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

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

可执行外部命令读写/删除本地文件写入剪贴板(不计风险)发起外部网络请求
查看扫描证据(共 92 处,展示前 28 条)
  • 写入本地文件
    lib/index.js:46
    await mkdir(dirname(file), { recursive: true });
  • 写入本地文件
    lib/index.js:53
    await appendFile(file, content, 'utf8');
  • 读取本地文件
    lib/index.js:162
    const raw = await readFile(pkgPath, 'utf8');
  • 读取本地文件
    lib/index.js:184
    const p = JSON.parse(await readFile(c, "utf8"));
  • 请求外部主机registry.npmjs.org
    lib/index.js:193
    const resp = await fetch('https://registry.npmjs.org/dsh-easyrewrite/latest', {
  • 发起网络请求
    lib/index.js:193
    const resp = await fetch('https://registry.npmjs.org/dsh-easyrewrite/latest', {
  • 读取本地文件
    lib/index.js:210
    const raw = await readFile(pkgPath, 'utf8');
  • 读取本地文件
    lib/index.js:218
    try { return await readdir(dir); } catch (e) { return []; }
  • 读取本地文件
    lib/index.js:329
    const raw = await readFile(cfgPath, 'utf8');
  • 写入本地文件
    lib/index.js:341
    await mkdir(dirname(cfgPath), { recursive: true });
  • 写入本地文件
    lib/index.js:346
    await writeFile(cfgPath, JSON.stringify(data, null, 2), 'utf8');
  • 读取本地文件
    lib/index.js:360
    const files = await readdir(dir);
  • 写入本地文件
    lib/index.js:413
    try { await writeFile(manifestPath, JSON.stringify(m, null, 2), 'utf8'); } catch (eW) {}
  • 写入本地文件
    lib/index.js:561
    try { await writeFile(manifestPath, JSON.stringify(manifest, null, 2), 'utf8'); } catch (eW) {}
  • 删除本地文件递归
    lib/index.js:960
    await rm(phys.sessionDir, { recursive: true, force: true });
  • 删除本地文件递归
    lib/index.js:1190
    try { await rm(phys.sessionDir, { recursive: true, force: true }); } catch (eRm) {}
  • 删除本地文件递归
    lib/index.js:1197
    try { await rm(phys.sessionDir, { recursive: true, force: true }); } catch (eRm) {}
  • 删除本地文件递归
    lib/index.js:1268
    try { await rm(single.sessionDir, { recursive: true, force: true }); } catch (eRm) {}
  • 删除本地文件递归
    lib/index.js:1316
    await rm(verMember.sessionDir, { recursive: true, force: true });
  • 删除本地文件
    lib/index.js:1542
    await rm(backupPath(sessionId), { force: true });
  • 执行外部命令固定命令
    lib/index.js:1670
    execFile('pnpm', ['up', 'dsh-easyrewrite'], { cwd: profileDir, timeout: 90000, windowsHide: true }, (err, stdout, stderr) => {
  • 发起网络请求
    lib/client.js:77
    fetch("/bubble/log", {
  • 发起网络请求
    lib/client.js:261
    var dResp = await fetch(directUrl);
  • 发起网络请求
    lib/client.js:315
    var resp = await fetch(url);
  • 发起网络请求
    lib/client.js:328
    var rawResp = await fetch("/bubble/attachment/raw", {
  • 发起网络请求
    lib/client.js:1142
    const r = await fetch("/bubble/vault/families", {
  • 发起网络请求
    lib/client.js:1209
    (sid) => fetch("/bubble/vault/list", {
  • 写入剪贴板
    lib/client.js:2189
    navigator.clipboard.writeText(text).then(done, function() {
扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包
涉及外部主机:registry.npmjs.org

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

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

界面预览

6 张 · 点击查看大图

功能亮点

  • 消息撤回
  • 消息重编辑
  • 多语言支持
展开完整介绍(293 字)↓

DSH Web内目前最无感的消息撤回、重编辑插件,原版体验,兼容性强,功能简单可开关,设置丰富,现代化轻量ui框架。The most seamless message recall & re-edit plugin for DSH Web — native experience, strong compatibility, simple toggles, rich settings, modern lightweight UI. DSH Web で最もシームレスなメッセージ撤回・再編集プラグイン——ネイティブ体験、高い互換性、シンプルなトグル、充実した設定、モダンで軽量な UI。

v3.0.02026-11-03
· 🚀 EasyRewrite v3.0.0 — 影子仓储全面降临 · 附件全域无损流转 · 彻底告别侧栏污染 各位 DSH 用户与开发者朋友们,见字如面! · 🙇‍♂️ 开头必须先道个歉:对不起,我拖更了一个月! 距离上次发布过去了整整一个多月,期间不少朋友在 Issue 和讨论区催更:“作者是不是弃坑了?”、“侧边栏归档什么时候能彻底理干净呀?”…… 在此郑重向大家道歉!😭 这一个月真不是在摸鱼,而是我们发现要彻底解决“撤回污染侧栏”、“跨会话图文混排丢失”以及“多版本历史混乱”这些底层痛点,修修补补已经不够用了——我们干脆把底层架构彻底掀翻重构了一遍,闭门憋出了这个里程碑大版本:v3.0.0 完全体! --- · 🌟 重大重构 & 核心新特性 · 1. 【核心突破】全新 EasyRewrite 影子仓储(Vault)机制,彻底终结侧边栏归档污染 · 影子仓储自治管理:自研 EasyRewrited_Sessions 独立影子仓储引擎,撤回与重编辑产生的多版本会话不再占用 DSH 官方侧栏; · 用户主动归档保护:严格区分用户手动归档与插件历史版本,在设置面板中提供「智能清理遗留插件归档」功能,一键恢复侧边栏清爽; · 历史版本家族全面打通:在会话顶部 版本翻页器的基础上,于设置页提供完整的「历史版本家族」导航,支持实时查看版本快照、一键恢复与任意版本间平滑切换; · 中文真实标题深度解析:自动从历史快照帧中提取真实会话标题并固化写回,彻底杜绝历史版本列表出现原始 session-uuid 裸 ID; · 血统去重过滤:基于 clonedFrom 继承关系自动剔除演进链条上的冗余前代快照,只展示最新最完整的核心家族。 · 2. 【富媒体生态】通用文件卡片与多附件全域无损流转(单图/多图/文档 100% 完美接力) · 官方同款 FileCard:气泡编辑态与对话流中全面引入通用文件卡片(TXT、PDF、代码等各类文档),支持自由拖拽流转并防止文本误选; · 撤回与输入框严格隔离:彻底解决下方输入框有草稿或文件时点击撤回上方消息导致图文混乱合并的缺陷,实现双向独立隔离,发送后原底部草稿无损自动复原; · 跨会话附件重建:在撤回与气泡重发过程中,图片与各类通用文件附件跨会话 100% 完整保留与无损重建; · 消息预览大小自由切换:设置页新增「消息预览大小」切换(默认紧凑“小”方框,亦支持“放大”模式等比展开)。 · 3. 【工程重构】现代化模块架构与 esbuild 构建管线 · 全面拆分客户端单体文件为规范的 src/ 模块结构,通过 build.mjs(esbuild)实现秒级自动化打包与类型安全校验; · 覆盖率完备的自动化测试套件(14 项社区专项集成测试 + 影子仓储全链路测试),确保零回归。 · 4. 【交互细节 & 体验打磨】 · 视觉语言深度对齐:Dropzone 拖拽释放区域蓝框提示、推理档位蓝框药丸胶囊 Badge、极短消息编辑安全宽度防溢出; · 性能与稳定性:客户端高频日志限频节流机制、纯图气泡空气泡消除、全生命周期发送防穿透锁; · 生态与国际化:插件图标全自动适配深浅色主题,中/英/日(zh/en/ja)三语词条同步补充完整。 --- · English Summary · EasyRewrite Vault Engine: Independent shadow vault (EasyRewrited_Sessions) to store multi-version session snapshots without polluting the official DSH sidebar with archived sessions. · Universal Attachment Seamless Relay: Full support for DSH 0.1.7~0.2.x image and document (FileCard) drag-and-drop, recall reconstruction, and strict isolation with input bar drafts. · Session History Family Tree: Interactive version lineage navigation in settings page, supporting one-click rollback, real session title auto-resolution, and lineage deduping. · Modern Modular Architecture: Split into ES modules in src/ with
v2.6.02026-09-25
· [2.6.0] — 全面适配 DSH 0.1.7(图标新命名字重兼容 · 设置卡片改挂 plugins.row.config · 翻页器安全打开降级) · 破坏性适配 & 核心修复 · 【核心适配】全面兼容 DSH 0.1.7(解决 PR #12,特别鸣谢 @StoneFancyX 极具前瞻性的严谨适配与核查!): - 图标导出名重命名自适应(尺寸改字重): - DSH 0.1.7 将核心 UI 图标的导出命名规则从数字尺寸(如 IconCheckOutline16)重构为字重规范(如 IconCheckOutlineRegular); - 实现 pickIcon() 兼容选择器,依次匹配旧名与新名,并在未匹配时自动降级为空组件,彻底杜绝新版本解析为 undefined 导致 React #130 抛错并拖垮整个气泡槽条目的问题。 - 插件设置页全新插槽改造与视图分流(plugins.row.config): - DSH 0.1.7 正式移除旧版 settings.plugin.item,重构为侧边栏独立插件管理页。本插件改挂第三方专属插槽 plugins.row.config(key 为 dsh-easyrewrite#dsh-easyrewrite),由 DSH 原生提供 Configure 控件打开行详情页,规范优雅且杜绝混入官方分组; - 严格遵循官方组件契约,按 props.view(summary / page)分流渲染,外壳由页面托管,消除表单在列表中的嵌套与重复折叠。 - 版本翻页器与跨版本会话切换安全降级(解决 0.1.7 下 ctx.sessions.open is not a function 异常): - DSH 0.1.7 将打开会话接口从 ctx.sessions.open 正式迁移为 uiWorkspace.openSession; - 统一实现 invokeOpenSession 跨版本调度函数,优先通过 ctx.get("uiWorkspace").openSession 打开会话,并平滑回退至老版本 ctx.sessions.open; - 翻页器版本切换 goToVersion 全面接入 safeOpenSession 多通道安全降级网,并在 0.1.7 下通过 retainedBy.mainView 精准识别激活会话,杜绝历史版本切换时抛错或静默归档超时。 - 版本兼容上限标称推高: - 将插件内部已验证上限常量 MAX_TESTED_DSH_VERSION 同步推高至 0.1.7-rc.2,消除在 0.1.5~0.1.7 区间内设置卡片误报“较新,适配评估中”的提示。 · 致谢 · ❤️ 特别感谢 @StoneFancyX 提交的高质量 PR #12 以及详尽严密的 0.1.7 接口核查文档,为本次 0.1.7 的平滑适配奠定了最坚实的基础!
v2.5.52026-09-20
· 改进 & 兼容性 · 【生态兼容】气泡节点补充类名,完美兼容第三方批注插件(解决 Issue #11) · 为用户自绘气泡 div 节点显式补充 className: "dsh-easyrewrite-bubble"(包含 bubble 关键字); · 彻底解决搭配 @changfenhuang/dsh-annotation(批注插件)使用时,其 DOM 选择器 row.querySelector('[class*="bubble"]') 匹配落空导致原始批注块无法折叠隐藏的问题,实现批注块优雅裁切与折叠。 · 【样式变量对齐】用户气泡与编辑框正文字号/行高接入官方 CSS 变量 · 将写死的 fontSize: "14px" 与 lineHeight: "22px" 替换为带默认回退的官方变量: - fontSize: "var(--dsh-content-font-size, 14px)" - lineHeight: "calc(22px + var(--dsh-content-font-delta, 0px))" · 同步应用于普通气泡(bubbleStyle)、撤回待定灰色气泡(grayBubbleStyle)以及气泡编辑框(taStyle),当用户在 DSH 设置中调整全局字号(如 17px)时,气泡能够等比平滑缩放,与助手回复完美对齐。 · 【1080p视觉守护】坚守原生协调比例,拒绝过度修改 · 严格保留精细调优的 borderRadius: "14px" 与 padding: "8px 14px",不盲从扩大气泡外形,坚决守护默认 1080p 分辨率下的紧凑节奏与优雅视觉美感。 · 致谢 ❤️ 特别感谢 @SDUTNB 在多插件真实生产环境(高字号 + 批注插件协同)下的详尽反馈与精准定位!
数据来自仓库的 GitHub Release,可能与插件实际版本不一致。

README

由 DeepSeek 最新模型翻译生成
DSH-EasyRewrite #dsh #deepseek-harness #撤回 #气泡编辑 #重编辑 #版本翻页器 #i18n #多语言 在 DeepSeek Harness Web 里使用撤回键和气泡编辑功能轻松编辑已发出的消息——轻量、原版风格、惰性、无痕、数据任何情况下0丢失。保护您修改过程中的每一份灵感。 单击自己的消息气泡即可原位编辑;点击复制键旁的撤回键可撤回该消息及其后的全部内容。一切修改都发生在你真正确认之后——在按下「确定」(编辑)或「发送」(撤回)之前,对话、模型上下文、会话日志纹丝不动。 兼容 DeepSeek Harness Web(v2.6.0 全面适配 dsh 0.1.7-rc.1+ 与 0.1.2-rc.1+ 双代版本;0.1.1-rc.2 及更早宿主用户请停留 2.3.1——该线最终版,功能完整可用,仅不再追加新功能)。纯官方扩展点实现,不改 DSH 源码。
展开完整文档(README 剩余 1 节)
DSH-EasyRewrite

#dsh #deepseek-harness #撤回 #气泡编辑 #重编辑 #版本翻页器 #i18n #多语言

在 DeepSeek Harness Web 里使用撤回键和气泡编辑功能轻松编辑已发出的消息——轻量、原版风格、惰性、无痕、数据任何情况下0丢失。保护您修改过程中的每一份灵感。

单击自己的消息气泡即可原位编辑;点击复制键旁的撤回键可撤回该消息及其后的全部内容。一切修改都发生在你真正确认之后——在按下「确定」(编辑)或「发送」(撤回)之前,对话、模型上下文、会话日志纹丝不动。

兼容 DeepSeek Harness Web(v2.6.0 全面适配 dsh 0.1.7-rc.1+ 与 0.1.2-rc.1+ 双代版本;0.1.1-rc.2 及更早宿主用户请停留 2.3.1——该线最终版,功能完整可用,仅不再追加新功能)。纯官方扩展点实现,不改 DSH 源码。

📸 界面一览 / Visual Tour

✨ 独创双区拖拽与协同舒展:气泡编辑拖入文件智能分流(释放到上方气泡添加至正在编辑的消息,释放到底部 2.5x 平滑放大的输入框暂存新对话,双区隔离零串发)

快速开始

npm一键安装
dsh plugin --profile web add dsh-easyrewrite

已实现功能

气泡原位编辑(Rewrite)——已实现(M2/M4)

- 点击即改:单击自己的消息气泡直接进入原位编辑态(保留原始 Markdown 原文),Esc 取消 / Ctrl+Enter 确定。
- 三档编辑宽度:紧凑(气泡原宽起步,上限 360px)/ 标准(固定 360px)/ 扩展(顶满消息行)/ 自定义,自动增高并支持内部平滑滚动。
- 模型与推理等级就地切换:编辑框内原生集成模型选择下拉菜单,可直接切换当前消息的重发模型与推理深度(Reasoning Effort)。
- 图片消息完整编辑与拖拽增删:多图消息等宽缩略行排布,支持独立 × 删除、剪贴板粘贴与拖入新增,刷新后编辑进度原样恢复。

撤回(Recall)——端到端完成

- 操作无感原生:每条用户消息的官方复制键旁常驻撤回键,鼠标悬停即现。
- 行内确认胶囊:dsh 官方同款极简灰白胶囊(撤回这条消息及其后 x 条提问? + 「确定/取消」),实时动态统计将撤回的问题数(0 条时显示「是否撤回这条消息?」)。
- 惰性提交与「正在修改」条:点击确认仅将草稿回填到底部输入框,顶部弹出「正在修改」标签条;真正截断仅在按下「发送」时执行,中途点击 × 取消随时恢复原草稿,会话与上下文纹丝不动。
- 无痕替换与后续折叠:编辑态或撤回态下自动折叠隐藏目标消息之后的所有历史回复;重发后原会话自动归档,同名新会话无缝顶替,体验如原生编辑。

版本翻页器(< X >)——已实现(M3)

- 多版本无缝切换:每次撤回或编辑重发后,该次问询最后回答的操作区自动嵌入 ‹ X/N › 原生风格翻页器。
- 上下文联动:点击箭头(或键盘 ←/→)切换分支版本,后续整个上下文自动跟随版本变动刷新。
- 视口锚定与归档交换:切换时视口平滑锚定不跳位,列表始终只保留一个活动会话,全归档版本亦可在设置中随时恢复。

设置中心与个性化定制(Settings)——已实现(M3/M4)

- 官方同款折叠配置卡片:无缝融入 设置 → 插件 → EasyRewrite,界面语言随系统自动同步(中文 / English / 日本語)。
- 丰富细致的选项:
- 气泡框编辑总开关、关闭气泡编辑时备用撤回键
- 编辑宽度(紧凑 / 标准 / 扩展 / 自定义)
- 撤回确认胶囊开关、待定时查看原文显示图片、三种撤回视觉模式(简单 / 极简 / 信息)
- 快捷键录制(未聚焦输入框时一键撤回最近一条消息)
- 回填冲突模式(覆盖模式在发送/取消后完整恢复原输入草稿,零丢失)
- 版本历史树浏览与一键手动恢复
- 插件内置自更新检测与一键升级

草稿自动备份(Auto-backup)——已实现(M3)

- 待定草稿超过 10 秒未处理且有新变动时,自动覆盖备份到本地文件;「确定 / 发送」处理完成即安全删除。
- 备份位置:$DSH_HOME/dsh-easyrewrite/backups/<会话ID>.json。
- 恢复兜底:仅当本地没有待定状态时才从备份恢复——绝不覆盖正在编辑的草稿。

与同类插件的差异

| 能力 | dsh-easyrewrite | 其他撤回/编辑类插件 |
| 撤回(Recall) | ✅ | 基本功能 |
| 无痕替换(做到“仿佛原生支持”的感觉,无感修改重发) | ✅ | 基本功能,但我们做的更完善 |
| 惰性提交(确认后才真正修改 context,中途退出零改动) | ✅ | 部分竞品直接改动,导致各种缓存命中/context问题 |
| 气泡原位编辑(Rewrite) | ✅ | 目前市面竞品完全无同类功能 |
| 版本翻页器 < X >(切换历史版本,无数Chatbox验证过的黄金设计) | ✅ | 目前市面竞品完全无同类功能 |
| 草稿持久化 + 超时自动备份 + 异常恢复(完善的恢复逻辑,保护您的每一份思考结晶)| ✅ | 目前市面竞品完全无同类功能 |
| 编辑重发保留图片附件 | ✅ | 目前市面竞品完全无同类功能 |
| 纯官方扩展点(零源码补丁,卸载即还原) | ✅ | 竞品依赖源码补丁,卸载困难,依赖复杂 |
| 三语界面与 i18n 支持 | ✅ | 几乎没有完善的i18n支持,我们原生支持多语言和预设三语 |
| 全部功能可按需开关 | ✅ | 目前市面竞品完全没有比我们做得好的 |

设计哲学

1. 简单易用,易上手,兼容性好(Simple & Compatible)

- 交互直观到不需要说明书:点击气泡就编辑,复制键旁就撤回——不引入任何新概念、新入口。
- 默认即合理:默认设置就是大多数场景的最优解,装完即用,无需配置。
- 兼容性是硬承诺:只使用官方扩展点(keyed 槽覆盖、官方 fork RPC、官方组件与设计令牌),不碰源码、不依赖易碎内部 API;DSH 升级换代时主动适配,绝不拿"改了你的安装"换功能。
- 卸载即还原:不留配置残留、不改动任何官方文件。

2. 还原原版体验,无痕、无感(Faithful, Seamless & Invisible)

- 界面语言完全沿用 dsh 原生风格(灰蓝配色、圆角、胶囊、官方图标),深/浅主题自适应——像官方功能,不是"又一个插件皮肤"。
- 原有交互原样保留:复制键、hover 发送时间、气泡外观——一个都不少。
- 无感:日常使用几乎感觉不到插件的存在——该有的功能都在它该在的位置,按下去的结果就是直觉预期;不弹窗打扰、不打断节奏。
- 惰性提交是还原体验的根基:进入编辑、确认撤回都只是本地草稿态,context 只在「确定」(rewrite)或「发送」(recall)时真正修改——关掉 dsh,一切纹丝不动。
- 无痕替换:撤回之后,感知上就是"原对话被编辑了"——原会话归档、同名新会话顶替、修改后的文本自动发出,没有"冒出一个新对话"的割裂感。
- 气泡框编辑(即将上线):点击气泡即原位编辑、所见即所改——同一套无痕哲学的自然延伸。

3. 持久化保留,防手误零丢失(Persistent & Accident-proof)
- 编辑/撤回草稿按会话持久化:切对话、刷新页面、重启 dsh,进度原样接续,不存在「写一半没了」。
- 覆盖模式下,回填前的原草稿在发送/取消后都会恢复——任何操作路径都不丢数据。
- 待定草稿长时间未处理自动备份到本地文件(处理完成即删),极端情况也有兜底。
- 每一步关键操作都有确认与撤销路径:确认胶囊、× 取消、单待定约束——手误可撤回,数据不损失。

4. 完善日志体系(Log Everything, Diagnose Fast)

- 全链路打点:client 的每个关键步骤(加载、确认、pending、发送钩子、fork、resume)自动上报 host,统一写入 $DSH_HOME/dsh-easyrewrite.log。
- 统一格式(JSON 行:时间 / 级别 / 标签 / 消息 / 数据),一次复现即可定位,不用你反复描述问题。
- host 自身行为同样落盘(请求、拒绝原因、异常),前后端一条链路可对账。
- 日志只记录本地行为,不上传任何数据。

5. 持续更新,积极兼容(Keep Moving)

- 跟随 DSH 版本迭代(rc.x → 正式版),上游 API 变化第一时间适配。
- 语义化版本 + CHANGELOG,每次改动可追溯;破坏性变更提前声明。
- 社区驱动:issue / PR 积极响应,新点子、新场景持续并入路线图。

安装

npm 已发布(推荐)
dsh plugin --profile web add dsh-easyrewrite
或从 GitHub
dsh plugin --profile web add github:Renzic-Stone/DSH-EasyRewrite

重启 dsh web,页面 Ctrl+Shift+R 硬刷新即可。

撤回时机说明:DSH 的 fork 只能在闭合回合边界截断,未结束回合内的消息暂时无法撤回——等回复完成后即可。(界面会提示「该消息所在回合尚未结束…」)

调试

client 每一步都会上报 host 并写入统一日志:

$DSH_HOME/dsh-easyrewrite.log # 例如 ~/.dsh/dsh-easyrewrite.log

JSON 行格式:{ t, level, tag, message, data }。

项目结构

dsh-easyrewrite/
├── lib/index.js # host half:边界解析 + /bubble/recall、/bubble/log ├── src/client.src.js # client 模板(图标构建期内联) ├── assets/ # 撤回/编辑图标(PNG,深色模式 CSS invert 自适应) ├── build.mjs # assets → data-URL → lib/client.js ├── DESIGN.md # 完整交互设计(v1.0,20 项产品决策) ├── PROJECT_PLAN.md # 路线图、架构、git 工作流 └── docs/ # api-facts、m0-verify

License

MIT
预览分享卡片长什么样 ↓Renzic-Stone/DSH-EasyRewrite
分享 · DeepSeek Harness Hub
Renzic-Stone/DSH-EasyRewrite

dsh deepseek-harness 撤回 气泡编辑 重编辑 版本翻页器 i18n 多语言

回到顶部