插件目录 / Developer / dsh-hover-archive
dsh-hover-archive
已验证 · 实测可装 zhifengjiang
功能简介
Codex-style hover archive for DeepSeek Harness Web: hovering a sidebar session row reveals an Archive icon at the far right; one click archives via the official workspaces.archiveSession API.
可用 — 实测通过,早期项目
Codex-style hover archive for DeepSeek Harness Web: hovering a sidebar session row reveals an Archive icon at the far right; one click archives via the official workspaces.archiveSession API. 实测能干净安装、正常启动。早期项目,但功能可用。
「已验证」表示我们的自动化 CI 在干净 profile 里实际执行了 dsh plugin add 并启动成功——仅此而已。功能描述与版本兼容性均为作者声明。这不是安全审计,也不代表对第三方代码的背书。
README
dsh-hover-archive
Codex-style hover archive for DeepSeek Harness Web.
Hover a sidebar conversation row and an Archive icon appears at the far right; one click archives the session. No menus, no dialogs.
Features
- Hover → Archive icon at the far right of the session row, exactly like the Codex conversation list.
- One click archives through the official
workspaces.archiveSessionAPI — the same face the built-in "…" menu uses, so archived sessions land in the same place and obey the same rules. - Blank rows untouched: the "New Session" placeholder row never gets a button.
- zh / en labels follow the app locale and re-label live on locale switch.
- Keyboard accessible: the button is a real
<button>; it reveals on:focus-withinand fires on Enter/Space. - Busy / error states: the icon dims while archiving and flashes the error color with the failure message as a tooltip if the call fails.
- Zero dependencies, zero build step: plain JavaScript, installs from source without any
allowBuildsapproval. - Self-tests:
npm testruns syntax checks plus a dependency-free DOM smoke test.
Install
dsh plugin --profile web add github:zhifengjiang/dsh-hover-archive
Then restart dsh web (or your desktop client) and refresh the page.
Uninstall:
dsh plugin --profile web remove dsh-hover-archive
How it works
- A pure client plugin (
dsh.client, platformweb) that injects a button into every actionable sidebar session row — the elements carryingdata-session-id. - The button is appended as the row's last child, so it renders to the right of the stock "…" row menu and is revealed purely by CSS on
:hover(and:focus-within). - A
MutationObserverre-decorates rows across React re-renders; decoration is idempotent (one button per row, blank rows skipped). - The click is intercepted in the capture phase (
stopPropagation+preventDefault), so archiving never opens the session. - Archiving calls
ctx.workspaces.archiveSession(id); the stock projection then removes the row from the list, and archiving the current session falls back to the same sweep the built-in action uses.
Why a button instead of a menu item
The stock row already archives in two clicks (hover → "…" → Archive). This plugin restores the Codex-style one-hover-one-click affordance. DeepSeek Harness 0.1.0-rc.6 exposes no public slot for extra session-row actions, so the button is injected into the row DOM — the same workaround community plugins such as dsh-session-manager and dsh-plugin-session-delete rely on.
Compatibility
- Built against DeepSeek Harness
0.1.0-rc.6(the@deepseek-ai/dsh-client-runtimeworkspaces face). - Platform: DSH Web. Any shell that renders the upstream web sidebar shows the button; a shell that replaces the sidebar with a native list may not.
- Older harness builds without
workspaces.archiveSessionare detected at runtime — the plugin logs a warning and disables itself instead of breaking the UI. - Coexists with
dsh-session-manager,dsh-plugin-session-deleteand the built-in "…" menu: this plugin adds one more affordance on the same row and calls the same official API.
License
安装
装一次目录插件,之后本站所有插件都能让 DeepSeek Harness 自动找、自动装:
dsh plugin add dshbase-catalog 然后对 agent 说「帮我装 dsh-hover-archive」,它会在目录里找到并自动安装。文档:dshbase-catalog · 已验证场景包。
该插件是 GitHub 源码(未发 npm)——直接从仓库装:
Web profile:
dsh plugin --profile web add github:zhifengjiang/dsh-hover-archive Headless(CLI)profile:
dsh plugin --profile headless add github:zhifengjiang/dsh-hover-archive 实测报告
验证通过:从 GitHub 源码完成 L1 安装 + L2 加载 + L3 运行(dsh 0.1.0-rc.6)。