dsh-chat-offscreen:保持長會話響應

前言

DeepSeek Harness (DSH) 的 Web 聊天會話在運行時間變長後,會話記錄(transcript)的 DOM 節點數量迅速增加。由於上游實現並未對聊天記錄進行虛擬化,每一個加載的歷史頁面都會保留在 DOM 中。在長會話中,拖動寬度調整手柄、側邊欄分隔線,或者快速滾動時,瀏覽器需要對數千個節點執行佈局和繪製操作,導致界面卡頓。

定位與原理

dsh-chat-offscreen 是一個客戶端插件,旨在解決上述性能問題。它通過注入一個樣式表,利用 CSS 的 content-visibility 屬性,讓瀏覽器跳過不可見區域內的輔助步驟和工具調用行的佈局與繪製。這相當於一種開銷極低的虛擬化近似方案,同時通過 contain-intrinsic-size 保持滾動範圍的穩定。對於包含寬 markdown 表格的行,插件會強制其保持可見,以避免寬度估算錯誤。

核心功能

  • 跳過不可見區域的佈局和繪製。
  • 提供開銷較低的虛擬化近似效果。
  • 保持滾動範圍穩定。

安裝與啓用

使用官方安裝命令添加插件:

dsh plugin --profile web add github:publieople/dsh-chat-offscreen

安裝後,重啓 Web 模式 (dsh web ...) 並在瀏覽器中硬刷新頁面(Ctrl+Shift+R)。由於 lib/ 目錄已包含構建產物,無需運行構建腳本。

典型用法

  1. 打開一個包含較長曆史的會話。
  2. 拖動聊天記錄寬度手柄或側邊欄分隔線,或者快速滾動頁面。
  3. 在瀏覽器開發者工具的 Elements 面板中檢查不可見的輔助步驟元素,應能看到 content-visibility: auto 屬性。

注意事項與兼容性

  • 渲染層修復:這是一個渲染層層面的變通方案,不涉及消息、會話事件或宿主狀態的修改。
  • 組合使用:可與已退役的 @linxin666/dsh-perf P0 規則配合使用。
  • 瀏覽器依賴:該功能依賴瀏覽器的 content-visibility 特性(Chrome/Edge 85+, Firefox 125+, Safari 18+)。在舊版引擎上,規則將處於非激活狀態,UI 表現與安裝前一致。
  • 風險提示:插件以當前 dsh 進程的權限運行,安裝前請檢查源碼與許可證(MIT)。

結語

該插件通過 CSS 技術在渲染層緩解了長會話的性能壓力。當 DSH 聊天界面獲得真正的虛擬化支持時,此插件即可移除。更多細節與源碼可參考下方鏈接。

插件目錄 | GitHub 倉庫

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

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

小夜