前言¶
在 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 未在本稿引用的抓取資料中直接出現,僅作爲插件線索列出。