前言¶
在管理多个会话时,频繁切换固定状态或标记阅读进度往往依赖原生操作,不够直观。dsh-session-context-menu 插件通过扩展 DeepSeek Harness 的会话行注册表和配件槽位,提供类似 Codex 的生命周期安全会话上下文操作。它不修补安装的包,不检查 React Fiber,也不查询私有 DOM。
核心功能¶
该插件在会话行上下文菜单中提供以下操作:
- 固定与取消固定:保持固定行在现有相对顺序内领先。
- 标记已读/未读:带有可访问行指示器的状态标记。
- 工作区目录:使用 DSH 原生路径打开器显示工作区目录。
- 复制信息:复制工作区路径、会话 ID 或浏览器深度链接。
- 打开链接:在新浏览器窗口中打开深度链接。
- 集成操作:在同一个菜单中使用 DSH 内置的“重命名”、“Fork”和“归档”操作。
使用方法¶
通过以下方式打开共享操作模型:
* 会话行上的省略号按钮。
* 原生右键点击。
* Shift + F10。
* 菜单键。
深度链接使用 ?session=<id>,并且仅当会话列表包含该 ID 时才会被解析。
安装¶
在兼容的上游版本发布后,通过以下命令安装:
dsh plugin --profile web add github:Harzva/dsh-session-context-menu
对于隔离的本地开发:
DSH_HOME=/path/to/throwaway-dsh-home dsh plugin --profile web add /absolute/path/to/dsh-session-context-menu
DSH_HOME=/path/to/throwaway-dsh-home dsh web
移除插件以清理 Host 路由、注册表操作、配件组件和深度链接监听器:
dsh plugin --profile web remove dsh-session-context-menu
持久化与隐私¶
Pin/read 状态存储在 $DSH_HOME/storages/dsh-session-context-menu/state.json(或配置中提供的 storeRoot)中的仅布尔值的 JSON 文件中。文件创建权限为 0600。会话记录、提示、工作区路径、凭据和剪贴板内容永不持久化。主机在 /dsh-session-context-menu/state 处暴露一个同源无存储 JSON 路由。
适用场景与注意¶
- 兼容性要求:需要 DSH 提供的
ctx.sessionRows和sidebar.workspaces.session.accessory支持。插件有意在缺少必要服务时拒绝加载,避免静默回退到私有 UI 附件。 - 权限与安全:插件以当前 DSH 进程权限运行,不进行 DOM 检查或私有 API 调用。Pin/read 状态仅保存布尔值,不会保存会话记录、提示、路径、凭据或剪贴板内容。
- 许可证:项目使用 MIT 许可证,安装前建议检查源码以确保符合当前环境需求。
总结¶
该插件通过将标准会话操作集成到上下文菜单中,减少了管理聊天历史所需的点击次数,同时保持了安全性和生命周期安全。获取更多详情或提交问题,请访问 GitHub 仓库。