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

回复编辑分叉 Branwen050/dsh-pencil

DeepSeek Harness
Branwen0509 天前有提交已提供中文文档扫描:未发现敏感能力

修改助手回复内容,并从该回合分叉出新会话版本

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

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

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

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么[目录]—
dsh 原生插件 · other
暂无时间戳·判据 →
装得上吗[实装验证]—
本站尚未做安装检查
暂无时间戳·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/04·判据 →
还在维护吗[仓库]✓
活跃:最近一次提交在 9 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

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

验证判据与等级说明 →

可信度证据

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

静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。

发起外部网络请求
查看扫描证据(共 2 处,展示前 2 条)
  • 发起网络请求
    lib/client.js:83
    fetch(PENCIL_PATH + "?sessionId=" + encodeURIComponent(String(sessionId)), {
  • 发起网络请求
    lib/client.js:120
    fetch(PENCIL_PATH, {
扫描于 2026/11/4(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

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

社区实装还没有人打卡 · 装过的第一个就是你
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

消息编辑铅笔:编辑助手回复,从该回合分叉出新版本会话

README

由 DeepSeek 最新模型翻译生成
dsh-pencil dsh-pencil 是 DSH(DeepSeek Harness)桌面端的客户端插件。DSH 的会话日志采用 append-only 机制,无法原地修改已生成的模型回复。该插件在助手回复底部添加编辑按钮。你修改回复正文并保存后,插件会从当前回合分叉(fork)出一个新的会话版本,把修改后的文本写入新会话历史,原会话则完整保留。 功能 - 编辑入口:在助手回复操作栏注入铅笔按钮,点击后弹出编辑浮层,并预填当前回复的正文。 - 版本分叉:保存修改后,以该回复所在回合为界分叉生成新 session,新 session 中该条回复更新为编辑后的内容,模型后续对话基于新文本继续生成。 - 历史保留:原 session 完整保留,可随时切回。
展开完整文档(README 剩余 1 节)
dsh-pencil

dsh-pencil 是 DSH(DeepSeek Harness)桌面端的客户端插件。DSH 的会话日志采用 append-only 机制,无法原地修改已生成的模型回复。该插件在助手回复底部添加编辑按钮。你修改回复正文并保存后,插件会从当前回合分叉(fork)出一个新的会话版本,把修改后的文本写入新会话历史,原会话则完整保留。

功能

- 编辑入口:在助手回复操作栏注入铅笔按钮,点击后弹出编辑浮层,并预填当前回复的正文。
- 版本分叉:保存修改后,以该回复所在回合为界分叉生成新 session,新 session 中该条回复更新为编辑后的内容,模型后续对话基于新文本继续生成。
- 历史保留:原 session 完整保留,可随时切回。

结构

项目由 client 交互层与 host 服务层组成:

lib/index.mjs host 插件:提供 HTTP 路由与会话版本分叉逻辑 lib/client.js client 插件:注入铅笔按钮与编辑浮层交互界面 cordis.patch.yml host 插件挂载配置

安装

本地开发安装

执行安装脚本,完成依赖链接与 bundle 注册:

powershell -NoProfile -ExecutionPolicy Bypass -File C:\Users\31319\Desktop\dsh-pencil\install.ps1

该脚本等价于执行以下三个手动步骤:

使用 Desktop 内置的 pnpm shim,以 link 方式添加依赖:

$profile = "$env:APPDATA\dsh-desktop\harness\profiles\web"
& "$env:APPDATA\dsh-desktop\harness\.desktop-bin\pnpm.cmd" add "link:C:\Users\31319\Desktop\dsh-pencil" --prefer-offline

以 pnpm add "link:..." 方式安装后,node_modules\dsh-pencil 会创建为指向源码目录的 junction。后续修改源码只需重启应用即可生效,无需重新安装。执行时必须调用 .desktop-bin\pnpm.cmd。PATH 里的 node 是 DSH Desktop 自带的 Electron node,直接用它跑 pnpm 会出现执行异常。

运行脚本,把插件登记到 profile 的 bundle 清单:

node C:\Users\31319\Desktop\dsh-pencil\add-bundle.mjs

pnpm 仅负责处理依赖声明(写入 dependencies),不会修改 dsh.profile.bundles 字段。DSH 依据 dsh.profile.bundles 加载插件,缺少此步骤插件不会被加载。

彻底退出 DSH Desktop 后重新启动:

在系统托盘右键退出 DSH Desktop 进程,随后重新打开应用。

安装完成后的文件变动位置如下:

| 位置 | 内容 |
| profiles\web\package.json → dependencies | "dsh-pencil": "link:C:/.../dsh-pencil" |
| profiles\web\package.json → dsh.profile.bundles | "dsh-pencil" |
| profiles\web\pnpm-lock.yaml | link 记录 |
| profiles\web\node_modules\dsh-pencil | junction → 源码目录 |

从 npm 安装

包已发布到 npm,安装时给出包名即可(省略版本号则取最新):

$profile = "$env:APPDATA\dsh-desktop\harness\profiles\web"
& "$env:APPDATA\dsh-desktop\harness\.desktop-bin\pnpm.cmd" --dir $profile add dsh-pencil
node "$profile\node_modules\dsh-pencil\add-bundle.mjs"

需要锁死版本时,在包名后加版本号:

& "$env:APPDATA\dsh-desktop\harness\.desktop-bin\pnpm.cmd" --dir $profile add dsh-pencil@0.1.3

直接从 GitHub 安装

使用 Desktop 内置 pnpm 安装 GitHub 仓库并注册 bundle:

$profile = "$env:APPDATA\dsh-desktop\harness\profiles\web"
& "$env:APPDATA\dsh-desktop\harness\.desktop-bin\pnpm.cmd" --dir $profile add "github:Branwen050/dsh-pencil"
node "$profile\node_modules\dsh-pencil\add-bundle.mjs"

卸载

执行卸载脚本完成清理:

powershell -NoProfile -ExecutionPolicy Bypass -File C:\Users\31319\Desktop\dsh-pencil\uninstall.ps1

该脚本等价于执行以下卸载与清理命令:

$profile = "$env:APPDATA\dsh-desktop\harness\profiles\web"
& "$env:APPDATA\dsh-desktop\harness\.desktop-bin\pnpm.cmd" remove dsh-pencil
node C:\Users\31319\Desktop\dsh-pencil\remove-bundle.mjs dsh-pencil

卸载时必须连带删除 node_modules 下的对应目录。DSH Desktop 启动时会依据 node_modules 物理目录自动补登记插件。如果只从 package.json 清单中移除,却残留物理目录,应用下次启动时仍会自动写回并加载。

技术实现与宿主契约

架构设计:host 为什么复用上游、client 为什么重写

本项目的 host 实现复用了上游 dsh-message-edit 经过验证的版本分叉逻辑,包括版本状态标记、逆链记录、agents.create({seed}) 事务以及失败回滚机制。在此基础上,本项目对 host 做了适配:
- 避免命名冲突:插件名调整为 dsh-pencil,路由调整为 /pencil。
- 补充消息标识:在 editableMessages() 的 assistant 条目中补充 messageId,便于 client 依据 slot props 精确匹配。
- 适配 0.2.x 事件日志:0.1.x 使用 session.events,而 0.2.x 的事件存于 session.log,因此封装 eventsOf(session) 调用 snapshotEvents() 读取。

client 实现则完全基于 DSH 0.2.x 契约全新编写,解决了上游在 0.2.x 环境下无法加载的问题。

0.2.x 契约关键技术事实

- 模块种子词限制:0.2.x 不再提供 @deepseek-ai/dsh-client-runtime(含其 /client 子路径),客户端模块表只放行 react、react-dom、@deepseek-ai/cordis、dsh-client-store、dsh-client-ui-slots、dsh-client-ui-primitives 等固定种子词。本插件 client 只引入 react。
- inject 服务名变更:UI 服务中的 conversation 在 0.2.x 中已更名为 uiConversation。声明不存在的依赖服务,会让 fiber 永久处于 pending 状态,阻断插件初始化。本插件仅注入 slots 与 sessions。
- 注册时序包裹:0.2.x 要求先通过 ctx.slots.inject 等待 slot 就绪再执行注册,即 ctx.slots.inject("conversation.chat.assistant-actions", () => ctx.slots.register(...))。未经 ctx.slots.inject 包裹的直接 register 调用会被加载期校验拒绝。

服务与路由依赖

- client 依赖服务:slots、sessions
- host 依赖服务:sessions、agents、sessionPersistence、sessionQuery、workspaceRegistry、webServer
- host 路由:GET /pencil?sessionId= 用于获取可编辑消息,POST /pencil 用于提交 edit / reroll / retry 操作

已知边界

- 只暴露助手回复正文;reasoning 块与用户消息暂未开放编辑入口
- 编辑产生的是新会话,不是原地改写历史——DSH 的会话日志 append-only,原地改没有合法路径
- 编辑会截断该回合之后的内容(cascade: "truncate")
- 失败模式受控:客户端只占一个 slot 条目,host 异常统一转成 JSON 错误;不会把 App 拖进安全模式

排查

检查插件是否在 Desktop 日志中成功加载:

Select-String "$env:APPDATA\dsh-desktop\logs\harness.log" -Pattern "dsh-pencil"

检查 host 路由是否成功注册(需 host 六个依赖服务均就绪):

Select-String "$env:APPDATA\dsh-desktop\logs\harness.log" -Pattern "/pencil"

署名与许可

- lib/index.mjs 改编自 Moeblack/dsh-message-edit(MIT 许可)。
- lib/client.js 为原创实现。

分发与使用本插件时,请保留 LICENSE 以及 CREDITS.md 中的上游署名与改动审计记录。
预览分享卡片长什么样 ↓Branwen050/dsh-pencil
分享 · DeepSeek Harness Hub
Branwen050/dsh-pencil

修改助手回复内容,并从该回合分叉出新会话版本

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部