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

回复改写器 kinggod899/dsh-reply-forge-v2

DeepSeek Harness
kinggod89918 天前有提交已提供中文文档扫描:含敏感能力

就地改写会话记录里的助手回复,让模型采信新版本

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

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

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

状态速览

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

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

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

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

读写/删除本地文件发起外部网络请求
查看扫描证据(共 15 处,展示前 15 条)
  • 发起网络请求
    .dsh-plugin/client.js:810
    const res = await fetch(ROUTE + '?sessionId=' + encodeURIComponent(sessionId))
  • 发起网络请求
    .dsh-plugin/client.js:915
    const res = await fetch('/api/reply-forge-v2/session/forge', {
  • 读取本地文件
    src/session-log.mjs:80
    entries = readdirSync(dir)
  • 读取本地文件
    src/session-log.mjs:120
    projects = readdirSync(sessionsRoot, { withFileTypes: true })
  • 读取本地文件
    src/session-log.mjs:145
    compressed = readFileSync(filePath)
  • 读取本地文件
    src/session-write.mjs:50
    const buf = readFileSync(file)
  • 读取本地文件
    src/session-write.mjs:216
    if (existsSync(file) === false) throw new Error('会话文件不存在:' + file)
  • 写入本地文件
    src/session-write.mjs:274
    copyFileSync(file, backup)
  • 读取本地文件
    src/session-write.mjs:275
    const bs = statSync(backup)
  • 写入本地文件
    src/session-write.mjs:279
    writeFileSync(tmp, rebuild(file, loaded, loaded.lines, strategy))
  • 写入本地文件
    src/session-write.mjs:282
    renameSync(tmp, file)
  • 写入本地文件
    src/session-write.mjs:291
    copyFileSync(backup, file)
  • 写入本地文件
    src/session-write.mjs:292
    try { if (existsSync(tmp)) renameSync(tmp, tmp + '.failed-' + stamp) } catch { }
  • 读取本地文件
    src/session-write.mjs:292
    try { if (existsSync(tmp)) renameSync(tmp, tmp + '.failed-' + stamp) } catch { }
  • 读取本地文件
    src/checkout.mjs:22
    if (existsSync(p)) return createRequire(p)
扫描于 2026/11/2(1 天前) · 范围 入口闭包 + 全包扫描 · 来源 GitHub 仓库

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

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

README

由 DeepSeek 最新模型翻译生成
dsh-reply-forge-v2 DSH 桌面端插件 v2:真伪造——改写的 AI 回复进入会话落盘记录,被大模型当作真实历史采信,且会话可继续对话。 与 v1(dsh-reply-forge,只做本机渲染层伪造)完全独立:独立仓库、独立插件 id、独立安装链路。v1 封版不再演进;v2 不是 v1 的功能升级,是另一条技术路线。 三大目标(验收标准) 1. dsh 桌面端加载不会崩溃——bundle 契约、注册 id、patch 插入全部合规;与 v1 可分别启用、互不踩踏; 2. 伪造回复会被大模型认同——改写内容进入会话上下文,下一轮请求模型读到的就是伪造历史(含签名降级通道处理); 3. 还能继续对话——改写后会话完整性不破坏:可正常打开、可继续流式输出、投影/状态机不错位,且可回滚。 当前状态(2026-10-15) v2.0 与 v2.2 已实现;v2.2.1 修复了两处真机 bug(会话 id 寻址 + 记录缓存过期),已安装进 desktop profile,等重启 DSH 生效。 设计与实证见 PLAN.md。
展开完整文档(README 剩余 1 节)
dsh-reply-forge-v2

DSH 桌面端插件 v2:真伪造——改写的 AI 回复进入会话落盘记录,被大模型当作真实历史采信,且会话可继续对话。

与 v1(dsh-reply-forge,只做本机渲染层伪造)完全独立:独立仓库、独立插件 id、独立安装链路。v1 封版不再演进;v2 不是 v1 的功能升级,是另一条技术路线。

三大目标(验收标准)

1. dsh 桌面端加载不会崩溃——bundle 契约、注册 id、patch 插入全部合规;与 v1 可分别启用、互不踩踏;
2. 伪造回复会被大模型认同——改写内容进入会话上下文,下一轮请求模型读到的就是伪造历史(含签名降级通道处理);
3. 还能继续对话——改写后会话完整性不破坏:可正常打开、可继续流式输出、投影/状态机不错位,且可回滚。

当前状态(2026-10-15)

v2.0 与 v2.2 已实现;v2.2.1 修复了两处真机 bug(会话 id 寻址 + 记录缓存过期),已安装进 desktop profile,等重启 DSH 生效。
设计与实证见 PLAN.md。

| 阶段 | 内容 | 状态 |
| v2.0 | 关闭态落盘改写器(CLI) | ✅ 实现完成,读取侧验收通过 |
| v2.0 | 真机重启后模型侧采信 | ✅ 用户实测通过(编辑内容被大模型认可) |
| v2.1 | 运行态写入(探针先行) | ⬜ 未开工 |
| v2.2 | UI 合一(dsh 插件形态) | ✅ 实现完成,已安装 |
| v2.2 | 真机重启后 UI 生效 | ✅ 用户实测可用(含两条回复的伪造) |
| v2.2.1 | 真机 bug 修复 | ✅ 已修(详见 PLAN §9.8),待重启验证 |

已落地的代码:

写入内核(纯 ESM、零依赖)

- src/session-log.mjs —— 只读层(多帧 zstd JSONL 解析、正文块收窄),从 v1 移植,自带多个真实会话的解析验证史;
- src/session-write.mjs —— 写入器核心:seq+块索引 / 指纹双寻址、 expectText 陈旧校验、剥签名、多帧重组、原子写、写后自读校验;
- src/checkout.mjs —— 会话副本检出的公共逻辑。

插件形态(v2.2)

- .dsh-plugin/index.mjs —— host half:只声明 inject: ['webServer'],
apply() 全程 try/catch,任何异常都不会拖垮宿主启动;
- .dsh-plugin/server/routes.mjs —— 两条 HTTP 路由:读块列表 / 执行写入。
写路由带自定义头校验、参数校验、超长拒绝,业务失败一律 200 + ok:false;
- .dsh-plugin/client/index.mjs —— client half:在每条助手回复下挂操作条,就地编辑器双出口(仅本机渲染 / 写入会话记录)。会话 id 取自宿主渲染的 data-conversation-session 属性——dsh 的 URL 里没有会话 id(见 PLAN §9.7);记录比页面旧时自动重读补定位,不让用户对着一句过时的「对不上」干瞪眼(§9.8);
- .dsh-plugin/client/record.mjs —— 磁盘记录访问层 + DOM↔磁盘两级匹配;
- .dsh-plugin/client/{picker,markdown,classify,store,styles}.mjs ——从 v1 移植的 UI 模块(前缀全部改为 rf2-,与 v1 严格隔离);
- .dsh-plugin/client.js —— 构建产物(由 scripts/build-client.mjs 内联)。

脚本

- scripts/forge-session.mjs —— v2.0 写入 CLI(含 --dry-run / --restore / --seq / --block-index / dsh 运行中拒绝写入);
- scripts/install.mjs / enable.mjs / disable.mjs / profile-lib.mjs ——安装 / 启用 / 关闭(只改静态配置,绝不跑 pnpm);
- scripts/build-client.mjs —— client half 内联构建器(--check 校验新鲜度);
- scripts/host-oracle.mjs —— 宿主预言机:用宿主自己的 dsh 起 slim host,直连 RPC 读回改写后的会话,双跑(伪造 vs 原始)有区分度;
- scripts/provider-oracle.mjs —— 照抄 App 真实启动配方起完整 desktop profile,读 provider 注册表(用于定位 13 渠道故障);
- scripts/session-anatomy.mjs —— 会话解剖 / 上下文预算体检(只读),回答「这个会话还能不能继续对话」;
- scripts/frame-anatomy.mjs —— 帧结构解剖辅助工具。

测试 73/73:session-log 11 + session-write 15 + session-anatomy 7 + client 23 + routes 15 + build 2。跑法:

for f in tests/*.test.mjs; do node "$f"; done

安装 / 启用 / 关闭

三个一键脚本(双击即可,不需要命令行):

| 文件 | 作用 |
| 安装插件.bat | 首次安装:建链接、写依赖、登记 lockfile、加入 bundles |
| 启用插件.bat | 已装但被关掉时,加回 bundles(不需要重新安装) |
| 关闭插件.bat | 停用:从 bundles 摘掉(保留链接与依赖,可秒开回来) |

三者都只修改 dsh 启动时读取的静态配置,不执行 pnpm。安装脚本默认会顺手把 v1 从 bundles 里摘掉(两个插件同时启用会挂出两条操作条),但保留 v1 的依赖与链接,v1 用它自己的 启用插件.bat 就能开回来。想两个都开: node scripts/install.mjs --keep-v1。

改完必须完全退出并重启 DSH 才生效。

与 v1 的关系

| | v1(dsh-reply-forge) | v2(本仓库) |
| 伪造层 | 浏览器渲染层(localStorage 覆盖) | 会话落盘记录(zstd JSONL) |
| 模型可见 | 否 | 是 |
| 落盘文件 | 一个字节都不碰 | 受控改写(带备份/回滚) |
| 适用 | 录屏/演示/截图 | 让模型采信伪造上下文 |

src/session-log.mjs 是从 v1 移植的只读层(多帧 zstd JSONL 解析、 assistant/message 文本块收窄),作为 v2 写入器的地基,自带多个真实会话的解析验证史。
预览分享卡片长什么样 ↓kinggod899/dsh-reply-forge-v2
分享 · DeepSeek Harness Hub
kinggod899/dsh-reply-forge-v2

就地改写会话记录里的助手回复,让模型采信新版本

这是你的仓库?认领条目

回到顶部