跳到主内容

dsh-side-panel

16Star3Fork1Issue0Watching

在 DSH Web 对话旁提供 Git 审查、文件浏览与终端的工作区面板

机审证据5/5方法论数据来源安装命令持续维护DSH 版本风险扫描
机审证据安装命令仓库已核验dsh-plugin Topic许可证READMEAI 百科
语言
JavaScript
License
BSD-3-Clause
分支
main
dshdsh-plugin

安装

命令web profile
$ dsh plugin --profile web add --allow-build=@dsh-external/dsh-side-panel github:ccq1/dsh-side-panel

在终端中运行以上命令,通过 dsh CLI 安装此插件。可在右上角切换 Profile。 第一次用 dsh?看这篇新手教程

对话式安装

帮我安装 DeepSeek Harness 插件 ccq1/dsh-side-panel:先查看仓库 https://github.com/ccq1/dsh-side-panel 确认安全性,然后执行安装命令并验证插件加载成功。

把这段指令粘贴给 DSH Web GUI 里的助手,由它代你完成安装与验证。

一句话定位

在 DSH Web 会话旁并排打开一个工作区面板,把 Git 改动、文件浏览和终端集成到同一界面,无需在多窗口间来回切换。

核心能力

  • 在对话旁边浏览工作区文件、点击文件链接直接打开预览
  • 用 CodeMirror 编辑文本文件,500 毫秒后自动保存,支持 Ctrl/Cmd+S 立即保存
  • 打开 xterm.js 终端直接在工作区里跑命令,与对话并行
  • 审查工作区或暂存区的 Git 改动,浏览最近 50 条提交和所有本地分支
  • 单独查看「上轮会话修改」——只展示这一轮对话产生的代码差异
  • 右键文件可一键在系统文件管理器、VS Code、Cursor 或默认应用中打开,并能复制绝对路径或把路径塞进对话输入框

技术实现

  • 语言: TypeScript(ESM, "type": "module")
  • 关键依赖: CodeMirror 6(多语言高亮)、@xterm/xterm(终端渲染)、marked + DOMPurify(Markdown 预览 + 净化)、React(用于渲染鲸鱼 Logo)
  • 架构模式: 同时提供 server 与 client 两份 apply:服务端在 cordis.patch.yml 注册一个 /side-panel/api 路由处理文件/Git/终端请求,客户端通过 dsh.client.inject 注入到 DSH Web 会话布局里,劫持对话中文件链接的点击事件跳到面板中预览
  • 入口文件: src/index.ts(服务端,导出 apply 与 Config),src/client/index.ts(客户端,导出 apply),cordis.patch.yml(注入声明)

适用场景

一边和 DSH 协作写代码,一边想在同一屏里查看或编辑会话里提到的文件、跑命令验证、或检查这一轮 AI 改动了哪些代码。适合需要经常回看 AI 改动、运行验证命令、对比提交历史的开发者;不需要在多个窗口或外部 IDE 之间频繁切换。

前置依赖与兼容性

依赖最低版本说明
Node>=22.19(含 24+)源码 engines.node 声明 ^22.19 || >=24
DSH未声明客户端注入 @deepseek-ai/dsh-client-runtime,未显式声明 DSH 最低版本
Git系统已装即可终端命令与工作区扫描依赖系统 git(用于 diff/status/log/for-each-ref)
Bash + util-linux系统默认终端基于 /bin/bash 与 script -qfec 启动 PTY(WSL 下亦可)
平台macOS / Linux 原生支持,Windows 需 WSL终端 spawn Linux script;非 WSL 的 Windows 直接运行会失败
原生模块无全部依赖为纯 JS,未引入 node-gyp 模块

安装方式

dsh plugin --profile web add github:ccq1/dsh-side-panel

配置项

配置类型说明默认值
maxTextBytes数字预览与编辑时允许读取的最大文本文件大小;超过会显示「文件过大」提示卡2097152(2 MiB)
maxImageBytes数字预览图片时允许的最大文件大小;超过同样提示「文件过大」10485760(10 MiB)
searchMaxResults数字文件搜索一次返回的最大结果数;超出时面板底部会提示「仅显示前 N 条」200

这三项写在 cordis.patch.yml 里作为默认配置;如需调整,编辑宿主安装目录下插件的 cordis.patch.yml 即可。

常见问题

Q: 安装后怎么打开面板?

A: 重启 dsh web,会话标签栏右侧会出现一个带跃动小鲸鱼图标的标签,点击即展开;用键盘 Ctrl/Cmd+Shift+E 可在任意位置快速唤出或隐藏。

Q: 「上轮会话修改」和普通的 Git 审查有什么区别?

A: 普通审查看的是当前工作区/暂存区/Git 历史的全量变更;「上轮会话修改」只看 AI 在上一轮对话里改过的文件 diff。第一次安装插件时这一项会显示「暂无上轮会话快照」,从下一轮对话开始自动开始记录。

Q: 文件编辑会立即保存到磁盘吗?

A: 默认有 500 毫秒去抖,编辑后停顿半秒就自动保存到原文件;想立即落盘可按 Ctrl/Cmd+S。Markdown 与图片不会被送进编辑器,分别走预览和缩略图展示。

Q: 终端支持 PowerShell 吗?

A: 不支持。终端固定启动 /bin/bash(或 $SHELL 环境变量指向的可执行文件),并通过 util-linux 的 script 命令模拟 PTY;macOS/Linux 原生可用,Windows 必须在 WSL 内运行 DSH 才能使用终端。

Q: 怎么跳回上轮 AI 改动的具体文件?

A: 切到「审查」标签,把模式切到「上轮会话修改」,文件列表里点击任一文件名,会自动滚动定位到该文件的 diff 区块并把标题高亮成蓝色。

Q: 项目还在维护吗?

A: 仓库 README 顶部已标注「已停止维护并归档」,并推荐迁移到功能更完整的 DSH-better-sidebar。本仓库保留现有代码与历史版本。

Q: 卸载会留下配置残留吗?

A: 服务端在 effect 析构时会撤销路由注册并向所有打开的 PTY 发送 SIGTERM,清理浏览器端 React root、事件监听器和样式表;卸载插件后重启一次 dsh web 即可彻底生效。

上手难度

入门 — 安装即用,面板会自动随会话出现;不需要改任何配置即可使用文件预览、Git 审查、终端三大功能。

已知问题与限制

  • 项目已归档:README 顶部明确声明本仓库停止维护,新需求请迁移至 DSH-better-sidebar
  • Windows 非 WSL 不可用:终端与 script 命令在原生 Windows 上无法运行
  • terminal-resize 实际是空操作:服务端 terminal-resize 动作只返回 accepted: true,没有把新尺寸转发给 script 持有的 PTY,终端靠 xterm 客户端自动 reflow 已渲染输出来适配
  • last-session 差分有冷启动空窗:插件加载前发生的对话轮次不会有 diff 记录,新装插件的首轮对话也记不到
  • 请求体大小限制为 3 MiB:服务端 requestBody 在超过 3 MiB 时会直接抛错,编辑大文件时请走流式 API 或调小单次粘贴量
  • DSH 最低兼容版本未声明:package.json 没有 peerDependencies 或 dshWorkshop 字段,若宿主 DSH 变更了 webServer.register 或 ctx.workspaces.openPath 接口,可能需要更新插件

查看使用指南 →

该插件的安装步骤、关键要点、FAQ 与兼容性说明(基于已收录字段派生)。

收录徽章

Listed on deepseek-plugin.org
[![Listed on deepseek-plugin.org](https://img.shields.io/badge/listed_on-deepseek--plugin.org-007EC6)](https://deepseek-plugin.org/plugins/ccq1/dsh-side-panel)

把这段 markdown 粘贴到你的 GitHub README,链接回本插件详情页。徽章只声明已被本站收录,不代表安全认证。

返回插件目录