dsh-wide-stats-footer:移除 DeepSeek Harness 編寫器統計頁腳的寬度限制

前言

DeepSeek Harness (DSH) 的插件系統允許對客戶端進行擴展。在 Web 配置文件下,編寫器底部的統計行(StatsLine)默認受到 CSS 模塊規則的寬度限制。當在寬屏設備上使用時,較長的統計信息會被截斷,僅顯示部分內容,這影響了信息的完整展示。

dsh-wide-stats-footer 插件旨在解決這一顯示問題,它通過運行時動態發現 CSS 模塊哈希,並應用精確的 CSS 覆蓋規則,移除了統計頁腳的寬度限制,使其能夠跨越完整的編寫器寬度並居中顯示。

插件簡介

  • 名稱:dsh-wide-stats-footer
  • 所有者:thomasvvugt
  • 類別:客戶端
  • 許可證:MIT

該插件的核心功能包括:
1. 移除編寫器統計頁腳的寬度限制。
2. 使統計行跨越完整的編寫器寬度並居中顯示。
3. 解決寬屏上長統計行被截斷的問題。
4. 通過 CSS 覆蓋精確調整寬度限制和水平內邊距。
5. 運行時動態發現 CSS 模塊哈希以適應 DSH 構建。
6. 降級爲靜默無操作以防破壞 UI。
7. 零 npm 依賴且無安裝腳本。

安裝與啓用

安裝此插件需要使用 DSH 的 CLI 工具。

  1. 執行以下命令安裝插件:
    dsh plugin --profile web add github:thomasvvugt/dsh-wide-stats-footer
  1. 安裝完成後重啓 dsh web。

  2. 確認插件已加載,運行配置轉儲命令並查找 dsh-wide-stats-footer 層:

    dsh --profile web --dump-config
  1. 若需固定版本(例如 v0.1.0),可指定版本號:
    dsh plugin --profile web add github:thomasvvugt/dsh-wide-stats-footer#v0.1.0

工作原理

DSH 使用 CSS 模塊機制生成帶有哈希前綴的類名(例如 .{hash}_root)。由於構建過程中哈希會發生變化,硬編碼 CSS 選擇器是不可行的。

插件在運行時通過以下方式動態定位目標元素:
1. 掃描 document.styleSheets,查找統計行分隔符規則(通常包含 .{hash}_sep)。
2. 驗證其兄弟元素 .{hash}_root 是否聲明瞭 max-width: var(--dsh-chat-content-width) 限制。
3. 通過 MutationObserver 監聽 DOM 和 <style> 標籤的變化,在 DSH 重新構建或切換主題時重新執行發現邏輯。

一旦發現目標,插件會注入一條 CSS 規則:

.{hash}_root.{hash}_root { max-width: none; padding-left: 0; padding-right: 0; }

該規則使用了雙類選擇器,將特異性提升至 (0,2,0),從而覆蓋 DSH 原始規則 (0,1,0) 的限制。同時保留 text-align: center 和 width: 100%,確保頁腳在容器內居中。

如果未來 DSH 的標記或結構發生改變導致發現失敗,插件會自動降級爲靜默無操作,確保不會破壞原有 UI。

診斷與故障排查

插件提供全局診斷對象 window.__WIDE_STATS_FOOTER__ 供開發者檢查狀態。在瀏覽器開發者工具控制台中查看該對象:

{ appliedAt, styleHash, domHash, overrideChars, inlineFixed, lastSyncAt }

常見問題排查:

  1. 頁腳仍被截斷:

    • 檢查 styleHash 和 domHash。如果兩者均爲 null,說明哈希發現失敗,可能是 DSH 版本更新導致標記結構變化,插件已降級爲靜默無操作。
    • 檢查 overrideChars。如果爲 0,說明覆蓋規則未生效。
    • 檢查 appliedAt。如果爲 null,說明插件未運行,請確認已重啓 dsh web 且 dsh --dump-config 中包含該層。
  2. 更新後失效:

    • 如果僅在 DSH 更新後失效,通常是 CSS 模塊哈希旋轉。插件支持運行時重新發現,但若標記結構改變,則需降級。

注意事項

  • 客戶端插件:該插件僅作用於客戶端,無主機端行爲或配置項。
  • 版本兼容:基於 DSH 0.1.1-rc.2 構建。
  • 性能影響:插件不會減慢應用速度。發現邏輯僅在啓動時運行,且 MutationObserver 僅在 DOM/Style 變化時觸發,無輪詢。
  • 主題兼容性:插件使用雙類特異性 (0,2,0),可覆蓋 DSH 原始規則。若自定義主題使用了同等或更高的特異性覆蓋該樣式,則主題優先,這是符合預期的行爲。

結語

dsh-wide-stats-footer 爲開發者提供了一種低成本的方式來修復 DSH 客戶端在寬屏下的統計信息顯示問題。通過動態 CSS 發現機制,它保證了在 DSH 版本更新下的兼容性。

該插件可在 SkillHub 插件目錄 查看,源碼位於 GitHub。

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

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

小夜