1959377950-dotcom/dsh-workspace-archive-all ↗★ 0
dsh-workspace-archive-all
一键归档侧边栏工作区文件夹下的所有会话 适合需要快速整理侧边栏、批量归档历史会话的用户,可自动跳过运行中或空白的会话。
安装
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:1959377950-dotcom/dsh-workspace-archive-all说明文档
阅读完整 README ↗dsh-workspace-archive-all
A DeepSeek Harness web plugin that adds an Archive All action to every workspace folder menu in the sidebar (the Ungrouped bucket included) — archiving all unarchived sessions under that folder in one go.
- Confirm dialog → sequential archive with progress → result summary
- Automatically skipped: running sessions, the session you are currently viewing, blank provisional "New Session" rows, subagent sessions, and anything already archived
- English and Chinese copy, following the UI language
How it works
The sidebar comes from the official @deepseek-ai/dsh-client-ui-workspace package, whose
client bundle is served by the client module system from the prefix route
/plugins//client.js. This plugin's host half registers an exact route for that path
(the webserver matches exact routes before prefixes), serving a patched copy of the bundle:
GET /plugins/@deepseek-ai/dsh-client-ui-workspace/client.js
→ this plugin's lib/workspace-client.patched.js
- No runtime interception, no dependence on script evaluation order
- Uninstalling the plugin removes the route and the stock bundle is served again — the official file on disk is never modified
- Response headers mirror the stock bundle server (
text/javascript; charset=utf-8,no-cache)
Install
One command with the official CLI (installs the package into the profile and mounts it via
the bundled cordis.patch.yml — no manual file edits):
dsh plugin --profile web add dsh-workspace-archive-all # from npm (once published)
dsh plugin --profile web add # e.g. the GitHub release .tgz
Or as a local bundle without the CLI:
- Put this folder anywhere (e.g.
~/dsh-workspace-archive-all) - Link it into the profile:
ln -s ~/dsh-workspace-archive-all ~/.dsh/profiles/web/node_modules/dsh-workspace-archive-all - Append
"dsh-workspace-archive-all"todsh.profile.bundlesin~/.dsh/profiles/web/package.json - Restart
dsh web(the bundle list is read at boot)
The bundle's
cordis.patch.ymlcarries a double-mount guard: a manualdsh.profile.bundlesentry makes the package's own insert row stand down, so the two channels do not collide — but pick one of them.
Once listed on the dshmarket marketplace, it can also be installed with one click from the settings UI.
Uninstall
dsh plugin --profile web remove dsh-workspace-archive-all
Or, for a manual local-bundle install: remove the entry from dsh.profile.bundles and
restart; the dependencies entry and the symlink can be removed too. Nothing to clean up
inside DSH itself.
Upgrading DSH
Re-derive the patched bundle from the new stock file:
node tools/build-patch.mjs
The stock client path is auto-detected (nvm / Homebrew / /usr/local / PNPM_HOME / PATH);
override with DSH_STOCK_CLIENT or node tools/build-patch.mjs [out-file].
The 11 find/replace patches each must match exactly once — a clear error means the official
bundle drifted and the pairs need re-deriving.
Files
| File | Purpose |
|---|---|
lib/index.js | Host half: registers the exact override route |
lib/workspace-client.patched.js | The patched official workspace client (build artifact) |
cordis.patch.yml | Bundle patch: mounts the plugin (with double-mount guard) |
tools/build-patch.mjs | Rebuilds the patched bundle from the stock one |
License
MIT