dsh-session-context-menu
English | 中文
面向 DeepSeek Harness 的生命周期安全、Codex 风格 Session 右键动作插件。它只扩展正式的 Session 行注册表与附件 Slot;不会补丁安装包、检查 React Fiber、查询私有 DOM,也不会替换 Workspace 浏览器。
动作
- 置顶或取消置顶聊天;置顶行优先显示,同时保持其原有相对顺序。
- 标记聊天为已读或未读,并显示可访问的行指示器。
- 通过 DSH 的原生路径打开能力显示 Workspace 目录。
- 复制工作目录、Session id 或浏览器深度链接。
- 在新浏览器窗口中打开深度链接。
- 在同一菜单中继续使用 DSH 内建的重命名、fork 与归档动作。
省略号按钮、原生右键、<kbd>Shift</kbd>+<kbd>F10</kbd> 与 Menu 键都会打开同一动作模型。深度链接采用 ?session=<id>;只有 Session 列表中存在该 id 后才会解析并打开。
兼容性
| DSH 版本 | 状态 |
|---|---|
0.1.0-rc.6 | 不支持:没有正式 Session 行扩展点 |
0.1.0-rc.7 | 未合入上游 sessionRows 变更时不支持 |
具备 ctx.sessionRows 与 sidebar.workspaces.session.accessory 的上游版本 | 支持 |
缺少所需服务时,插件会有意拒绝加载,避免静默降级成私有 UI 附着。
安装
兼容的上游版本和本仓库首个公开 release 发布后:
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不要把开发命令指向生产 profile。移除依赖会完整移除 Host 路由、注册表动作、附件组件和深度链接监听器:
dsh plugin --profile web remove dsh-session-context-menu持久化与隐私
置顶/已读状态只以布尔 JSON 存储在 $DSH_HOME/storages/dsh-session-context-menu/state.json;也可在 Cordis 配置项中显式设置 storeRoot。写入会串行执行并通过原子重命名提交;文件模式为 0600。本插件不会持久化 Session transcript、提示词、Workspace 路径、凭据或剪贴板内容。
Host 只提供一个同源且禁止缓存的 JSON 路由 /dsh-session-context-menu/state。请求体上限为 32 KiB,只接受有长度上限的 Session id 与布尔 pinned/unread 字段。原生路径打开复用 DSH 现有的 ctx.workspaces.openPath() 能力,不增加另一个文件系统接口。
开发
npm test
npm pack --dry-run测试覆盖状态校验、并发原子持久化、Cordis 路由 dispose、客户端贡献注册、优先级、深度链接打开、剪贴板动作、原生路径委托与客户端清理。release 验证还会使用一次性 DSH profile,执行安装、冷启动、亮/暗主题视觉检查、右键/键盘交互、卸载与回滚。
插件市场提交
awesome-dsh-plugin 目录当前要求插件具备可安装的 dsh.bundle、dsh-plugin topic、仓库创建至少一天且至少有十次提交。本仓库在 release 检查表中保留这些要求;只有上游扩展发布且隔离组合通过后,才提交目录条目。
许可证
[MIT](LICENSE)