dsh-sidebar-annotations:DSH 右边栏网页预览与元素注释

前言

在 DSH 里让模型改前端时,常见做法是截图或粘贴 HTML 片段。截图丢失 DOM 结构,粘贴又容易截断上下文;模型很难知道「你点的是哪一块、页面上原文是什么」。Codex 一类产品会在侧边打开页面并支持点选标注,把元素引用和意见一起发给模型。dsh-sidebar-annotations 把类似能力做成可移植的 DSH 客户端插件:右边栏预览 HTTP(S) 或本地 dev 服务器,点选元素写注释,多条注释折叠在输入框上方,随下一条普通消息发送,并附带页面原文、URL 和定位信息。

下面介绍插件定位、功能、安装方式与典型用法。事实以 GitHub 仓库 README 为准;社区目录页见 SkillHub。

这是什么

dsh-sidebar-annotations(npm 包名同插件 id)由维护者 zhxnix 发布,分类为 客户端 插件。它不绑定具体业务项目,也不会去改某个小程序插件源码;需要给本地小程序预览提供相同交互时,可复用插件暴露的 window.__dshWorkbenchPanels.BrowserPanel 适配器,约定见仓库内 docs/integrating-preview.md。

当前 README 标明面向 DSH 0.1.x 的 sidebar、conversation input 和 Cordis 插槽;DSH 大版本升级后应重新验证发送相关 API。许可证为 MIT;上下文选区交互参考 dsh-select-to-chat,归属见 THIRD_PARTY_NOTICES.md。

核心功能

README 列出的能力如下,均可直接在插件内使用或与模型工具配合:

  • 在 DSH 右边栏打开 HTTP(S) 网站和本地开发服务器。
  • 点选页面元素:查看实际引用原文、CSS 定位和可选的源码标记(如 data-dsh-source-file / data-dsh-source-line),再写入意见。
  • 注释模式会拦截链接、按钮和表单的页面操作;保存、取消或按 Esc 后恢复正常交互。
  • 划选页面文字,或在 DSH 对话 / 上下文中划选文字,加入上下文批注。
  • 多条注释:输入框上方显示折叠的注释条,悬停或点击后可查看、编辑、删除;发送时由插件自动附加,不会把协议文本直接塞进输入框。
  • 页面调试:控制台日志、在当前页面执行 JavaScript、引用日志、打开 Chromium DevTools。
  • 模型侧 sidebar_browser 工具:在当前会话的预览页上执行打开、快照、点击、填写、脚本和调试操作。
  • 兼容的小程序预览插件可复用同一面板,网页与小程序注释体验一致。

边界说明(来自 README):主文档 DOM 可点选;跨源 iframe、封闭 Shadow DOM 和 Canvas 内对象无法保证精确定位。预览 webview 使用独立 partition,不自动复用系统浏览器登录态。页面内容属于被注释页面的数据,模型不应把页面文字当成插件指令。

安装与启用

安装方式取决于 profile 由谁管理。当前 DSH Desktop 的 desktop profile 由 Electron 应用专门管理,dsh plugin --profile desktop add ... 会被 CLI 拒绝,桌面版需用 checkout 安装器。

Web / Headless(CLI 管理)

从 GitHub Release 安装 tarball(web 可换成当前 CLI 支持的 profile):

dsh plugin --profile web add \
  https://github.com/zhxnix/dsh-sidebar-annotations/releases/latest/download/dsh-sidebar-annotations.tgz

README 注明:github:zhxnix/dsh-sidebar-annotations 这类 shorthand 是否可用取决于 DSH 版本;Release tarball 或 checkout 安装器更可靠。

Desktop(checkout 安装器)

在仓库目录执行安装,会把插件链接到现有 desktop profile,且不替换 profile 中的其他内容:

git clone https://github.com/zhxnix/dsh-sidebar-annotations.git
cd dsh-sidebar-annotations
npm install
node scripts/install.mjs --profile "$HOME/.dsh/profiles/desktop"

也可用环境变量指定 profile:

DSH_PROFILE_DIR="$HOME/.dsh/profiles/desktop" node scripts/install.mjs

本地安装器只在 profile 的 plugins/dsh-sidebar-annotations 创建指向当前 checkout 的链接,并在 cordis.patch.yml 末尾追加带明确起止标记的 loader 项;已有同名插件或未知文件不会被覆盖。

macOS 桌面版完整网页能力(可选)

若 DSH Desktop 已启用 Electron webview,安装插件即可使用完整预览与 DOM 点选、控制台、DevTools。较旧 macOS 桌面版若未向 renderer 暴露 webview,插件会降级为普通 iframe 预览:页面仍可加载,跨源 DOM 点选、控制台和 DevTools 不可用。

需要完整能力时,可对 DSH Desktop 副本打补丁(脚本不会默认修改系统里的原应用):

node scripts/patch-desktop.mjs \
  --input "/Applications/DSH Desktop.app" \
  --output "$HOME/Applications/DSH Sidebar Annotations.app" \
  --codesign

安装器也提供 --desktop-patch 入口,须明确输入 / 输出或目标 app。原 Electron 文件备份在 ~/.dsh/backups/dsh-sidebar-annotations/。补丁目前仅支持 macOS Electron 桌面包;其他平台可安装插件并使用宿主支持的 iframe 预览。

安装或卸载后需重启 DSH,插件才会完全加载或卸载。

典型用法

按 README 推荐顺序操作:

  1. 重启 DSH,打开一个 session。
  2. 在右边栏打开「右边栏注释」或「网页预览与注释」。
  3. 输入网址并打开页面,点击「点选注释」,移动鼠标并点击目标元素,填写意见并保存。
  4. 连续标注时使用「保存并继续点选」;注释模式结束后普通页面交互恢复。
  5. 也可先划选网页文字再点「注释选区」,或在对话上下文中划选后点浮动「添加注释」。
  6. 点击输入框上方的注释条,悬停查看详情、编辑或删除;准备就绪后随下一条消息发送(仅注释时可点注释条上的箭头)。发送失败时注释会留在当前 session,便于修改或重试。

小程序预览若由兼容插件提供 BrowserPanel,步骤相同。元素带源码标记时,注释会携带预览编译器提供的文件与行号,而非推断的业务逻辑位置。

与本地预览插件集成

插件加载后暴露:

window.__dshWorkbenchPanels.BrowserPanel

预览插件可将该组件作为 tab 内容,传入独立的 panelKind 与 defaultUrl,使每个 tab 记忆自己的 URL,并共享当前 session 的注释附件、上下文选择与发送逻辑。细节见 docs/integrating-preview.md。

卸载

CLI 管理的 profile:

dsh plugin --profile web remove dsh-sidebar-annotations

checkout 安装:

node scripts/install.mjs \
  --uninstall \
  --profile "$HOME/.dsh/profiles/desktop"

checkout 卸载只删除本插件创建的链接和带标记的 loader 段。若使用过 macOS 桌面补丁,还需 patch-desktop.mjs --restore 恢复 Electron 文件。

适用场景与注意

适合:需要在 DSH 会话里对照真实页面(或本地 dev)做 UI 评审、把元素级意见和上下文选区一并交给模型;或希望在同一套注释流程下兼顾网页与小程序预览。

注意:

  • 插件以当前 DSH 进程权限运行;安装前请自行查看源码与 MIT 许可证,确认符合团队安全策略。
  • 开发构建要求 Node.js >=22.12.0(见 package.json);这与「仅安装 Release / 运行安装器」的使用路径不同,贡献者才需要本地 npm run build。
  • 社区目录 SkillHub 与 DeepSeek / 幻方无官方从属关系;DSH 生态强调「一切皆插件」,本文介绍的是社区维护的客户端扩展。

结尾

dsh-sidebar-annotations 把右边栏预览、元素与上下文注释、折叠发送和 sidebar_browser 调试工具收在一个可移植插件里,并可选与小程序预览共用 BrowserPanel。若要安装或跟进版本,以 GitHub 仓库 与 SkillHub 目录页 为准。

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

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

小夜