dsh-agentbox:爲 DSH Web Shell 補齊小屏與移動端體驗

前言

DeepSeek Harness(DSH)的 Web Shell 默認按桌面佈局設計:官方樣式裏幾乎只有 prefers-reduced-motion 一類媒體查詢,沒有針對手機寬度的斷點。在窄屏上仍會呈現三欄桌面佈局,側邊欄會擠壓對話區,輸入框的 Enter 行爲也偏桌面習慣。若你經常用手機或小平板訪問 DSH(例如把實例當作長期在線的 agent box),這些細節會直接影響可用性。

下面介紹社區插件 dsh-agentbox:以可開關的 DSH 插件形式交付移動端與小屏修正,而不是直接改上游補丁,以便在 DSH 升級後仍可通過 profile 組合保留能力。

這是什麼

  • 名稱:dsh-agentbox(GitHub:charysrinathsc/dsh-agentbox)
  • 維護者:charysrinathsc
  • 分類:客戶端(Web profile)
  • 定位:面向 DeepSeek Harness Web Shell 的移動端與小屏修復,各項能力默認開啓,並可通過配置逐項關閉。
  • 許可證:MIT(見倉庫 README)

插件源於作者長期在手機上驅動 DSH 的實際使用場景;與「改源碼打補丁」不同,它通過 DSH 的插件與 bundle patch 機制注入樣式與行爲。

核心功能

功能均掛在開關後,默認全部爲 on。README 中的對照如下。

開關 作用
mobileCss 僅在寬度 ≤640px 時:收回 56px 軌道、讓打開的側邊欄覆蓋對話區而非擠壓、點擊會話後自動收起側欄、避免 transcript 透過 composer 顯示。
usageDockCompact 將 usage 指示壓成單行。
usageDockTerse 將 dock 改寫爲符號形式(如 ↓319M ·↑937K ·⚡100%),去掉冗長指標。
enterNewline 在移動端:Enter 換行,發送按鈕負責發送;與 stock DSH「Enter 發送、Shift+Enter 換行」相反,更符合手機鍵盤習慣。

此外還有若干小修正:composer 使用不透明背景,避免 transcript 從輸入帶周圍透出;dock 允許換行而不是被裁切。

安裝與啓用

安裝命令來自倉庫 README,需已有帶 web profile 的 DSH 環境。dsh plugin 會在 profile 目錄內轉發到 pnpm。

# into a profile — `dsh plugin` forwards to pnpm in the profile directory
dsh plugin --profile web add github:charysrinathsc/dsh-agentbox

# then sign the profile
dsh restart

包內帶有 dsh.bundle.patch,會由 profile 自動組合進 bundle。若要關閉某項能力,在 profile 的 cordis.patch.yml 中覆蓋配置,例如關閉移動端 Enter 換行:

- id: dsh-agentbox
  config:
    enterNewline: false

典型用法與驗證思路

  1. 在 web profile 中按上文命令安裝並 dsh restart。
  2. 用瀏覽器將視口縮到 ≤640px,或直接在手機上打開同一 DSH Web 地址,檢查側欄是否 overlay、點擊會話後側欄是否收起、Enter 是否換行且由發送按鈕提交。
  3. 若需精簡 usage 區域,保持默認即可體驗 usageDockCompact 與 usageDockTerse;不需要時可僅在 cordis.patch.yml 裏逐項關閉(字段名與 README 表格一致)。

倉庫 tools/ 目錄提供維護用腳本(面向改插件或升級 DSH 後的自檢,非最終用戶必跑步驟):

  • health.mjs:檢查插件依賴的 DOM/CSS 假設是否仍成立(對 25 條負載假設做探測,失敗時非零退出)。
  • regress.mjs:在 WebKit 下檢查行爲是否仍符合預期(失敗時非零退出)。

更細的尺寸、踩坑與回退記錄見倉庫內 INTERNALS.md。

適用場景與注意

適合誰

  • 已在 DSH 中使用 web profile,並需要在手機或 ≤640px 寬度下穩定操作 Web Shell 的開發者或自用部署者。
  • 希望修正項隨 DSH 版本更新仍以插件形式保留,而不是維護私有 CSS 補丁的人。

環境要求(README)

  • 具備 web profile 的 DSH。
  • 移動端相關能力需在 ≤640px 寬度下驗證;其餘開關在任意寬度均可生效。

誠實限制(README Caveats)

  • iOS 鍵盤:composer 仍可能落在 iOS 鍵盤下方。Safari 會縮小 visual viewport 而不改 layout viewport;曾嘗試用 visualViewport.height 調整 frame 反而更差並已回退,README 將其視爲上游層面問題。
  • 選擇器脆弱性:DSH 的 class 名帶 hash,插件通過子串匹配,DSH 改版後可能失效;升級後宜跑 health.mjs / regress.mjs 或人工點一遍關鍵路徑。
  • 版本綁定:作者在單一 DSH 版本上開發與驗證,依賴 CSS 與 DOM 結構,大版本升級後需重新覈對。

安全與信任

DSH 插件在 當前 dsh 進程權限 下運行,客戶端插件會參與 Web 前端的加載與展示。安裝前請自行閱讀 GitHub 倉庫 源碼與 MIT 許可證,確認符合你的部署策略。社區目錄站點(如 SkillHub 上的插件頁)爲獨立生態索引,與 DeepSeek / 幻方無官方從屬關係,不等同於官方應用商店。

結尾

dsh-agentbox 把「小屏佈局、側欄交互、usage dock 密度、移動端 Enter 行爲」打包成可配置的 DSH 客戶端插件,適合以手機或小窗口長期驅動 DSH Web Shell 的場景。安裝與關閉單項能力均以 README 中的 dsh plugin 命令與 cordis.patch.yml 爲準。

  • 目錄頁:https://www.skillhub.cn/plugins/charysrinathsc/dsh-agentbox
  • GitHub:https://github.com/charysrinathsc/dsh-agentbox
羽毛球分组比赛记分
小程序二维码

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

小夜