跳到正文
dsh-market 浏览插件 GitHub EN

zhifengjiang/dsh-hover-archive

Codex 风格会话归档:鼠标悬浮侧边栏会话行时,最右侧浮现 Archive 图标,一键归档会话。

Star 数 ★ 0 分类 UI 增强 收录于 2026-08-25

安装

在 DeepSeek Harness 里通过 dsh-market 安装

dsh plugin --profile web add dshmarket

或使用命令行

dsh plugin --profile web add github:zhifengjiang/dsh-hover-archive

装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络。请先审阅源码,并尽量锁定 commit(github:owner/repo#sha)。

README

DeepSeek Harness Web 的 Codex 风格悬浮归档插件。

鼠标悬浮侧边栏的任意会话行,最右侧浮现一个 Archive 图标,点一下即归档该会话。没有菜单、没有弹窗。

English

功能

  • 悬浮会话标题 → 行最右侧浮现 Archive 图标,与 Codex 对话列表一致。
  • 一键归档,走官方 workspaces.archiveSession API——与内置「…」菜单里「归档」用同一个接口,归档后去向、规则完全一致。
  • 跳过「新对话」占位行:空行不会被挂按钮。
  • 中英文标签跟随界面语言,切换语言时实时更新。
  • 键盘可用:按钮是真正的 <button>:focus-within 时浮现,Enter/空格即可触发。
  • 进行中/失败状态:归档中图标变暗;失败时图标短暂变红,tooltip 显示失败原因。
  • 零依赖、零构建:纯 JavaScript,从源码安装不需要 allowBuilds 授权。
  • 自带测试npm test 执行语法检查 + 无依赖 DOM 冒烟测试。

安装

dsh plugin --profile web add github:zhifengjiang/dsh-hover-archive

然后重启 dsh web(或你的桌面客户端)并刷新页面。

卸载:

dsh plugin --profile web remove dsh-hover-archive

工作原理

  • 纯客户端插件dsh.client,平台 web),向每个可操作的侧边栏会话行(带 data-session-id 的元素)注入一个按钮。
  • 按钮被追加为会话行的最后一个子元素,渲染在官方「…」行菜单的右侧;由 CSS 在 :hover(以及 :focus-within)时浮现。
  • MutationObserver 在 React 重渲染后重新装饰会话行;装饰是幂等的(每行一个按钮,空行跳过)。
  • 点击在捕获阶段被拦截(stopPropagation + preventDefault),归档操作绝不会误打开会话。
  • 归档调用 ctx.workspaces.archiveSession(id);官方投影随后把该行从列表移除,归档当前会话时与内置操作走同一条清理路径。

为什么是按钮而不是菜单项

官方行本来就能两次点击归档(悬浮 → 「…」→ 归档)。本插件还原的是 Codex 式「一悬浮一单击」 的体验。DeepSeek Harness 0.1.0-rc.6 没有给第三方插件提供会话行的公开操作槽位,因此按钮采用 DOM 注入——这也是社区插件 dsh-session-managerdsh-plugin-session-delete 采用的同一种 workaround。

兼容性

  • 基于 DeepSeek Harness 0.1.0-rc.6@deepseek-ai/dsh-client-runtime 的 workspaces face)开发。
  • 平台:DSH Web。凡是渲染上游 Web 侧边栏的壳都能显示按钮;用原生列表替换侧边栏的壳可能不显示。
  • 更旧的 Harness 构建若缺少 workspaces.archiveSession,插件会在运行时检测到并打印警告、自动禁用,不会破坏界面。
  • dsh-session-managerdsh-plugin-session-delete 以及内置「…」菜单共存:本插件只是在同一行上多提供一个入口,调用的是同一个官方 API。

许可证

MIT

内容来自项目 README(GitHub)↗