前言¶
DeepSeek Harness(DSH)侧栏里的会话是按工作目录分组的:每个目录只显示最近几条,且只列你注册过的目录。当你同时在多个文件夹里开发时,一阵子没打开的项目会从侧栏里「消失」;会话若落在某个你没想到的目录下,找回来也不直观。
另一个常见情况是:对话进行中突然想到一句补充,但当下不想打断模型——没有专门的地方暂存,只能记在脑子里或别处。
下面介绍的 @whybebabo/dsh-recent-sessions 是 DSH 客户端插件,在侧栏增加一块不跟单个会话绑定的全局面板:一张跨所有工作目录的扁平会话列表,以及只存本机、下次打开同一会话时再出现的「待问」小条。维护者为 whybebabo,社区目录分类为「记忆」。本仓库 fork 自 huangxp12/dsh-recent-sessions,两者注册同一个 recent-sessions 面板 id,不要与原版同时安装。
这是什么¶
插件 npm 包名为 @whybebabo/dsh-recent-sessions(当前版本 0.1.4,MIT 许可)。宿主半对会话数据零写入(空 apply);界面与交互走 DSH 文档化的扩展点(main keyed slot、sidebar.panellist、conversation.input.dock 等),无 DOM hack。
一句话定位:把所有工作目录里的会话拉平成一张列表,并提供一个「先记下来,回头打开会话时自己回来找你」的本机笔记位。
核心功能¶
跨目录会话列表¶
- 所有会话按最近活动排序,包括侧栏此刻折叠或未注册目录里的会话。
- 每行右侧有目录 chip,点一下只筛该目录;工具条会出现筛选胶囊,再点可取消。
- 第二行显示该会话最后一条人类提问(读宿主
turnOutline投影);悬停可看最后一条助手回复预览。 - 时间分组:今天 / 昨天 / 近 7 天 / 更早;可切换「最近活动」或「最久没动」排序(后者便于清理;时间桶顺序会一并倒序)。置顶会话单独成组,排在时间桶之前。
- 过滤:仅未收尾 / 含空会话 / 含子会话;已归档默认隐藏。视图状态存在本机
localStorage(键dsh-recent-sessions:store:v1),刷新后保持。
搜索与行级操作¶
搜索框会查宿主消息内容索引(全文),同时本地按标题/路径即时过滤;命中结果与列表共用当前目录与会话过滤条件。
行级动作包括:打开会话、在文件管理器中显示目录(依赖宿主报告桌面能力,否则退化为复制路径)、复制路径。
「迟到的想法」¶
在任意一行写一句话,只存本机、不发送任何消息。下次打开该会话时,输入框上方出现一行小条:展开可把内容填进草稿(InputActions.captureInsertion() + insertText,可撤销)、「先不打扰」(保留想法但不再提示)、或丢弃。
状态与外观¶
行首状态规则与侧栏逐条一致:空闲不画点、运行中转圈、待审批/待回答为琥珀点并将行尾时间换成短词、未读完成为绿点。插件还会订阅 ctx.uiSession.sessionStatus,在你没盯着会话时跑完则亮绿点(侧栏有时不置位未读时,面板侧更可靠,但插件无法补侧栏缺的那颗点)。
界面沿用 DSH 设计令牌与线条图标,无通知、无红色告警、不自动归档。
安装与启用¶
从 npm 安装(请将 <你的 profile> 换成实际 profile 名):
dsh plugin --profile <你的 profile> add @whybebabo/dsh-recent-sessions
本地开发时可指向仓库目录(README 示例路径为占位,请换成你的 clone 路径):
dsh plugin --profile <你的 profile> add /path/to/dsh_recent_locate
兼容性(见 package.json 的 engines):
- DSH
>= 0.2.0-rc.2 - 宿主半 Node
^22.19.0 || >=24.0.0
面板依赖 root hooks useSessions、useSessionStatus、useWorkspaces;缺任一时会显示明确错误提示。安装前建议浏览源码与 MIT 许可证;插件在当前 DSH 进程权限下运行,与宿主同等信任边界。
典型用法¶
- 在侧栏打开「最近会话」面板(与
recent-sessions面板 id 对应入口)。 - 从扁平列表里跳转到很久没碰的项目会话,或用目录 chip 缩小范围。
- 用「最久没动」排序配合过滤,整理长期未用的会话。
- 在列表某行写下「迟到的想法」;下次进入该会话时从输入框上方小条展开并填入草稿,再决定是否发送。
全文搜索与本地标题/路径过滤可同时使用;内容检索走 ctx.sessions.search(query, signal),结果套用当前视图过滤。
适用场景与注意¶
适合:多工作目录并行、依赖侧栏但常被目录分组「藏住」会话的 DSH 用户;需要在不唤醒对话的前提下暂存一句补充的场景。
注意:
- 勿与 huangxp12 原版同装(面板 id 冲突)。
- 提问预览默认只为前 30 行拉取投影;开启「仅未收尾」时会为状态判定额外补拉(并发受限)。投影失败会进入 5 分钟冷却。
- 想法与视图状态仅存浏览器本机;唯一写入会话的路径是你主动把想法填进草稿并发送消息。
- 发布包无构建步骤,仅含手写
lib/client.js与lib/index.js等小文件。
结尾¶
dsh-recent-sessions 用一块全局面板补上了 DSH 按目录分组侧栏在「跨目录找回会话」上的缺口,并用本机 deferred notes 接住暂时不想发送的补充。社区目录页:whybebabo/dsh-recent-sessions;源码与完整说明:GitHub。