会话工作线索悬浮窗:把和 AI 的长对话实时提炼成可跳转的「线索」,并用 DeepSeek 生成话题、进度与阶段历程
32.8/100
综合分
4
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/9 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
自动兼容检查有告警:未发布到 npm registry,仅可从源码安装。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add Celebrate-W/dsh-topic-trail该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · chat
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 26 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查⚠ 装前注意未发布到 npm registry,仅可从源码安装
展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✗npm 包dsh-topic-trail(未发布到 npm,仅可源码安装)
✓Node 引擎要求 >=20 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/21 07:07:42
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件发起外部网络请求
查看扫描证据(共 41 处,展示前 18 条)
- 读取本地文件lib/index.js:493
const parsed = JSON.parse(await readFile(tokenUsagePath(), 'utf8')) - 写入本地文件lib/index.js:513
await mkdir(dataDir(), { recursive: true }) - 写入本地文件lib/index.js:514
await writeFile(tokenUsagePath(), JSON.stringify(tokenUsage, null, 2), 'utf8') - 读取本地文件lib/index.js:545
const parsed = JSON.parse(await readFile(notesPath(), 'utf8')) - 写入本地文件lib/index.js:559
await mkdir(dataDir(), { recursive: true }) - 写入本地文件lib/index.js:560
await writeFile(notesPath(), JSON.stringify(notesCache || {}, null, 2), 'utf8') - 写入本地文件lib/index.js:581
await mkdir(dataDir(), { recursive: true }) - 写入本地文件lib/index.js:582
await writeFile(runtimeConfigPath(), JSON.stringify(obj, null, 2), 'utf8') - 读取本地文件lib/index.js:592
const parsed = JSON.parse(readFileSync(runtimeConfigPath(), 'utf8')) - 读取本地文件lib/index.js:636
const parsed = JSON.parse(readFileSync(workspaceProfilesPath(), 'utf8')) - 读取本地文件lib/index.js:781
const text = await readFile(trailFile(sessionId), 'utf8') - 读取本地文件lib/index.js:2020
const raw = readFileSync(join(home, 'storages', 'workspace.json'), 'utf8') - 发起网络请求lib/client.js:1081
fetch('/plugins/topic-trail/notes', { - 发起网络请求lib/client.js:1097
fetch('/plugins/topic-trail/notes', { - 发起网络请求lib/client.js:1137
fetch('/plugins/topic-trail/notes', { headers: { Accept: 'application/json' } }) - 发起网络请求lib/client.js:1485
fetch('/plugins/topic-trail/bubble-quotes', { - 发起网络请求lib/client.js:1678
fetch('/plugins/topic-trail/config', { headers: { Accept: 'application/json' } }) - 发起网络请求lib/client.js:1801
return fetch(url, { headers: { Accept: 'application/json' }, signal: AbortSignal.timeout(REQUEST_TIMEOUT_MS) })
扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/dsh-client-runtime@deepseek-ai/dsh-llm给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
界面预览
1 张 · 点击查看大图功能亮点
- 实时提炼对话线索
- 线索可跳转
- 生成话题进度阶段
README
由 DeepSeek 最新模型翻译生成dsh-topic-trail
会话工作线索悬浮窗 —— 把和 AI 的每一次长对话,实时提炼成看得见的「线索」。
dsh-topic-trail 是 dsh(DeepSeek Harness)的插件。它在 Web UI 里挂一个可拖动的悬浮窗,一边对话一边把内容整理成话题(线索)→ 进度步骤 → 阶段历程,让你随时知道「这件事做到哪了」。
长会话最常见的困扰是「刚才那段结论在哪儿」。这个插件让线索自己浮出来,点一下就能跳回对话里的那一条。
界面预览
特性
线索组织
- 三级网络:全部工作区 → 工作区 → 会话 → 线索 → 步骤,逐层下钻
- AI 实时提炼:用 DeepSeek 把会话流总结成线索(标题 / 摘要 / 状态 / 阶段历程)
- 规则模式兜底:不调用模型也能用;模型不可用时自动回退,零成本运行
- 阶段历程:每条线索自动标注演进阶段(提案 / 探索 / 受阻 / 突破 / 完成);没有 AI 历程时用步骤推断一个基础历程
- 手动整理:拖拽合并线索、重命名、锁定(锁定后自动总结不会改动它)、删除
交互
- 点击跳转:点线索 / 步骤 / 历程中的任意一条,打开对应对话并滚动定位、高亮那条消息
- 导航下拉 + 搜索:按工作区 / 会话筛选,或直接搜线索标题
- 悬浮窗:可拖动、可折叠;收起后是一个会眨眼的小球,大小可调
展开完整文档(README 剩余 1 节)
dsh-topic-trail 会话工作线索悬浮窗 —— 把和 AI 的每一次长对话,实时提炼成看得见的「线索」。 dsh-topic-trail 是 dsh(DeepSeek Harness)的插件。它在 Web UI 里挂一个可拖动的悬浮窗,一边对话一边把内容整理成话题(线索)→ 进度步骤 → 阶段历程,让你随时知道「这件事做到哪了」。 长会话最常见的困扰是「刚才那段结论在哪儿」。这个插件让线索自己浮出来,点一下就能跳回对话里的那一条。 界面预览 特性 线索组织 - 三级网络:全部工作区 → 工作区 → 会话 → 线索 → 步骤,逐层下钻 - AI 实时提炼:用 DeepSeek 把会话流总结成线索(标题 / 摘要 / 状态 / 阶段历程) - 规则模式兜底:不调用模型也能用;模型不可用时自动回退,零成本运行 - 阶段历程:每条线索自动标注演进阶段(提案 / 探索 / 受阻 / 突破 / 完成);没有 AI 历程时用步骤推断一个基础历程 - 手动整理:拖拽合并线索、重命名、锁定(锁定后自动总结不会改动它)、删除 交互 - 点击跳转:点线索 / 步骤 / 历程中的任意一条,打开对应对话并滚动定位、高亮那条消息 - 导航下拉 + 搜索:按工作区 / 会话筛选,或直接搜线索标题 - 悬浮窗:可拖动、可折叠;收起后是一个会眨眼的小球,大小可调 - 主动展示:收起状态下偶尔冒出一句融合了最近线索的「碎碎念」气泡;间隔可在设置里调(默认 30 秒),话术会主动避开最近说过的内容 - 状态点三档:线索前的小圆点按最后活动时间着色——10 分钟内亮绿、一天内暗绿、更久变灰,避免停手不做的线索一直亮着绿灯 - 随手记:内置便签与画笔工具;画笔存的是笔画路径(非位图),支持撤销、缩放不糊,内容存在服务端而非仅浏览器 - 多皮肤:内置经典皮肤与 DeepSeek 主题,两套皮肤的头像、话术、气泡样式各自独立 - 跟随 dsh:在 dsh 里删除的工作区、归档的对话会自动从列表隐藏(可在设置里展示已删除项) 工程 - 零构建:client 半是纯 React + h(),直接由 dsh 提供,改完刷新即生效 - 快照缓存 + 分块折叠:会话很多时列表接口从数十秒降到毫秒级 - 子代理过滤:按血缘(origin / delegationDepth)识别并排除子代理会话,不与主会话混在一起 - 省 token:总结前先比对内容指纹跳过无变化的调用,并设最小间隔(默认 20 秒);可在设置里看估算用量(气泡与总结分开统计),并提供一键「轻简模式」 安装 指向你自己的 dsh 安装目录(下面用 $DSH_HOME 表示) $env:PATH = "$DSH_HOME\tools\node_modules\.bin;" + $env:PATH dsh plugin --profile web add file:C:/path/to/dsh-topic-trail 然后重启 dsh。 也可以把本目录放进 $DSH_HOME/plugins/,再用 cordis.patch.yml 的 insert 段注册。 配置 设置页里的选项会持久化到 $DSH_HOME/data/topic-trail/config.json,覆盖 cordis.patch.yml 里的基线值。 | 键 | 说明 | 默认 | | summarize | 总结方式:auto(优先 AI,失败回退规则)/ llm(强制 AI)/ rule(仅规则,不调模型) | auto | | provider / model | 总结用的 provider 与模型,留空则自动探测 dsh 的当前配置 | 自动 | | pollMs | 前端轮询间隔(毫秒) | 3000 | | bufferSize | 送给模型的上下文窗口大小 | 40 | | followSession | 切换对话时自动跟随到该对话 | true | | learnFromModifications | 记住你手动合并 / 整理的习惯,后续总结时参考 | true | | preserveTopics | 总结时保留已有线索,只追加新线索 | true | | workspaceMemory | 记住每个工作区的项目结构与总结偏好 | true | | workspaceViewMode | 工作区视图:merge(相似线索聚类)/ bySession(按对话分块) | bySession | | skin | 皮肤:default(经典蓝球)/ deepseek(DeepSeek 娘) | default | | ballScale | 收起小球的大小倍率(0.6 ~ 1.6) | 1 | | bubbleIntervalSec | 主动展示气泡的间隔秒数(5 ~ 300,实际有 0.7~1.5 倍随机抖动) | 30 | | showRemovedItems | 展示在 dsh 里已删除的工作区 / 已归档的对话(默认隐藏) | false | | leanMode | 轻简模式(省 token):总结间隔拉到 90 秒、不喂推理内容、气泡间隔翻倍 | false | | topicOrder | 线索排序:llm(AI 组织顺序)/ created(按创建时间倒序,最新在上) | llm | | eyeAnimation | 收起小球跟随鼠标的数字瞳孔、眨眼动画 | false | | proactiveDisplay | 主动展示气泡 | true | | enabled | 插件总开关(关闭后隐藏悬浮窗、停止记录) | true | 使用 - 点线索标题:展开阶段历程;步骤收在「显示步骤(N 步)」按钮后面,避免上千步的流水账把脉络淹没 - 点历程 / 步骤:跳转到对话里的对应位置 - 右键线索:重命名 / 删除 / 合并 - 拖拽线索到另一条上:合并(可走 AI,也可走规则) - 右键工作区:重新生成该工作区的全部线索 - Esc:逐层关闭浮层(右键菜单 → 画笔菜单 → 导航下拉 → 搜索 → 便签 → 展开的线索) 工作原理 1. host 半订阅 dsh 的会话事件流,把事件归一化成「步骤」,按规则即时聚成线索 2. 累积到一定量后把上下文交给 DeepSeek 总结,产出线索、阶段历程与摘要 3. client 半轮询快照渲染悬浮窗;步骤正文按需拉取(展开时才请求) 几个值得一提的实现细节: - 事件序号是全局的:step.seq 跨会话递增(可到百万级),所以跳转定位必须用会话内的相对位置 (seq - min) / (max - min),不能拿步骤条数当分母 - 时间戳来自事件本身:每个 dsh 事件都带 time,host 直接采用它;若用「插件处理这一刻」代替,历史重放会让成千上万条步骤的时间挤在同一秒,定位就失效了 - 重新生成有保护:读不到事件日志时不清空;结果为空或缩水到不足原来的 1/3 时整体回滚;已锁定与手动合并过的线索重建后会放回 已知限制 - 旧线索的定位精度:早期版本生成的线索里,步骤时间记的是「导入时刻」而非真实时间,只能按事件序号比例估算位置(±几条消息)。重新生成该会话的线索即可修正 - 主动展示气泡依赖浏览器的定时器;标签页长时间后台时可能被节流,间隔会变长 开发 - lib/index.js — host 半:路由、事件处理、规则聚类、LLM 总结、持久化 - lib/client.js — client 半:悬浮窗 UI(零构建,纯 h()) - cordis.patch.yml — dsh 插件注册与基线配置 改完 host 需要重启 dsh;只改 client 的话刷新浏览器即可。 许可 代码采用 MIT 许可证。 内置的皮肤头像(DeepSeek 娘 / 鲸鱼娘)是社区二创作品,不随 MIT 授权,版权归各自权利人所有。 它源自「溟月」(作者:上善无形,以 CC BY-NC-SA 4.0 开放二创),DeepSeek 版由 B 站用户 ZipZipPipe 二次创作。 使用时请遵循 署名 / 非商用 / 相同方式共享 三条要求;商业用途需先取得权利人许可。 详见 第三方素材说明。 本项目由人机协作开发:需求、验收与产品判断由人类给出,实现与排查由 AI 完成。
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
Celebrate-W/dsh-topic-trail
会话工作线索悬浮窗:把和 AI 的长对话实时提炼成可跳转的「线索」,并用 DeepSeek 生成话题、进度与阶段历程
相关插件 · 对话 / 记忆
上下文中枢oceanbase/powercontext
上下文跟着工作走 —— 跨会话、跨智能体、跨人。
★ 1,487已汉化DSH
73
智能体记忆库plastic-labs/honcho
Honcho 是记忆基础设施,用来构建有状态的智能体。这些智能体能理解不断变化的人、智能体、群组、项目和想法。
★ 7,894已汉化DSH
71.7
长程智能体控制面loopx-project/loopx
给 Agent 一个目标,让工作持续向前。
★ 6,358已汉化DSH
71.3
智能体上下文数据库volcengine/OpenViking
给 AI 智能体用的上下文数据库
★ 41,379已汉化DSH
71.3
长效机器人团队Fei2411/DS-Bot
DS Bot 是一个基于 DeepSeek Harness简称 dsh的 bot 插件,插件将 dsh 改造为 bot…
★ 5,084已汉化DSH
71.1
可携带记忆层EverMind-AI/EverOS
为什么选择 EverOS
★ 13,778已汉化DSH
71.1