dsh-quick-reload:DSH Web UI 一鍵刷新與可重建緩存清理

前言

在 DeepSeek Harness(DSH)裏開發或調試客戶端插件時,Host 側的 cordis 樹可以熱更新,但瀏覽器裏已經加載的前端仍可能繼續跑舊代碼。過去較穩妥的做法是退出整個應用再打開,才能看到熱注入插件的效果。dsh-quick-reload 在 Web UI 右下角提供半透明 ⟳ 按鈕,在刷新頁面前先清理瀏覽器側可重建緩存,再按 Host 最新發布的模塊圖重載頁面,讓客戶端改動儘快可見。

這是什麼

核心功能

界面入口

客戶端入口在 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」的碰撞問題:

  1. 清空 Cache Storage 中所有 bucket(含遠程訪問殼緩存 dsh-remote-shell-v1 等)。
  2. 對所有 Service Worker 註冊調用 update()。
  3. 通過 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 中去掉對應項;下次啓動後按鈕消失。

典型用法

  1. 安裝並啓動 DSH 桌面 profile 的 Web UI。
  2. 熱注入或修改客戶端插件後,點擊右下角 ⟳,等待短時的緩存清理與 reload。
  3. 若 Host 已發佈新文件且 rev 已變,有時僅 reload 即可;若懷疑同 rev 不同字節,用普通點擊走完整清理路徑。
  4. 僅需快速刷新、不關心插件緩存時,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 倉庫。

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

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

小夜