Session Notes:DSH 会话划线便签

前言

在 DeepSeek Harness (DSH) 的开发或使用过程中,经常需要在对话中标记关键信息或保存思考过程。手动复制粘贴不仅繁琐,还容易丢失上下文关联。下面介绍 dsh-session-notes,它通过在对话中高亮文本并附加便签,将信息持久化并聚合展示,解决了这一痛点。

插件概览

dsh-session-notes 是一个非官方项目,由社区成员 iptton-ai 独立开发与维护,采用 MIT 许可证。它利用 CSS Custom Highlight API 实现零 DOM 修改的高亮,支持三种作用域(会话、工作区、全局)的便签管理。

核心功能

插件提供了以下核心能力:

  • 高亮与注释:支持跨加粗、行内代码及段落边界的选区。点击浮动按钮即可添加便签,选中文本获得持久高亮。
  • 三种作用域:便签可归属于“本会话”、“当前目录”或“全局”。在面板中新建、编辑或删除,作用域内的便签在对应会话中可见。
  • 面板过滤:右侧面板支持按“全部”、“当前目录”、“本会话”过滤,并显示实时计数。
  • 发送到编辑器:将便签内容与引用原文追加到当前输入框,方便继续追问。
  • 自愈高亮:通过 MutationObserver 监听 DOM 变化,每 5 秒进行一次 reconciliation,确保高亮在重渲染或分页后依然存在。
  • 任务笔记与定时触发:支持创建带有 next(下一步动作)、doneWhen(完成条件)的任务便签,或设置 dueAt(截止时间)的定时触发。前者可生成新会话,后者可自动触发。
  • 起源丢失防御:插件会每 3 分钟轮询 session/list。当任务所属会话被删除时,自动降级为通知模式,并在面板中提供决策卡片,避免静默失败。

安装与启用

支持常驻模式和动态模式两种安装方式。

常驻模式(推荐)

这是推荐的方式,插件在 dsh web 进程重启后依然存在。

dsh plugin --profile web add github:iptton-ai/dsh-plugin-session-notes

或者使用本地路径:

git clone https://github.com/iptton-ai/dsh-plugin-session-notes
dsh plugin --profile web add /abs/path/to/dsh-plugin-session-notes

动态模式

无需构建步骤,插件仅在当前 dsh web 进程生命周期内有效。

  1. 打开 DSH,使用“创造模式”或带有 cordis_define / cordis_run 工具的预设。
  2. 询问 Agent 安装:

    帮我安装这个插件:仓库 https://github.com/iptton-ai/dsh-plugin-session-notes。用 cordis_define 定义(读取 src/host.js 作为 code.host、src/client.js 作为 code.client,plugin id 前缀 snote),然后 cordis_run 激活并批准。

  3. 刷新页面后即可使用。

配置注意事项

  • 不要手动将 session-notes 行插入到 dsh.profile.bundles 的 cordis.patch.yml 中,这会导致重复注册。
  • 插件存储文件位于 ~/.dsh/storages/session-notes/notes.json。

使用方法

  1. 在 DSH 会话的消息中选中任意句子。
  2. 点击浮动出现的 📝 记便签 按钮。
  3. 在弹出的输入框中写下笔记。
  4. 在右侧面板中,可以切换过滤视图(全部/当前目录/本会话)查看所有便签。
  5. 点击便签可查看详情,点击编辑可修改。
  6. 选中已高亮的文本,点击发送到对话框,即可将笔记内容追加到当前输入框。

注意事项

  • 非官方项目:此插件由社区成员独立维护,不隶属于 DeepSeek 官方。
  • 权限范围:插件在宿主端仅对自身的存储文件 ~/.dsh/storages/session-notes/notes.json 拥有 danger-full-access 权限,不会触碰其他路径。
  • 数据持久化:常驻模式下数据持久化存储;动态模式下,若 dsh web 进程重启,需重新运行安装命令,但磁盘上的笔记数据通常会被保留。
羽毛球分组比赛记分
小程序二维码

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

小夜