前言¶
用 DeepSeek Harness(下稱 DSH)跑長會話時,經常需要回到前面某一輪:回合一多,在 Chat 裏上下滾動容易迷路,切到 Trajectory 標籤頁又要重新找位置;而且舊回合未必已經加載進 Chat,滾也滾不到。DSH 的理念是「一切皆插件」,這類界面層的補足正適合交給社區插件來做。
下面介紹 karmiy/dsh-session-nav,一個在會話左側提供 Codex 風格導航的 DSH Web 插件。
這是什麼¶
dsh-session-nav 由 karmiy 維護,採用 MIT 許可證,定位是「DeepSeek Harness Web 的 Codex 風格會話導航插件」。它在會話左側加一條導航欄:每個用戶 / steering / 斜槓命令回合對應一條短橫線,點擊即可跳回對應回合。
它是一個純 overlay 插件:不替換 Chat、側邊欄或 Trajectory 標籤頁,只在會話列左緣疊加顯示。
核心功能¶
空閒狀態¶
空閒時,會話列左緣顯示一摞緊湊的短橫線堆疊,每個用戶 / steering / 斜槓命令回合對應一條。
懸停預覽¶
懸停時,鄰近短橫線以延遲波的形式變長,同時顯示提示氣泡、可選的 Worked for 時長,以及可選的 Edited N files +X −Y 文件卡片。
跳轉¶
點擊某條短橫線,或在導航欄上用 ↑ / ↓,把對應回合滾動到視野內。
完整日誌¶
舊回合即使 Chat 還沒有加載,也會從 session.history 列出。點擊一條舊回合時,插件會逐頁調用 loadOlder,直到該行存在,再滾動定位過去。
開關¶
會話頭部有一個對勾按鈕用於開關導航欄,偏好以 dsh-session-nav:enabled 存儲在 localStorage。
佈局¶
導航欄垂直居中,最高佔會話列高度的 66%;堆疊過長時在導航欄內部滾動。
數據來源¶
- Worked for 基於
turn/start…turn/end,回合進行中即時顯示; - 文件卡片來自回合內的 Diff / 編輯工具卡片,按
locations加上oldText/newText的行數統計。
安裝與啓用¶
1、確認 DSH 空閒。添加插件會重建 web profile,會中斷正在運行的任務,不要對正在運行任務的 profile 執行 dsh plugin add。
2、執行安裝命令:
dsh plugin --profile web add github:karmiy/dsh-session-nav
3、如果首次 add 失敗並出現 allowBuilds 提示——Git 託管的插件在安裝時構建,pnpm ≥10 會阻止這個 prepare 腳本——把提示中的 key 寫進 ~/.dsh/profiles/web/pnpm-workspace.yaml:
allowBuilds:
dsh-session-nav: true
4、重複同一條 add 命令,再重啓 web profile。
經過上面的步驟,導航欄就會出現在會話列左緣。
固定版本與本地安裝¶
如果不希望後續 push 改變實際運行的內容,可以固定版本安裝:
dsh plugin --profile web add github:karmiy/dsh-session-nav#v0.1.0
使用本地檢出時,先在檢出目錄執行 pnpm install,再用 link: 加絕對路徑安裝:
dsh plugin --profile web add link:/absolute/path/to/dsh-session-nav
開發¶
開發環境要求 Node ^22.19 || >=24(engines 爲 ^22.19.0 || >=24.0.0),packageManager 固定爲 pnpm@10.15.0。常用命令:
pnpm install
pnpm test
pnpm typecheck
pnpm build
其中 typecheck 和 build 需要把 DeepSeek Harness 檢出爲同級目錄 ../deepseek-harness。prepare 腳本只運行 tsdown,不做 typecheck,因此 dsh plugin add github:… 在沒有 harness 源碼的機器上也能完成構建。
適用場景與注意¶
適合在 DSH Web 裏跑多回合長會話、需要頻繁回看或跳到某一輪的人;只跑幾輪短會話的話,收益有限。
安裝前有兩點要注意:
1、插件以當前 dsh 進程的權限運行,安裝前應自行檢查插件源碼與許可證(本插件爲 MIT)。
2、再次確認 DSH 已空閒,避免重建 web profile 時打斷正在運行的任務。
結語¶
dsh-session-nav 的做法很剋制:不動現有界面,只在會話左緣加一條可跳轉的回合導航,並用 session.history 補齊未加載的舊回合,解決長會話裏「回不去某一輪」的問題。
- 社區目錄頁:https://www.skillhub.cn/plugins/karmiy/dsh-session-nav
- GitHub 倉庫:https://github.com/karmiy/dsh-session-nav
目錄爲獨立的社區站點,與 DeepSeek / 幻方無官方從屬關係。