dsh-session-title-stamp:用 DATE | CATEGORY | NAME 規範 DSH 會話標題

前言

在 DeepSeek Harness(DSH)里長期開多個工作區時,側邊欄會堆滿會話:標題往往是首條消息的前幾個字,或是隨對話漂移的自動摘要,跨項目掃一眼很難對齊「哪天、什麼類型、在幹什麼」。社區插件 dsh-session-title-stamp(維護者 xuedipiaofei)把會話標題收成可配置的 DATE | CATEGORY | NAME 模板,日期由插件按會話創建時間在本地時區計算,分類與名稱由模型提議、在本地校驗後渲染;並在 0.7.x 起提供設置頁、會話頭刷新按鈕,以及懸停時的時長 / 預估費用 / Token 統計。下面介紹它的定位、能力與安裝方式。

這是什麼

dsh-session-title-stamp 是 DSH 的 session title provider:通過 cordis.patch.yml 關閉內置的 session-title-llm 行,插入本包的 session-title-stamp provider,在 Host 側註冊 ctx.sessionTitle.register(),並複用 @deepseek-ai/dsh-session-title-llm 做路由、超時、取消、Token 上限與輔助請求日誌。格式渲染在依賴爲零的 lib/format.js 中完成。

默認標題形態:

DATE | CATEGORY | NAME

英文分類預設示例(categoryPreset: en):

1028 | Analysis | Short-drama platform verification
1027 | Fix | Four-device acceptance rework
1026 | Release | Ubuntu environment setup

中文爲默認分類詞表;也可自定義 categories。可選 categoryEmoji: true 得到類似 1027 | ⚡ 優化 | ... 的展示。

當前 npm 版本爲 0.7.1(MIT)。要求 DSH >=0.2.1-rc.3 <0.3.0,且會話需有可用的模型路由(標題請求默認用會話當前 provider/model,除非在配置裏指定 provider / model)。

核心功能

標題生成與格式

  • 模型只返回 {"category":"...","name":"..."};provider 負責日期、模板、分類校驗與名稱清理,空段會去掉相鄰分隔符,避免出現 ||。
  • 首次命名:provider 以 first-prompt 註冊,標題服務會在合適時機命名一次。
  • 手動重命名:會話頭 ↻ 按鈕、會話行 ··· 菜單頂部的 Generate title,或命令 /retitle,與自動刷新共用同一邏輯。
  • 複製標題:會話 ··· 菜單中增加 Copy title,複製完整標題字符串。
  • 失敗安全:重命名失敗時 保留現有標題,不會把側邊欄清空。

回合結束後的自動刷新

在 turn/end 完成一輪後,插件可在冷卻與凍結約束下自動刷新標題:

  • cooldown:默認 refreshMinIntervalMs 爲 2 分鐘,避免首輪迴答過快觸發兩次。
  • freeze:默認在用戶消息達到 refreshMaxTurns(100 條)後停止自動刷新;長會話主題通常已穩定,仍可用 /retitle。
  • 跳過:fork、子 agent 會話,以及用戶手動釘住的標題不會自動改。
  • 將 refreshOnTurnEnd: false 可回到按消息數的舊模式(retitleEvery)。

設置頁(0.7.0+)

路徑:Settings → Plugins → Session titles。可預覽當前模板下的標題、切換分類語言(中/英)、分類 emoji、日期格式、標題模板,以及自動刷新開關、最小間隔、消息凍結、可選的啓動回填等;保存寫入當前 profile 的插件配置,隻影響之後生成的標題,不會改寫已有標題。超時、預算、模型路由仍在 profile 配置裏。

懸停統計(0.7.0+)

在原生相對時間下方增加一行,例如 Duration 1h 51m · est. ≈¥4.11 · 131.7M tokens:

字段 含義
Duration 自 sessionStats 累計的模型與工具執行時間,非掛鐘時長
est. ≈¥… 按當前 DeepSeek CNY 價表對 tokenUsage 的粗估,非賬單
tokens 輸入、輸出、cache-read、cache-write 合計

數據在打開懸停卡片時向 Host 拉取;未加載過的會話不會僅爲數字而 resume。混用多模型時用最後使用的模型估算,可能與實際賬單有偏差;Host 無統計時該行省略,不影響刷新按鈕與自動標題。

與官方實驗包互斥

bundle 會禁用自帶的 session-title-llm 並插入本 provider。不要與 @deepseek-ai/dsh-experimental-session-titles-bundle 同時啓用:二者佔同一 provider 槽位,標題服務只接受一個 provider;若註冊競爭失敗,插件會打 warning 並保持 inactive,而不是拖垮啓動。

安裝與啓用

插件以當前 DSH 進程權限運行;安裝前建議瀏覽 GitHub 倉庫 源碼與 MIT 許可證。Electron Desktop 的 profile 由應用管理,應使用應用內 Plugins 頁,而不是 dsh plugin --profile desktop。

Discover 市場索引

在 Plugins → Discover → Index sources 增加:

https://cdn.jsdelivr.net/gh/xuedipiaofei/dsh-session-title-stamp@v0.7.1/market/index.json

從列表安裝 Session title stamp;以 profile bundle 形式出現,可在 Plugins 頁啓用或禁用。

CLI

從 GitHub 安裝:

dsh plugin --profile <profile> add github:xuedipiaofei/dsh-session-title-stamp

從 npm 安裝:

dsh plugin --profile <profile> add dsh-session-title-stamp

本地目錄(資料中的第三種方式,需你已有檢出路徑):

dsh plugin --profile <profile> add ./dsh-session-title-stamp

典型用法

  1. 安裝並啓用 bundle 後,新開或已有會話在首次 prompt 或回合結束策略滿足時會得到 日期 | 分類 | 名稱 標題。
  2. 需要立刻對齊當前話題時,在會話頭點 ↻,或在 ··· 選 Generate title,或輸入 /retitle。
  3. 要在側邊欄分享完整標題字符串時,用 Copy title。
  4. 想統一英文分類或打開分類 emoji、調整自動刷新間隔時,打開 Settings → Plugins → Session titles 改配置並保存。
  5. 懸停會話行查看累計執行時長、預估人民幣成本與 Token 總量,無需單獨打開 dashboard。

配置項(如 categoryPreset: zh | en、categoryEmoji、refreshMinIntervalMs、refreshMaxTurns 等)以 profile 中該插件的配置爲準;圖形設置頁與 YAML 修改的是同一套字段,具體鍵名見倉庫 README。

適用場景與注意

適合:希望側邊欄標題可掃描、跨項目對齊「日期 + 類型 + 短名」的 DSH 用戶;需要在列表懸停處快速看會話成本與 Token 量級、又不想開額外看板時。

注意:

  • 依賴會話可用的模型路由;無路由時無法完成 LLM 側的 category/name 提議。
  • 與官方 experimental session titles bundle 二選一。
  • 懸停費用爲價表估算,混合模型會話可能有偏差。
  • 社區目錄 SkillHub 插件頁 與 GitHub 爲獨立信息源,與 DeepSeek / 幻方無官方從屬關係;星標等元數據以各站點當時展示爲準(GitHub 上可見 1 star)。

結尾

dsh-session-title-stamp 把「會話在講什麼」寫進固定模板,把「這一會話大概花了多少」放到懸停一行;安裝命令與索引 URL 均來自項目 README。進一步細節與截斷未寫入的配置說明,見 GitHub 倉庫 與 SkillHub 目錄頁。

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

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

小夜