dsh-bianji:DeepSeek Harness 桌面端工作区文件编辑器

前言

在 DeepSeek Harness(DSH)官方桌面里,右侧「开始」页已有工作区文件浏览和浏览器等入口,但若要在同一会话上下文中直接改文本、预览 Markdown,往往还要切到外部编辑器。社区插件 dsh-bianji(包名 bianji)在官方桌面侧栏增加独立的 编辑器 入口:左侧文件树、右侧 Monaco 编辑区,读写范围限制在当前会话工作区,并复用官方 fs 与沙箱策略。下面介绍它是什么、能做什么,以及如何安装启用。

这是什么

dsh-bianji 由 yueyexiayu 维护,归类为 客户端 插件。README 将其定位为 DeepSeek Harness 官方桌面端的工作区文件编辑器:通过 connection.fetch 与 Host 通信,不依赖 webServer,也不走 dsh plugin --profile desktop 那套 CLI 插件流程。

与官方 dsh-client-ui-sidebar-files 相比:官方组件提供 workspaceFiles.list/changes 文件树,但没有 Monaco、写入与 CAS 自动保存界面;其 read 还允许工作区外路径。本插件保留独立 kind: bianji,界面名称统一为「编辑器」,不覆盖官方 files,边界与草稿/冲突机制由插件自行实现。

当前 package.json 版本为 0.1.1。项目说明强调深度适配个人使用,供思路借鉴,尽量不要直接照搬。

核心功能

安装成功后,在右侧栏「开始」页会出现与「工作区文件」「浏览器」并列的 编辑器 入口。

编辑与浏览

  • 左侧:当前会话工作区(cwd)内的文件树。
  • 右侧:Monaco 编辑器;Monaco 加载失败时回退为带行号的文本框。
  • 支持 Markdown 预览;预览只输出转义后的受限标签和 HTTP(S) 链接,不执行原始 HTML。

保存与版本

  • 自动保存;每个文件独立调度,保存期间继续输入会保留最新草稿,成功后用新版本继续保存。
  • 读取返回版本号,保存使用 replaceIfVersion;外部修改、替换或删除后,旧版本保存会冲突,不重建已删除文件。
  • 冲突时暂停该文件的自动保存,保留本地编辑;可先「复制本地内容」,再「重新加载」磁盘版本(重新加载需确认丢弃未保存内容)。
  • 保存失败时关闭标签不会丢弃草稿;未保存或冲突草稿按会话保留在客户端内存,切换会话或关闭侧栏后返回可恢复。完全退出应用、刷新客户端或停用插件后内存草稿不保留。

与对话集成

  • 右键:添加到对话、复制路径、在访达(Finder)中打开。
  • 将文件拖到聊天输入框,可插入 @引用。

历史会话与权限

  • 读写限制在当前会话工作区 cwd 内。
  • live Agent 优先;无 Agent 时,通过官方 sessionController.inspect(sessionId, signal) 只读解析 attached / 持久化历史,不调用 Agent 的 create/resume,不改变模型、事件或会话归属。
  • 历史保存沿用官方 sandboxPolicy.resolve({ session });冷历史通过官方 sessions.prepare 构建未发布快照,让官方 sandboxMode projection 重放权限。

文本与路径

  • 仅支持严格 UTF-8 文本;非 UTF-8、二进制与过大文件会明确拒绝打开。
  • POSIX(含 macOS)路径保留文件名中的 \,不当作目录分隔符;通过 processPath() 核对实际目标,拒绝已复现的符号链接替换越界(非内核级原子路径隔离)。

错误语义

缺少 sessionId / 绝对 cwd 返回 400,未知会话 404,缺少检查服务 503,持久化读取或损坏错误 500;错误不会伪装成空工作区。缺少安全策略或 prepare 服务时拒绝保存。

插件不包含安装器、账号或凭据。版本保护与官方 AI 文件工具共用实例和写入锁,但在版本检查与原子替换之间仍存在与其他编辑器竞争的短暂窗口,不宜理解为对任意外部写入的绝对保证。

安装与启用

将插件复制到 $DSH_HOME/plugins/bianji(默认 $DSH_HOME 为 ~/.dsh),在 $DSH_HOME/profiles/desktop/cordis.patch.yml 写入:

- insert:
    - id: bianji
      name: ../../plugins/bianji/lib/index.js

完全退出 DeepSeek Harness(macOS:⌘Q)再打开。展开右侧栏,在「开始」里会出现 编辑器。

典型用法

  1. 启动官方 DSH 桌面并完成上述安装与重启。
  2. 打开或创建一个带工作区 cwd 的会话。
  3. 在右侧「开始」页点击 编辑器,在左侧树中选择 UTF-8 文本文件进行编辑;需要时可开 Markdown 预览。
  4. 依赖自动保存,或留意冲突提示:外部改过文件时,按界面提示复制本地内容或确认后重新加载。
  5. 需要把文件交给模型时:右键「添加到对话」,或拖拽到输入框生成 @引用。

编辑快捷键限于编辑区;文件拖拽引用限于聊天输入区。目录或文件请求失败会显示错误并提供重试。

适用场景与注意

适合谁

  • 主要在 DSH 官方桌面 开发、希望在同一会话工作区内改代码或 Markdown,而不频繁切换外部 IDE 的用户。
  • 需要与官方会话沙箱、历史权限和 fs 版本写入对齐的场景。

使用前请注意

  • 插件以当前 DSH 进程权限运行;安装前应自行阅读 GitHub 源码 与仓库许可证,确认可接受其安全与边界说明。
  • README 写明面向官方桌面(connection.fetch);若你的环境不是该形态,请先核对 Host 版本与插件说明是否匹配。资料中在 DSH 0.2.1-alpha.2 只读解包参考上做过回归验证,不代表所有版本行为一致。
  • 仅 UTF-8 文本;GBK 等编码、二进制与大文件会被拒绝。
  • 退出应用前,对尚未落盘的内存草稿请复制或完成保存。

DSH 生态强调「一切皆插件」;SkillHub 目录页 为社区站点,与 DeepSeek / 幻方无官方从属关系。

结尾

dsh-bianji 在官方桌面侧栏补全「会话内工作区文本编辑」:文件树、Monaco、预览、自动保存、版本冲突与 @引用 一体化,并严格限制在 cwd 内且复用官方沙箱与 fs。若你需要在 Harness 里直接改仓库文件,可按 README 复制目录并 patch 桌面 profile 后启用。

  • 目录页:https://www.skillhub.cn/plugins/yueyexiayu/dsh-bianji
  • GitHub:https://github.com/yueyexiayu/dsh-bianji
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜