dsh-workspace-sidebar:DSH Web 右侧工作区侧边栏

前言

在 DSH Web 会话里处理代码时,经常需要同时查看文件结构、git 差异、提交历史,并把某个文件路径引用到输入框。如果不在外部 IDE、终端和浏览器之间来回切换,就需要一个能贴在会话侧边的插件。

DSH 的插件扩展可按「一切皆插件」理解。插件目录页可以视为独立站点或插件线索,不应理解为 DeepSeek 或幻方官方应用商店。下面介绍 pang123hui/dsh-workspace-sidebar

插件定位

dsh-workspace-sidebar 是一个 DSH Web 插件,用于在右侧增加工作区侧边栏。

它主要覆盖四类内容:

  • 文件树
  • git 差异
  • 提交历史
  • @文件 引用

维护者为 pang123hui,许可证为 MIT,版本为 0.1.0

核心功能

文件浏览

文件视图支持目录树懒加载。

可以执行以下操作:

  • 查看文件
  • 重命名文件
  • 删除文件
  • 预览 Markdown
  • 预览代码高亮内容

文件重命名和删除通过文件行上的「⋯」菜单触发。

文件视图有自动刷新机制:刷新间隔为 2s,并采用单在途防叠票,避免多个刷新请求互相叠加。

git 差异

插件提供 git 变更文件列表。

状态含义为:

  • M:修改
  • D:删除
  • U:新建

当同一文件出现多个状态时,优先级为:

M > D > U

点击某个变更文件后,可以查看该文件的 diff。

差异视图也有自动刷新机制:刷新间隔为 4s,并采用单在途防叠票。

提交历史

提交历史使用 git log --graph 展示提交树。

使用方式是:

1、点击某个提交。

2、展开该次提交改动的文件。

3、点击某个文件,查看该次提交中的 diff。

@文件 引用

在文件行悬停时,会出现「@」按钮。

点击「@」按钮后,会把 @相对路径 追加到输入框。

适合在对话中快速引用当前项目里的文件。

侧边栏交互

侧边栏停靠在工作区右侧,可以拖拽调整宽度,并把会话区往左推。

安装与启用

从 GitHub 安装

先使用下面命令从 GitHub 添加插件:

dsh plugin --profile web add github:pang123hui/dsh-workspace-sidebar

装完后,需要重启 dsh web。可以在终端按 Ctrl+C 停止后重跑,然后在浏览器硬刷新。

从 npm 安装

README 中提供了 npm 安装命令:

dsh plugin --profile web add dsh-workspace-sidebar

该命令在 README 中标注为发布后使用。本文不将其作为当前确定可用的安装来源。

手动安装

如果不使用 dsh plugin 命令,可以手动安装。

第一步,把插件包链接到:

~/.dsh/profiles/node_modules/dsh-workspace-sidebar

第二步,在 ~/.dsh/profiles/web/cordis.patch.yml 中加入:

- insert:
    - id: workspace-sidebar
      name: 'dsh-workspace-sidebar'

改动后如何生效

如果改动的是 client 半,浏览器硬刷新即可。

如果改动的是 host 半,需要重启 dsh web

典型用法

下面列出一组可复现的使用路径。

1、安装插件:

dsh plugin --profile web add github:pang123hui/dsh-workspace-sidebar

2、重启 DSH Web:

dsh web

3、在浏览器中硬刷新页面。

4、打开右侧工作区侧边栏。

5、在文件视图中展开目录树,点击文件查看 Markdown 或代码预览。

6、在文件行悬停,点击「@」按钮,把 @相对路径 追加到输入框。

7、切换到差异视图,查看 MDU 文件列表。

8、点击某个文件查看 diff。

9、切换到提交历史,点击某个提交展开改动文件,再点击文件查看该次提交 diff。

适用场景与注意

适合谁

如果你使用 DSH Web 会话,并且希望在浏览器里直接完成以下事情,这个插件会比较合适:

  • 浏览项目文件
  • 重命名或删除文件
  • 查看 Markdown 和代码预览
  • 查看 git 变更
  • 查看某个文件的 diff
  • 查看提交历史
  • 查看某次提交中的文件改动
  • @相对路径 追加到输入框

权限与安全风险

这个插件的写操作已绕过 DSH shell 沙箱。

具体包括:

  • 文件删除走 host 进程内 Node fs
  • 文件重命名走 host 进程内 Node fs
  • git 操作经 sandboxPolicy: danger-full-access 执行

因此,它不再受会话工作区限制。任意目录可能可删、可改、可暂存、可提交。

安装前建议先检查源码,并确认许可证和使用方式。

ACL 限制

文件系统级 ACL 拒绝绕不过。

例如,在 Windows 层,如果某个目录被外部工具显式锁定写入,例如通过:

icacls ... /deny

导致写入被拒绝,需要管理员解除对应 DENY。

只读浏览不受 ACL 写入拒绝影响。

依赖约束

插件的 peerDependencies 包括:

@deepseek-ai/cordis ^4.0.1
@deepseek-ai/dsh-client-runtime ^0.1.0-rc.7
react ^18.2.0

链接

GitHub:

https://github.com/pang123hui/dsh-workspace-sidebar

目录页线索:

https://www.skillhub.cn/plugins/pang123hui/dsh-workspace-sidebar

说明:该目录页 URL 未在本稿引用的抓取资料中直接出现,仅作为插件线索列出。

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

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

Xiaoye