前言¶
在 DeepSeek Harness(DSH)裏開發或調試客戶端插件時,Host 側的 cordis 樹可以熱更新,但瀏覽器裏已經加載的前端仍可能繼續跑舊代碼。過去較穩妥的做法是退出整個應用再打開,才能看到熱注入插件的效果。dsh-quick-reload 在 Web UI 右下角提供半透明 ⟳ 按鈕,在刷新頁面前先清理瀏覽器側可重建緩存,再按 Host 最新發布的模塊圖重載頁面,讓客戶端改動儘快可見。
這是什麼¶
- 插件 id / 倉庫名:
dsh-quick-reload(維護者 lyjsyyds) - 分類:客戶端(npm 包名
dsh-quick-reload-lyjs,因 npm 上短名已被佔用) - 定位:面向 DSH Web UI 的一鍵頁面刷新;不重啓 Host 進程,不寫 profile
- 目錄頁:https://www.skillhub.cn/plugins/lyjsyyds/dsh-quick-reload
- 源碼:https://github.com/lyjsyyds/dsh-quick-reload(MIT © 2026 LYJS,當前資料版本 v0.1.1)
核心功能¶
界面入口¶
客戶端入口在 lib/client.js,向 shell.overlay 註冊 id 爲 quick-reload、order 100 的條目(文案來自 locale)。shell.overlay 爲根作用域、類型 list、replaceRisk: none:按鈕掛在框架級浮動層,與各 Session 無關,也不會擠佔或替換其他插件佔用的單行槽位(例如 sidebar.footer.action 與 dsh-context 的衝突場景,README 中有說明)。層默認點擊穿透,該條目通過 pointer-events:auto 恢復可點。
按鈕約 32px,默認約 0.68 透明度,懸停/聚焦時更明顯;位置爲右下角內縮 18px,與框架浮動 pill 慣例一致。
點擊後做了什麼¶
普通點擊會在頁面 reload 之前處理 DSH 對 /plugins/** 的長期 immutable 緩存與「rev 僅來自文件元數據、字節不同卻同 rev」的碰撞問題:
- 清空 Cache Storage 中所有 bucket(含遠程訪問殼緩存
dsh-remote-shell-v1等)。 - 對所有 Service Worker 註冊調用
update()。 - 通過 Host 的 HMR SSE(
GET /plugins/events)與 performance 時間線收集需校驗的/plugins/**URL,以cache:'reload'重新拉取;上限約 160 個 URL、單請求 1.2s、總預算 2.2s,避免 reload 被拖死。
刻意保留:localStorage、sessionStorage、Cookie、磁盤 profile、Sessions 與當前會話等——避免丟草稿、面板寬度或遠程配對憑證(如 dsh-remote-device)。
Shift+點擊:僅做裸頁面 reload,不做上述緩存清理。
整條路徑不接觸 Host 進程或 agent runtime:無應用重啓、無 /dsh-market/restart、無 profile 寫入;進行中的 turn、後臺任務或終端可在頁面重連後繼續。
Host 側入口 lib/index.js 僅保持 bundle 合法,無額外邏輯。
安裝與啓用¶
安裝前請自行審閱源碼與 MIT 許可證;插件在當前 dsh 進程權限下運行,與任何社區插件一樣,安裝即信任其代碼行爲。
從 release 預構建包安裝(需先完全退出桌面應用):
dsh plugin --profile desktop add https://github.com/lyjsyyds/dsh-quick-reload/releases/download/v0.1.1/dsh-quick-reload-0.1.1.tgz
或在 GUI:設置 → 插件 → 安裝,spec 填上述同一 URL。
本地開發目錄(link 形式,CLI 會寫入 dependencies 與 dsh.profile.bundles):
dsh plugin --profile desktop add link:<absolute path to this directory>
卸載:在 設置 → 插件 移除 bundle,或:
dsh plugin --profile desktop remove dsh-quick-reload-lyjs
並從 dsh.profile.bundles 中去掉對應項;下次啓動後按鈕消失。
典型用法¶
- 安裝並啓動 DSH 桌面 profile 的 Web UI。
- 熱注入或修改客戶端插件後,點擊右下角 ⟳,等待短時的緩存清理與 reload。
- 若 Host 已發佈新文件且 rev 已變,有時僅 reload 即可;若懷疑同 rev 不同字節,用普通點擊走完整清理路徑。
- 僅需快速刷新、不關心插件緩存時,Shift+點擊。
倉庫內冒煙測試(無網絡依賴):
npm test
等價於 node tests/quick-reload.smoke.mjs,共 19 項檢查。
適用場景與注意¶
適合:頻繁改 DSH 客戶端插件、希望在 Web UI 內立刻看到 overlay/UI 變更的開發者。
不適合替代:已加載 Host 模塊被改寫的場景——README 明確說明仍需應用重啓。
權限與安全:只清瀏覽器側可重建緩存並重載頁面,不改插件集合與 profile;安裝前請檢查 GitHub 源碼。SkillHub 等社區目錄爲獨立站點,與 DeepSeek / 幻方無官方從屬關係,本文安裝命令以倉庫 README 爲準。
結尾¶
dsh-quick-reload 把「退出重開才能看到客戶端插件」縮成右下角一次點擊(必要時帶緩存清理),並避免誤傷 Session 與配對狀態。更多信息見 SkillHub 目錄頁 與 GitHub 倉庫。