dsh-deepseek-site:在 Harness 中央面板內嵌 DeepSeek 官網對話

前言

在 DeepSeek Harness 裏做智能體或日常對話時,常見做法是用系統瀏覽器打開 chat.deepseek.com,或在多個窗口之間切換。頁面不在應用內,切走容易丟上下文;Electron 內嵌站點又常遇到 UA 被識別爲異常環境、登錄態無法跨重啓等問題。下面介紹社區插件 dsh-deepseek-site(維護者 WJMACTD,分類:客戶端):在 Harness 左側欄增加一個入口,在中央面板內嵌官方站點,切面板不重載,並儘量在本機跨重啓保留登錄。

這是什麼

dsh-deepseek-site 是 DeepSeek Harness 的客戶端 bundle 插件(當前資料中的版本爲 1.6.2,許可證 MIT,依賴 dsh >=0.2.1-rc.2 <0.3.0)。它不做服務端邏輯:index.js 的 apply() 爲空,實際能力在 client.js 裏註冊左側 sidebar.panellist 入口與 main 面板,用一處 guest 實例加載 https://chat.deepseek.com/。

  • 目錄頁:https://www.skillhub.cn/plugins/WJMACTD/dsh-deepseek-site
  • 源碼:https://github.com/WJMACTD/dsh-deepseek-site

社區插件目錄由 SkillHub 等站點維護,與 DeepSeek / 幻方無官方從屬關係;安裝前請自行閱讀源碼與許可證。

核心功能

內嵌與保活

點左側入口後,站點顯示在應用窗口內部的中央面板,不跳轉系統瀏覽器(除非用戶主動選擇兜底打開)。

  • 切走不卸載:頁面掛在 document.body 上,切換到其他面板再回來,對話、滾動位置、正在生成的回答仍保留,頁面不重載。
  • 面板頂部有緊湊工具欄:標題、登錄態、重新加載、在系統瀏覽器打開、以及(有快照時)「忘記本機登錄」。
  • 頂部留白按平臺區分:Windows 由外層框架預留標題欄,頁面只留 16px;macOS 才疊加 --dsh-frame-top-clearance。
  • 固定 WORKSPACE_KEY 爲 dsh-deepseek-site,所有工作區共用同一個 guest 分區,登錄與站點偏好不隨工作區切換重置;代價是工作區之間不隔離該瀏覽容器。

導航與白名單

chat.deepseek.com 站內跳轉留在內嵌頁;站外 https 鏈接交給系統瀏覽器,且 2 秒內同一地址只開一次。

User-Agent

僅從 UA 中去掉 Electron/<版本> 這一個產品標記,平臺與內核版本原樣保留。站點若檢測 UA 中是否含 electron 字樣,需在頁面腳本運行前寫入 useragent 屬性,並在 dom-ready 時再調用一次 setUserAgent。

無桌面瀏覽器 API 時的行爲

運行環境沒有 window.dshDesktop.browser(例如在普通瀏覽器裏打開 Web UI)時,面板顯示說明卡片並提供兜底按鈕,不會靜默跳轉。

登錄記憶(快照 + 回放)

guest 分區名爲 dsh-sidebar-browser-<uuid>,無 persist: 前綴,進程內有效;應用重啓後 guest 的 localStorage 會空。插件用快照繞開:

  1. 在站點文檔每次 did-finish-load、站內路由變化、以及窗口可見時每 15 秒執行 CAPTURE_SCRIPT,只讀 userToken 與 __appKit_userInfo。
  2. 有 token 則寫入應用文檔 dsh-app://app/ 的 localStorage(鍵 deepseek-site:sign-in:v1);該 scheme 默認 session 持久化,快照可跨重啓。
  3. 下次打開面板,在 did-finish-load 時用 restoreScript 寫回 guest 的 localStorage,寫過則 reload() 一次;回填期間有遮罩,避免登錄頁閃爍。
  4. 同一次運行內 guest 已有有效 token 時不覆蓋,避免把新登錄寫回舊快照。

工具欄「已記住登錄」表示快照已保存;狀態文字含義如下:

狀態 含義
已回填登錄 快照寫進內嵌頁並重新加載了一次
登錄有效 內嵌頁本來就有 token,沒有覆蓋
無登錄快照 本機還沒記錄過登錄,或回填被拒

「忘記本機登錄」會同時刪除應用文檔裏的快照和 guest 內兩份憑據後重載;只刪一側會被捕獲邏輯再次寫回。

診斷信息寫入應用文檔 localStorage 的 deepseek-site:diag:v1(環形緩衝最近 20 條,僅在結論/次數/token 長度變化時追加),字段爲 at、note、attempts、tokenLen,不含 token 或完整 URL。

安裝與啓用

已抓取資料中的 README 與 package.json 未給出 Harness CLI 的一行安裝命令;請從 SkillHub 目錄頁或倉庫說明中確認當前推薦安裝方式,不要憑倉庫名自行拼接未在文檔中出現的命令。

bundle 通過 cordis.patch.yml 將 deepseek-site 插入 profile;客戶端在 package.json 中聲明爲 dsh.client.platform: web、immediately: true。啓用後重啓或按你使用的 DSH 版本要求 reload 插件即可在左側看到入口。

典型用法

  1. 在 Harness 桌面版(具備 window.dshDesktop.browser)中安裝並啓用插件。
  2. 點擊左側欄 DeepSeek 入口,在中央面板完成官網登錄(首次無快照時會走正常登錄頁)。
  3. 日常在 Harness 內與其他面板切換,內嵌對話保持不 reload。
  4. 需要站外鏈接或排查問題時,用工具欄「在系統瀏覽器打開」或「重新加載」。
  5. 換機或不再信任本機存儲時,點「忘記本機登錄」,或移除插件後清理 Electron 用戶數據目錄下相關 Local Storage/leveldb 數據。

更細的時序與容器結構見倉庫內 docs/architecture.md;本機環境坑見 docs/pitfalls.md。

適用場景與注意

適合:希望在 DSH 單窗口內長期使用官方 chat.deepseek.com、減少瀏覽器來回切換,並願意在本機保存登錄快照的用戶。

務必知曉:

  • 快照爲明文 JSON,存於 Harness 桌面版 Electron 用戶數據目錄(含 Local Storage/leveldb),敏感程度與 Harness 自身登錄相當;同源的其它插件理論上可讀,勿安裝來路不明的 bundle。
  • 插件以當前 DSH 進程權限運行,安裝前應通讀 client.js 與 MIT 許可證。
  • 僅複製 userToken 與 __appKit_userInfo,不復制其它 __appKit_* 特性鍵,以控制暴露面。
  • 非桌面 Web UI 環境只能看到說明與兜底,無法完整內嵌。

結尾

dsh-deepseek-site 把官方對話頁收進 Harness 左欄 + 中央面板,用保活與 UA 處理改善內嵌體驗,用應用文檔 localStorage 快照解決 guest 分區不持久的問題。細節與測試見 GitHub 倉庫(含 test-signin.cjs)。

  • 插件目錄:https://www.skillhub.cn/plugins/WJMACTD/dsh-deepseek-site
  • 源碼:https://github.com/WJMACTD/dsh-deepseek-site
羽毛球分组比赛记分
小程序二维码

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

小夜