前言¶
DeepSeek Harness(以下簡稱 DSH)的理念是「一切皆插件」,左側「工作區 / 會話」列表也不例外。原生列表按傳統樹狀或固定順序展示會話,橫向會話一多,當前真正在跑的那個往往不在視野內,你得靠相對時間和記憶去翻。dsh-activity-view 就是社區作者 bloodtmai-cmyk 針對這個痛點做的客戶端插件:它把側欄會話列表的列表主體換成按活躍度排序的活動視圖,每行帶所屬項目名和運行標記,置頂和今天的會話都排在顯眼位置,並且只在你顯式設置時讓位給原生列表。
這是什麼¶
dsh-activity-view 是一個 DSH 客戶端 UI 插件,維護者爲 bloodtmai-cmyk,在社區插件目錄 SkillHub 上歸類爲「客戶端」,星標目前爲 0,版本 1.0.1,許可證 MIT。它解決的問題很窄:原生會話列表對「最近活躍」「正在運行」兩個維度表達不足,該插件不改邏輯,只換列表的呈現方式。它註冊爲宿主插槽 sidebar.workspaces.sessions 的佔用者,只替換列表體,工具欄、搜索、視圖選項、workspace 控件、行內按鈕和右鍵菜單都保持原生。
核心功能¶
1、置頂塊在最上方。你在原生界面手動置頂的會話(官方 pinnedSessionIds,歸檔的不進這塊)被提到頂部,不帶分組標題、只出現一次,且不佔普通行的 25 行上限。
2、其餘按日期分組。剩下的會話按官方活動時間 updatedAt 分成今天 / 昨天 / 更早,越新越靠前。組內運行中的會話排在前面,並帶圓形運行標記;運行中的行不顯示相對時間。因此普通運行會話始終排在「今天」組內靠前,即使它的 updatedAt 較早。插件只改變呈現,不去改寫存儲的時間戳。
3、只認官方 id。去重按官方行 id 精確匹配,session-<uuid> 與 <uuid> 不互相歸一,標題或工作區相同但 id 不同的會話不會被合併,子代理行也不列出。
4、數據來源與原生一致。列表渲染宿主通過 props 傳入的快照(無 props 時退回官方 ctx.sessions.list),宿主重新發布就重渲染。分鐘級本地時鐘只推進相對時間和「今天 / 昨天」邊界,不是數據輪詢。
5、尊重原生選擇。你在原生菜單改過「分組方式 / 排序」後,插件退出活動模式,由原生列表按你的選擇渲染,插件不回寫該設置。
安裝與啓用¶
該插件通過 DSH 插件管理器安裝,命令直接來自倉庫 README:
plugin_manager install_bundle github:bloodtmai-cmyk/dsh-activity-view
倉庫帶 dsh-plugin topic,市場索引也會收錄它。安裝前確認宿主運行時與 package.json 的 engines.dsh = 0.2.2-rc.1 精確匹配。不匹配時整個 bundle 會被 loadProfileDirectory() 跳過(skippedBundles),補丁一行都不生效,原生 UI 原樣保留。
裝好後無需額外配置。插件清單顯示 client 端會注入 locale、timer、sessions、layout、uiWorkspace,平臺爲 web,immediately: true,隨宿主一起加載。
典型用法¶
1、確認插件生效。安裝命令執行後打開側欄:若列表變成頂部置頂塊 + 今天 / 昨天 / 更早分組,說明 patches/0001-sidebar-workspaces-sessions-slot.patch 和 patches/0002-sidebar-navigation-action-slot.patch 都已打上;若仍是原生順序,說明運行時版本不匹配導致 bundle 被跳過,或補丁步驟在某一步失敗,此時查宿主側的可觀察狀態(如 skippedBundles)再判斷。
2、手工置頂。在原生界面裏對某個會話執行置頂,它會立刻出現在活動視圖頂部的置頂塊,且只有一份。
3、跑一個會話。啓動新會話後回到側欄,該行會在它所屬的日期分組內跳到前面,並帶圓形運行標記。此時它不一定在列表最頂端——頂部永遠是你手動置頂的塊;但只要它在運行,就不會被推到分組後面。
4、切回原生。在原生菜單裏改變分組或排序,插件自動讓位,由原生列表渲染你的選擇。
5、讓列表重新恢復原生。卸載該 bundle 即可,cordis.patch.yml 原本禁用的原生 ui-sidebar / ui-workspace 行會恢復。
適用場景與注意¶
適合會話數量多、需要頻繁回到「當前在跑的那個」的 DSH 用戶,以及想保留原生工具欄又想要活動排序的人。不適合期望插件去改寫時間戳、合併同名會話或列出子代理行的場景——這些行爲是刻意不做的。
需要注意三點:
1、插件以當前 DSH 進程的權限運行,安裝前應先打開倉庫讀一遍源碼和 LICENSE(MIT),確認 patches/ 與 compat/ 兩個包的改動符合你的預期。
2、版本匹配只決定 bundle 能否加載,不保證打補丁、模塊導入、插槽聲明在你機器上都成功。文件讀寫失敗、導入報錯、插槽未聲明、同 priority 已被佔用,都可能讓該區域沒內容或退回原生列表。判斷 UI 之前先看宿主側的可觀察狀態。
3、compat/ 下兩個包是按宿主內部模塊結構打補丁的 vendored 副本,宿主升級後可能失配;升級後請重新校驗,不要假定仍可用。
結語¶
dsh-activity-view 的價值在於把「當前活躍、正在運行」這件事前置到側欄的視覺排序裏,同時不破壞原生列表的其他結構,改動面控制在兩個補丁加兩個 compat 包。它目前星標爲 0,屬於早期社區作品,安裝前按上面的注意事項覈對宿主版本和源碼即可。
- 社區目錄:https://www.skillhub.cn/plugins/bloodtmai-cmyk/dsh-activity-view
- 倉庫:https://github.com/bloodtmai-cmyk/dsh-activity-view
(SkillHub 是獨立社區站點,與 DeepSeek / 幻方無官方從屬關係。)