SipengXie2024/dsh-session-topics ↗★ 0
dsh-session-topics
Session topic titles for DeepSeek Harness: LLM-generated titles for sessions stuck on the prompt-excerpt fallback, retry on every turn end, plus a /topics-size endpoint for the hover-card size patch (out-of-tree plugin)
安装
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:SipengXie2024/dsh-session-topics说明文档
阅读完整 README ↗dsh-session-topics
DeepSeek Harness 的会话话题标题插件(host 半边,无 client UI)。
v0.2.0:服务获取全部改
ctx.inject晚绑定——v0.1.0 在 apply 里ctx.get()即时取值,实测某次 boot 竞态导致/topics-size静默缺失。 v0.3.0:悬停大小补丁自愈合——插件每次启动自检船载 bundle,补丁被升级冲掉就自动重打(共享层文件是 pnpm store 硬链接,补丁按"先删后写"落盘)。手动脚本scripts/patch-hover-size.mjs仍保留,未装插件的机器可用。
功能
- 启动扫描:dsh 启动 8 秒后扫一遍所有持久化会话,凡是还挂着"提示词截断"兜底标题的,用当前默认模型生成 AI 标题写回会话日志(
session/title事件,来源provider: session-topics)。手动改过名的会话(user 固定)永远不碰。 - 回合结束重试:每个 agent 回合结束(running → idle)时,若该会话标题仍是兜底状态,立刻补一个。bundle 层监听覆盖所有会话。
- 大小接口:
GET /topics-size?id=返回该会话持久日志的字节数,供悬停卡片补丁显示"多少 MB"。 - 排障接口:
GET /topics-sweep手动触发一轮扫描,返回每个会话的处理结果(JSON)。
为什么不复用官方 session-title-first-prompt-llm:它全进程只允许注册一个 provider(重复注册抛错)、只按首条消息一次性生成、失败不重试,且 maxOutputTokens=64 对推理模型必败。本插件不注册 provider,直接追加标题事件,官方 title fold 会正常折叠。
安装
cd C:\Users\72334\OneDrive\Desktop\dsh-session-topics
npm pack
dsh plugin --profile web add .\dsh-session-topics-0.3.0.tgz
# 重启 dsh web 生效
重装同一个版本号不会更新文件(pnpm 去重),改代码后必须 bump version 再 pack + add。
悬停卡片补丁(插件已自动处理)
会话列表的悬停卡片属于船载包 dsh-client-ui-workspace,没有插件槽位,只能打补丁。v0.3.0 起插件每次启动自动检查并重打,包括 dsh 升级共享层重建之后——不需要任何手动步骤。
手动脚本仍保留(未装插件的机器、或想确认补丁状态时用):
node C:\Users\72334\OneDrive\Desktop\dsh-session-topics\scripts\patch-hover-size.mjs
- 幂等,已打过会跳过;锚点失配(版本漂移)会报错退出,不改文件
- 补丁指向
/topics-size,由本插件提供;插件没装/没启动时大小行静默不显示