前言¶
在 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、切换到差异视图,查看 M、D、U 文件列表。
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 未在本稿引用的抓取资料中直接出现,仅作为插件线索列出。