Skip to main content
Q

dsh-client-ui-session-mention

qiyu166/dsh-client-ui-session-mention

Type @ in the composer to reference another conversation: pick a historical session and inject its compacted context into the current prompt.

Install

dsh plugin --profile web add github:qiyu166/dsh-client-ui-session-mention

README

dsh-client-ui-session-mention

在 DeepSeek Harness 里,像 @ 联系人一样 @ 另一个对话:弹出历史会话列表,选中后把那个会话的压缩总结注入当前对话,让工作区里并行的多个会话真正协作起来。

Type @ in the composer to reference another conversation — pick a historical session and its compacted context is injected into the current prompt. Turn the parallel conversations in your workspace into one collaborative team.


为什么写这个插件(背景与动机)

DeepSeek Harness(DSH)是一个多工作区、多会话并行的工作台。真实使用中,同一时刻往往有多个会话各司其职:

  • 会话 A 在后台持续监控一个抓取任务(比如 2515 个车次的铁路时刻表);
  • 会话 B 在排查报错、配置模型提供方;
  • 会话 C 在讨论方案、写代码。

但 DSH 的会话彼此是信息孤岛:每个会话的助手只看得见本会话的对话历史,看不见其他会话在干什么。跨会话协作原本只有笨办法:

  • ❌ 手工复制粘贴一大段内容;
  • ❌ 让助手去翻 ~/.dsh/sessions/ 下的日志文件(能看,但绕、要描述"哪个会话");
  • ❌ 把旧会话内容口头转述一遍(丢信息、费 token)。

真正触发这个插件的场景很具体:"另一个会话里那个抓取任务,到底抓好没有?"——最好的交互,就是像微信/钉钉里 @ 一个人那样,直接 @ 一下那个会话。于是有了这个插件:

输入 @ → 弹出历史会话 → 选择 → 该会话的"总结过的内容"自动注入当前对话,助手直接读到。

它能干什么

能力说明
@ 弹层输入 @ 即弹出「历史会话」候选菜单,按最近更新排序;可继续输入标题/路径关键词过滤;当前会话自动排除
一键引用选中后插入规范引用 @[标题](dsh-session:<uri>),随消息发送
快照注入被引用会话以只读快照注入到当前提示词之前——助手读到的是该会话的压缩总结(compaction 检查点)与近期保留内容
零副作用不切换模型、不修改被引用会话、不改变现有会话行为,纯只读引用

典型协作场景

  1. 任务接力/进度同步:会话 A 在跑长任务,在会话 B 里 @ 一下 A,助手立刻知道"done/pending 到哪了、还剩多少",不用翻日志;
  2. 结论跨会话复用:把方案讨论会话的结论带到新会话,避免重述;
  3. 交接与复核:让另一个会话(或之后的自己)快速掌握某会话"总结过的要点";
  4. 细枝末节可查:快照给的是总结;需要细节时,可让助手进一步查看源会话(本插件不做限制)。

怎么使用

安装

# 1. 先装依赖插件(host 侧负责引用解析与快照注入)
dsh plugin --profile web add dsh-session-link

# 2. 再装本插件
dsh plugin --profile web add dsh-client-ui-session-mention

# 3. 重启 Web GUI 并刷新页面
dsh web

依赖说明:本插件是纯客户端插件,只负责「列出会话 + 插入引用文本」;引用快照的解析与注入由 dsh-session-link(内部使用官方 @deepseek-ai/dsh-session-reference 服务)在 host 侧完成。装 dsh-session-link 还额外带来"复制/粘贴 dsh:// 会话深链"的兜底能力。

使用步骤

  1. 在聊天输入框输入 @
  2. 候选菜单出现 「历史会话」 分组(当前会话已排除,空白新会话不显示);
  3. 继续输入标题关键词可过滤,回车或点击选择;
  4. 发送消息——被引用会话的压缩总结会以 ## Referenced sessions 快照注入,助手即可读取其内容并据此回答。

工作原理

输入 @  →  input-trigger 管线检测到 @ 触发
        →  本插件从 ctx.sessions.list 列出历史会话(与侧边栏同一份数据)
选中    →  插入 @[标题](dsh-session:<base64url>) 规范引用
发送    →  dsh-session-link 的 agent/pre-step 钩子解析引用
        →  dsh-session-reference 将被引用会话投影为只读快照(含压缩总结检查点)
        →  快照注入到当前提示词之前,助手读取其内容

设计上刻意保持"薄客户端":所有会话数据与快照逻辑都复用 Harness 现有服务,本插件只做触发、列选、插文本三件事,因此体积小、风险低、易维护。

设计取舍与已知限制

  • 快照是"总结"而非"全文":只含用户/助手文本与压缩检查点;工具调用、推理过程、图片不跨会话传播——这是有意为之(满足"读总结"的核心需求,细节按需再查);
  • 单条消息最多引用 3 个会话,每个快照上限 64KB(超出截断;压缩过的会话只提供最新检查点及其后内容);
  • 隐私提示:被引用会话的文本会随当前会话发送给当前会话所用模型(例如把 DeepSeek 会话引用到千问会话,内容会进入千问请求),含敏感内容的会话请谨慎引用;
  • 新插件需重启 dsh web 加载,后续小改动走 HMR;
  • 要求 dsh web 0.1.0-rc.6 及以上(依赖 input-trigger 管线与 sessions 服务)。

License

MIT

Related plugins