插件目录 / Developer / easy-archive
easy-archive
已验证 · 实测可装 bainianlaoyao
功能简介
DSH web plugin: two-step inline archive on workspace sidebar rows — one click arms a red confirm, the second archives; archive is no longer buried in the ⋮ menu. · 工作区侧边栏行内两击归档
可用 — 实测通过,早期项目
DSH web plugin: two-step inline archive on workspace sidebar rows — one click arms a red confirm, the second archives; archive is no longer buried in the ⋮ menu. · 工作区侧边栏行内两击归档 实测能干净安装、正常启动。早期项目,但功能可用。
「已验证」表示我们的自动化 CI 在干净 profile 里实际执行了 dsh plugin add 并启动成功——仅此而已。功能描述与版本兼容性均为作者声明。这不是安全审计,也不代表对第三方代码的背书。
README
easy-archive
A DSH (DeepSeek Harness) web plugin that moves session archiving out of the
kebab (⋮) menu and onto the workspace sidebar row itself, as a two-step
inline button:
- Hover a session row — an archive icon appears right before the ⋮ button.
- Click once — the button switches to a red 「确认归档 / Confirm archive」 pill.
- Click again — the session is archived.
The archive item is removed from the ⋮ menu — archiving lives only on the
row, never buried in a submenu.
Features
- Hover-revealed inline archive button on every session row (next to the ⋮ menu);
one click arms the red confirm, the second commits. - Archive entry automatically hidden from the ⋮ menu whenever it opens
(rename / fork stay where they are). - No slot takeover: the stock workspace browser keeps rendering; rename,
fork, search, drag-reorder and everything else stay intact. - Archive runs through the same wire call the built-in menu used
(ctx.workspaces.archiveSession), so behavior and permissions are identical. - Safety nets: the armed confirm auto-disarms after 4s, on mouse-leave, or on
any click elsewhere; rows with ambiguous identities never get a button
rather than risk archiving the wrong session. - Locale-aware (zh / en), no build step, no React dependency.
Install
From the DSH plugin market (recommended):
dsh plugin --profile web add github:bainianlaoyao/easy-archive
…or add it manually to the web profile's package.json:
{
"dependencies": { "easy-archive": "github:bainianlaoyao/easy-archive" },
"dsh": { "profile": { "bundles": [ "...", "easy-archive" ] } }
}
then pnpm install in the profile directory and restart dsh web
(new plugins enter the window.__DSH_BOOT__ graph at boot; later edits tolib/client.js hot-apply on refresh).
How it works
The host half (lib/index.js) is an inert plugin row that carries thedsh.client declaration into the profile's loader graph; the browser half
(lib/client.js) observes the sidebar DOM and, for every rendered session
row:
- resolves the session id exactly from the
ctx.sessions.listsnapshot by
display title (disambiguated by the rendered relative-time bucket when
titles repeat), - stamps the row with the id and inserts a 16px archive button into the row's
action cell, before the kebab, - removes the archive item from any ⋮ menu it sees open.
Clicking the button never bubbles to the row's "open session" handler.
Development
node scripts/smoke.mjs # validate the browser bundle shape
node scripts/check.mjs # (alias) syntax + smoke
Notes
- Blank "New Session" rows and search-result rows never get the button.
- Sessions whose display title and time bucket collide are skipped
(conservative: no wrong-session archives). - Uninstall: remove the dependency and bundles entry,
pnpm install,
restartdsh web.
License
MIT
安装
装一次目录插件,之后本站所有插件都能让 DeepSeek Harness 自动找、自动装:
dsh plugin add dshbase-catalog 然后对 agent 说「帮我装 easy-archive」,它会在目录里找到并自动安装。文档:dshbase-catalog · 已验证场景包。
该插件是 GitHub 源码(未发 npm)——直接从仓库装:
Web profile:
dsh plugin --profile web add github:bainianlaoyao/easy-archive Headless(CLI)profile:
dsh plugin --profile headless add github:bainianlaoyao/easy-archive 实测报告
验证通过:从 GitHub 源码完成 L1 安装 + L2 加载 + L3 运行(dsh 0.1.0-rc.6)。