dsh-enhance:DSH 客户端 Markdown 主题、划词批注与侧栏布局增强

前言

DeepSeek Harness(DSH)把能力拆成 bundle 与插件,客户端界面仍沿用宿主默认的 Markdown 排版、侧栏宽度和窗口几何。长对话里想对某段原文加一句约束再发送、或希望侧栏更窄、插件入口不要挤在右下角时,往往要在宿主行为之外再叠一层定制。dsh-enhance 是维护者 laughmaker 发布的客户端插件,在渲染进程里统一 MarkdownText 样式、提供划词批注与侧栏提问,并调整侧栏宽度下限、面板图标位置、启动时的窗口与侧栏默认状态;README 标明主要面向 macOS,DSH 版本需满足 engines.dsh 约束。

这是什么

dsh-enhance(npm 包名同名)通过 Cordis patch 注入 DSH Web 客户端:依赖 @deepseek-ai/dsh-client-ui-renderer、dsh-client-ui-conversation、dsh-client-ui-sidebar-right 等模块,在 apply(ctx) 中注册插槽并注入样式。它不引入额外运行时 npm 依赖(值导入仅限 react / react-dom)。当前资料中的版本为 0.3.2,许可证 MIT,GitHub 仓库:https://github.com/laughmaker/dsh-enhance;社区目录页:https://www.skillhub.cn/plugins/laughmaker/dsh-enhance(独立站点,与 DeepSeek / 幻方无官方从属关系)。

Markdown 主题

插件为所有 MarkdownText 渲染场景(主对话、侧栏对话、文件预览等)套用同一套排版规则:标题配色、加粗、行内代码、代码块、表格、引用块;浅色与深色两套配色随宿主主题切换。这与仅改某一页面的 ad hoc CSS 不同,目的是在长会话与多面板之间保持阅读一致性。

划词批注与侧栏提问

在主对话中选中文本后,会弹出浮动小面板,输入一句要求后 Enter 确认、Esc 取消;面板出现时输入框自动聚焦,光标在末尾。确认后,输入框上方出现 N annotations 胶囊:

  1. 悬停胶囊可展开列表,每行显示要求与引文;悬停某行会在正文高亮对应段落,点击行滚动到原文。
  2. 每行可编辑(弹窗)或删除;胶囊右侧可一键清空全部批注。
  3. 已批注段落在正文保留带序号的蓝色圆标(图钉与编号合一),点击圆标可直接编辑,并保持段落高亮;编辑弹窗内也可删除该条。
  4. 有挂起批注时,发送按钮立即可用而输入框仍可空白;发送瞬间才把引文拼进消息。

划词手势只在主对话生效。同一浮动面板可将段落送到右侧栏的侧边对话(「侧栏提问」),不打断当前线程:首次创建侧边会话,之后复用同一标签页。

已知限制(README): 批注保存在浏览器内存,刷新页面后清空;按会话隔离,切换会话不会串。

侧栏、面板与启动默认

侧栏更窄: 拖拽下限由宿主 264px 改为 214px,文字缩小一档;文件夹图标改为展开/收起三角,文件夹标题与会话标题同字号、左端对齐。

面板图标置顶: Plugins、自动化等面板图标移到侧栏顶部、工作区列表之上,横向排列,每行最多 5 个、超出换行。原先宿主为带文字的竖排列表,本插件曾将其放在右下角;现只改位置与排版,选中态、悬停态与「更多」菜单仍由宿主处理。注册在 sidebar.footer.action 的插件按钮(例如远程访问电话图标)会被迁入同一顶部列表,同样 5 个一行;搬的是宿主容器,插件自身的交互与弹层不变,折叠成图标轨时交回宿主布局。

启动即最窄: 首次启动侧栏直接 214px(上游每次加载默认 280px);之后按上次拖到的宽度打开,折叠/展开不丢失该宽度。宽度记在渲染进程 localStorage 键 dsh-enhance.sidebar-width.v1。

窗口铺满屏幕: 首次启动主窗口铺满可用区域(保留菜单栏与 Dock,等同绿色按钮缩放);之后按上次关闭时的位置与大小打开。若保存的几何超出当前显示器,会被拉回可见区域。由页面侧 resizeTo / moveTo 驱动,不是系统全屏。几何保存在 dsh-enhance.window-geometry.v1。macOS 下纯移动窗口可能要到改大小、失焦或页面隐藏时才写入位置;只拖位置未改大小就强退,位置可能滞后。

运行中彩色转圈: 侧栏正在运行的会话,状态环改为蓝→紫→洋红→琥珀的 4 秒色相循环(浅色/深色均可见);转动与虚线段仍由宿主驱动,本插件只改颜色。

Dock 完成角标(macOS): Dock 红色数字等于侧栏「绿点未读会话」数量,映射宿主 uiSession.sessionStatus.completionUnread,经 navigator.setAppBadge;宿主不支持时静默降级。

安装与启用

插件以当前 DSH 进程权限在客户端运行,安装前建议浏览仓库源码与 MIT 许可证。兼容性(README):

项目 要求
DSH >=0.2.1-rc.1 <0.3.0
平台 macOS(其他平台未验证)

方式一:应用内安装(推荐)

打开 DSH Plugins 页面 → 添加插件 → 输入 dsh-enhance → 安装后重启应用。

方式二:本地 tar 包

从 Releases 下载 dsh-enhance-0.3.2.tgz 后:

cd ~/.dsh/profiles/desktop
npx pnpm@11.28.5 add "file:/绝对路径/dsh-enhance-0.3.2.tgz"

编辑 ~/.dsh/profiles/desktop/package.json,在 dsh.profile.bundles 中加入 dsh-enhance:

{
  "dsh": {
    "profile": {
      "bundles": [
        "@deepseek-ai/dsh-base",
        "@deepseek-ai/dsh-web-app",
        "dsh-enhance"
      ]
    }
  }
}

重启应用生效。

方式三:Git 仓库

cd ~/.dsh/profiles/desktop
npx pnpm@11.28.5 add "github:<用户名>/dsh-enhance"

同样加入 bundles 后重启。

典型用法

  1. 安装并重启后,无需额外配置文件即可生效:Markdown 主题与侧栏/layout 改动随客户端加载应用。
  2. 在主对话中选中模型回复或引用中的一段文字 → 在弹出面板写要求并 Enter → 可继续添加多条,输入框显示批注胶囊 → 直接点发送,消息中会带上引文与要求。
  3. 需要对某段做短问且不离开当前线程时,在同一划词面板使用「侧栏提问」,右侧栏会打开或复用侧边会话。
  4. 将侧栏拖到 214px 后,下次启动会记住宽度;若要恢复「首次铺满 + 214px 侧栏」,清掉 dsh-enhance.window-geometry.v1 与 dsh-enhance.sidebar-width.v1 后重启。

卸载

cd ~/.dsh/profiles/desktop
npx pnpm@11.28.5 remove dsh-enhance

从 dsh.profile.bundles 移除 dsh-enhance 并重启。

适用场景与注意

适合长期在 DSH 桌面客户端里读 Markdown、需要对原文做定点约束再发送、或希望侧栏更窄、插件入口集中在侧栏顶部的 macOS 用户。DSH 大版本升级后插槽与 DOM 契约可能变化,需跟随插件更新。批注不落盘,不适合依赖刷新后仍保留的审阅流程;审阅类工作应在发送前完成或自行导出对话。

结尾

dsh-enhance 把 Markdown 阅读、划词批注、侧栏宽度与启动几何、面板布局以及运行态视觉反馈收拢到一个客户端 bundle 里,安装路径以 README 为准。更多信息见目录页 https://www.skillhub.cn/plugins/laughmaker/dsh-enhance 与仓库 https://github.com/laughmaker/dsh-enhance。

羽毛球分组比赛记分
小程序二维码

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

小夜